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…
como eu faço para imprimir a variavel imprime no static void main ?Cadastro.java
Principal.java
package cadastro;public class Principal {
public static void main(String arg[]) { Cadastro cadastro; cadastro = new Cadastro(); cadastro.Cadastro_Cliente(); System.out.println(cadastro.imprime); }}
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
public String getString (){ …}?
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......
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;
}
...
qual é a diferença entre
set e get ?
uma outra coisa , nao funcionando isso :
Principal.java
package cadastro;public class Principal {
public static void main(String arg[]) { Cadastro cadastro = new Cadastro(); cadastro.cadastroCliente();[color=red]
if(== ‘rafael’ ) {[/color]cadastro.getString(imprime)} }}
Cadastro.java
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; } }</blockquote>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()
getNome = retornar nomesetNome = 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 } } }
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
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 ?
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 ?
opa funcionou .aproveitando o topico , como passo um numero de uma classe para outra ?
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());
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"); } }}
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)
queria passar uma valor do Principal.java para o Cadastro.java .como faço ?
a sim…
no seu Principal.java vc terá um objeto da classe Cadastro
int numero = 13;
Cadastro c = new Cadastro();
c.setNumero(numero);