[quote=i_rodrigues]Cweiler, primeiramente obrigado estou estudando a linguagem java exatamente pela postila da Caelum. Pelo que entendi eu não posso acessar um atributo de uma determinada classe, em uma outra. Porem quando eu tento acessar o atributo nome da Classe Cliente dentro do escopo da propria classe veja o erro que me é emitido:
[/img]
veja o meu codigo como ficou:
[code]class Cliente{
private String nome;
private String sobrenome;
private String cpf;
private int idade;
public String getName(){
return this.nome;
}
public void setNome(String nome){
this.nome = nome;
}
private void validaCPF(String cpf){
//regras para validacao
System.out.println("CPF Validadado");
}
public void mudaCPF(String cpf){
if(this.idade <= 60){
validaCPF(cpf);
}
this.cpf = cpf;
}
}
class Conta{
private int numero;
private String dono;
private double saldo;
private double limite;
private double novoSaldo;
Cliente titular = new Cliente();
public String getDono(){
return this.dono;
}
public void setDono(String dono){
this.dono = dono;
}
public double getSaldo(){
if(this.saldo == 0){
System.out.println("Conta sem nenhum valor disponível!");
}
return this.saldo;
}
public void deposita(double valor){
if(valor <= 0){
System.out.println("Valor não permitido!");
}
else{
this.saldo = valor+saldo;
}
}
boolean saca(double valor){
if(this.saldo < valor){
System.out.println("Valor de saldo Insuficiente!");
this.saldo = saldo;
return false;
}
else{
this.saldo = saldo - valor;
return true;
}
}
boolean transeferePara(Conta destino, double valor){
boolean retirou = this.saca(valor);
if(retirou == false){
System.out.println("Trasferencia não realizada saldo insuficiente");
return false;
}
else{
destino.deposita(valor);
System.out.println("Transferencia realizada com sucesso!"+"\nValor Transferido :"+valor);
return true;
}
}
void imprime(){
System.out.println("Titular : "+getDono()+"\nSaldo :"+getSaldo()+"\nNome :"+getName());
}
}
class Programa{
public static void main(String[] args){
Conta minhaConta = new Conta();
Cliente c = new Cliente();
//minhaConta.setDono(“Joao”);
minhaConta.deposita(100.0);
minhaConta.saca(50.0);
c.setNome(“luiz”);
minhaConta.imprime();
}
}[/code]
eu coloquei meu metodo getName(), dentro da classe onde o está o atributo, porém não consigo “imprimi-lo”.[/quote]
vc sabe dizer em que classe está o método “getName()” ?
Se seu titular de conta é um objeto da classe cliente, a chamada do seu método deveria ser “titular.getName()”
vc sabe dizer o que quer fazer para o cliente c dentro do main para o qual está setando o nome “luiz”?
Como o colega acima falou, é necessário vc entender o que são modificadores de acesso.
Outra sugestão de pesquisa seria:
buscar saber o que seja e quais as diferenças entre herança (extends) composição.
http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/pat/herancavscomposicao.htm