Problema com agregação

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??

Tente explicar melhor seu problema, talvez exemplificando com código.

Mas antes de postar código leia o nosso How To.

Agora nome2? Isso me parece gambiarra… Mostre melhor seu cenário que aí a gente tenta te ajudar

// tente
Cliente c = new Cliente() 
e faço: c.setNome="Joao";
conta.setnome2(c);

[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) {
// …

    conta.setCliente(cliente);
    System.out.println(conta.getCliente() != null ? conta.getCliente().getNome() : null);
}

}[/code]

Bem melhor

[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:

this.cliente.getNome();

[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 );

}[/code]

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());