Passar parametro e imprimir no static void main

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 :slight_smile: , 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 :slight_smile: , 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);