[quote=1988]…
Como posso agregar o Cliente nome que é uma string dentro da Conta nome2 q só recebe tipo Cliente??[/quote]
acho que você está confundindo um pouco as coisas. vocễ não deve colocar o nome do Cliente na Conta, mas sim o próprio Cliente (como fez). E para recuperar o nome do Cliente, você pode criar um método auxiliar na classe Conta e delegar a chamada ao método que retorna o nome do Cliente. Exemplo:
[code]public class Cliente {
private String nome;
private Conta conta;
// ...
public void setConta(Conta conta) {
if (conta == null) {
this.conta = conta;
}
}
}
public class Conta {
private int numero;
private Cliente cliente;
// ...
public void setCliente(Cliente cliente) {
if (cliente == null) {
this.cliente = cliente;
}
}
public String getClienteNome() {
return cliente != null ? cliente.getNome() : null;
}
}
public class Start {
public static void main(String[] args) {
// …
conta.setCliente(cliente);
System.out.println(conta.getNomeCliente());
}
}[/code]
Ou simplesmente pegar o nome do Cliente na Conta. Exemplo:
[code]public class Start {
public static void main(String[] args) {
// …
[quote=1988]Estou com um grande problema no meu trabalho.
Vou tentar explicar.
tenho 4 classes: Conta, Cliente, ContaCorrente e ContaPoupança.
A conta e o cliente são agregados.
e a contaCorrente e a poupanca herdeiros de “conta”
Em cliente eu tenho a variavel nome que é uma String;
No main eu crio Cliente c = new Cliente()
e faço: c.setNome=“Joao”;
Em Conta eu criei a variavel nome2 do tipo Cliente;
entao meu get e set “nome” são do tipo Cliente
Como posso agregar o Cliente nome que é uma string dentro da Conta nome2 q só recebe tipo Cliente??
[/quote]
Acho que o problema é que você não está usando uma abordagem totalmente orientada a objeto nesse cenário.
A sua classe conta não deveria ter um atributo nome do tipo cliente, mas sim um atributo cliente do tipo cliente que recebesse o cliente titular daquela conta.
Quando você quisesse recuperar o nome do titular da conta deveria utilizar algo como:
[color=red]VOU MOSTRAR O QUE PRETENDO FAZER PARA SER MAIS FACIL [/color]
[code]public class Cliente {
private String nome;
private int idade;
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
}
public class Conta {
private int nconta;
private Cliente cliente;
public Conta(Cliente n ){
this.cliente=n;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente.getNome();
}
}
public class ContaCorrente extends Conta {
private Conta Nconta;
private Cliente Cte;
public ContaCorrente(Cliente c){
super(c);
}
public Cliente getCte() {
return Cte;
}
public void setCte(Cliente c) {
this.Cte=super.getCliente();
}
public int getNconta(){
return super.getNconta();
}
public void setNconta(Conta n) {
this.Nconta = n ;
}
}
public class ContaBancaria {
public static void main(String[] args) {
Cliente cliente = new Cliente();
Conta conta = new Conta(cliente);
ContaCorrente corrente = new ContaCorrente(cliente);
cliente.setNome("Joao Pedro da Silva");
cliente.setIdade(23);
conta.setNconta(123);
conta.setCliente(cliente.getNome()); // da erro
//preciso de um metodo em ContaCorrente que pegue da Class Conta o: Nconta e o Cliente;
// depois chamar esse metodo no main e imprimir como abaixo:
System.out.println("Cliente: " + cliente.getNome() + "\nIdade: " + cliente.getIdade());
System.out.println("-------------------------------------");
System.out.println("Numero da Conta: " + conta.getNconta() + "\nDono da conta: "+ conta.getCliente());
System.out.println("-------------------------------------");
System.out.println("Conta: " + corrente.getNconta() + "\nCliente: " + corrente.Cte );
1988, acho que você deveria rever a forma como definiu sua classe ContaCorrente, pois, ela duplica atributos que você já declarou na super classe Conta.
De qualquer forma, considerando o seu código como está:
Dá erro porque esse método está esperando uma referência ao tipo Cliente não à uma String. Você deveria fazer assim:
conta.setCte(cliente);
E depois chamar o atributo dessa forma: System.out.println("Titular da conta: " + conta.getCte().getNome());