como eu faço para imprimir a variavel imprime no static void main ?
Cadastro.java
Principal.java
como eu faço para imprimir a variavel imprime no static void main ?
Cadastro.java
Principal.java
Você pode fazer assim… mas eu nao faria isso… deixaria do jeito q está comentado no seu arquivo original…
[quote=mestre fyoda]como eu faço para imprimir a variavel imprime no static void main ?
Cadastro.java
Principal.java
[quote]
package cadastro;
public class Principal {
public static void main(String arg[]) {
Cadastro cadastro;
cadastro = new Cadastro();
cadastro.Cadastro_Cliente();
System.out.println(cadastro.imprime);
}
}
[/quote][/quote]
Não tenho certeza do que voce quer, pois o seu código estava funcionado. Li o exemplo do colega e fiz um diferente.
:idea:
Minha idéia é isolar a variavel String na classe Cadastro, assim só os métodos da classe podem modifica-lá e ela fica acessivel a qualquer método criado nesta classe. Para acessa-la usa-se um método getString que eu criei na classe Cadastro.
package cadastro;
import javax.swing.JOptionPane;
public class Cadastro {
private String imprime;
public void cadastroCliente() {
imprime = JOptionPane.showInputDialog("Digite Alguma Coisa : ");
}
public String getString (){
return imprime;
}
}
package cadastro;
public class Principal {
public static void main(String arg[]) {
Cadastro cadastro = new Cadastro();
//chamando método de cadastro:
cadastro.cadastroCliente();
//para recuperar a String de cadastro utilize o metodo get:
//cadastro.getString();
//imrpimindo um teste:
System.out.printf("A String private em Cadastro é: %s",
cadastro.getString());
}
}
so uma pergunta .
a
faz o papel de retornar a variael imprime ?
e sempre que eu quiser retornar algo eu vou ter que faser [quote] public String getString (){ …}[/quote] ?
Lógico , vou mudar o String dependendo das minhas necessidades .
Sim, isso se chama encapsulamento.
sua classe tem atributos privados e métodos de acesso públicos
No exemplo abaixo, cada variável tem um metodo de acesso get (para retornar o valor) e um set (para alterar o valor). Podem ter outros tipos de métodos de acesso, como add (adicionar um valor em uma lista) e remove (remover um valor em uma lista). dentre outros…
Bom, recomendo vc a dar uma estudada no conceitos de orientação a objetos…
[code]
…
public class ClienteBean {
private String nome;
private String cpf;
private String telefone;
private String celular;
private EnderecoBean endereco;
public ClienteBean(String nome, String cpf, String telefone, String celular, EnderecoBean endereco) {
this.setNome(nome);
this.setCpf(cpf);
this.setTelefone(telefone);
this.setCelular(celular);
this.setEndereco(endereco);
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getCelular() {
return celular;
}
public void setCelular(String celular) {
this.celular = celular;
}
public EnderecoBean getEndereco() {
return endereco;
}
public void setEndereco(EnderecoBean endereco) {
this.endereco = endereco;
}
…[/code]
qual é a diferença entre
set e get ?
uma outra coisa , nao funcionando isso :
Principal.java
[quote]package cadastro;
public class Principal {
public static void main(String arg[]) {
Cadastro cadastro = new Cadastro();
cadastro.cadastroCliente();
[color=red] if(cadastro.getString(imprime)== ‘rafael’ ) {[/color]
}
}
}[/quote]
Cadastro.java
[quote] package cadastro;
import javax.swing.JOptionPane;
public class Cadastro {
private String imprime;
public void cadastroCliente() {
imprime = JOptionPane.showInputDialog("Digite Alguma Coisa : ");
}
public String getString (){
return imprime;
}
}[/quote]
erro : unclosed character literal .
o que esta errado ?
getNome = retornar nome
setNome = alterar nome
package cadastro;
public class Principal {
public static void main(String arg[]) {
Cadastro cadastro = new Cadastro();
cadastro.cadastroCliente();
if(cadastro.getString(imprime).equals("rafael") ) {
//erro vc tinha colocado aspas simples ', o correto é aspas duplas ".
//porém para comparar Strings vc deve usar o acima
}
}
}
getNome = retornar nome
setNome = alterar nome
package cadastro;
public class Principal {
public static void main(String arg[]) {
Cadastro cadastro = new Cadastro();
cadastro.cadastroCliente();
if(cadastro.getString(imprime).equals("rafael") ) {
//erro vc tinha colocado aspas simples ', o correto é aspas duplas ".
//porém para comparar Strings vc deve usar o acima
}
}
}
explicando: para comparar tipos primitivos (int, double, boolean, float, char) vc usa ==, para comparar objetos como no caso de String vc usa o método equals()
[quote=marcos.junqueira]getNome = retornar nome
setNome = alterar nome
[code]
package cadastro;
public class Principal {
public static void main(String arg[]) {
Cadastro cadastro = new Cadastro();
cadastro.cadastroCliente();
if(cadastro.getString(imprime).equals(“rafael”) ) {
//erro vc tinha colocado aspas simples ', o correto é aspas duplas ".
//porém para comparar Strings vc deve usar o acima
}
}
}
[/code][/quote]
sei q to sendo chato , mas eu so diferente de muitos que só pedem o codigo e dá ctrl+c e ctrl+v .
o equals faz o que ?
eu presizo importar alguma coisa para usar equals ?
deu erro de
cannot found symbol .
symbol : varible imprime
class cadastro.Principal
[quote=mestre fyoda]sei q to sendo chato , mas eu so diferente de muitos que só pedem o codigo e dá ctrl+c e ctrl+v .
o equals faz o que ?
eu presizo importar alguma coisa para usar equals ?[/quote]
compara dois objetos obj1 e obj2. se forem iguais ele retorna um boolean true, caso contrario retorna false.
obj1.equals(obj2);
quando vc cria suas classes é bom tbm sobrescrever o metodo equals que elas herdam da superclasse Object
naquele exemplo que eu te passei tenho isso.
package br.ufla.comp.marcosoj.farmacia;
/**
*
* @author Marcos
*/
public class ClienteBean {
private String nome;
private String cpf;
private String telefone;
private String celular;
private EnderecoBean endereco;
/** Creates a new instance of ClienteBean */
public ClienteBean(String nome, String cpf, String telefone, String celular, EnderecoBean endereco) {
this.setNome(nome);
this.setCpf(cpf);
this.setTelefone(telefone);
this.setCelular(celular);
this.setEndereco(endereco);
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getCelular() {
return celular;
}
public void setCelular(String celular) {
this.celular = celular;
}
public EnderecoBean getEndereco() {
return endereco;
}
public void setEndereco(EnderecoBean endereco) {
this.endereco = endereco;
}
public boolean equals(Object obj) {
boolean retValue = false;
//verifica se é da mesma classe
if(obj instanceof EstoqueBean) {
//transforma para classe ClienteBean
ClienteBean e = (ClienteBean) obj;
//verifica se os atributos são iguais
if(e.cpf.equals(this.cpf) &&
e.nome.equals(this.nome) &&
e.endereco.equals(this.endereco) &&
e.telefone.equals(this.telefone) &&
e.celular.equals(this.celular)) {
retValue = true;
}
}
return retValue;
}
public String toString() {
String retValue;
retValue = "Nome: " + this.nome +
"\nCPF: " + this.cpf +
"\nTelefone: " + this.telefone +
"\nCelular: " + this.celular +
"\nEndereço:\n" + this.endereco;
return retValue;
}
public int hashCode() {
int retValue;
retValue = this.nome.hashCode() * this.cpf.hashCode() *
this.telefone.hashCode() * this.celular.hashCode() *
this.endereco.hashCode();
return retValue;
}
}
coloquei a classe inteira para vc poder visualizar melhor e fazer mais perguntas :lol:
o método equals irar comparar se seu dois objetos são da mesma classe e possuem os atributos iguais.
não precisa importar nada nao…
cadastro.getString(imprime).equals("rafael")
tem certeza de que não é:
cadastro.getString().equals("rafael")
opa funcionou .
aproveitando o topico , como passo um numero de uma classe para outra ?
[quote=mestre fyoda]opa funcionou .
aproveitando o topico , como passo um numero de uma classe para outra ?[/quote]
como assim??
pelo que entendi vc vai ter q usar o get de uma classe e o set da outra classe
int num = obj1.getNum();
obj2.setNum(num);
ou
obj2.setNum(obj1.getNum());
[quote]
package cadastro;
public class Principal {
public static void main(String arg[]) {
Cadastro cadastro = new Cadastro();
cadastro.cadastroCliente();
int num = Principal.getNum(10);
cadastro.setNum(num);
if(cadastro.getString().equals("rafael") ) {
System.out.println("Foi");
}
}
}[/quote]
erro :
C:\Documents and Settings\Rafael\Desktop\Java\Cadastro\src\cadastro\Principal.java:9: cannot find symbol
symbol : method getNum(int)
location: class cadastro.Principal
int num = Principal.getNum(10);
C:\Documents and Settings\Rafael\Desktop\Java\Cadastro\src\cadastro\Principal.java:11: cannot find symbol
symbol : method setNum(int)
location: class cadastro.Cadastro
cadastro.setNum(num);
2 errors
BUILD FAILED (total time: 0 seconds)
[quote=mestre fyoda]queria passar uma valor do Principal.java para o Cadastro.java .
como faço ?[/quote]
a sim…
no seu Principal.java vc terá um objeto da classe Cadastro
int numero = 13;
Cadastro c = new Cadastro();
c.setNumero(numero);