Instanciação com construtores á preencher

6 respostas
M

Pessoal minha duvida é o seguinte

Tenho 2 classes de Cllientes, uma é cliente PF e outra cliente PJ que ambas herdam de uma classe cliente

Meus contrutores

Classe ClientePJ
public ClientePJ(String nome,String cep,String cidade,String estado,String cnpj){
		nome = util.entradaString("Nome: ");
		cep = util.entradaString("CEP : ");
		cidade = util.entradaString("Cidade: ");
                                estado = util.entradaString("Estado: ");
                                cnpj = util.entradaString("CNPJ: ");
		
	}

Classe ClientePF

public ClientePJ(String nome,String cep,String cidade,String estado,String cnpj){
		nome = util.entradaString("Nome: ");
		cep = util.entradaString("CEP : ");
		cidade = util.entradaString("Cidade: ");
                                estado = util.entradaString("Estado: ");
                                cnpj = util.entradaString("CNPJ: ");
	}

os atributos da super classe declarei com protect para que as subclasses possam acessar livremente

Eu tenho uma classe Main que ja joga os contrutores dentro de um vetor armazena_cliente[i], mas minha duvida eh o seguinte, como eu faço para ir preenchendo com os dados, o jeito que eu fiz acima, acho que esta errado, quias são as formas de prencher contrutores com entrada de dados?

6 Respostas

M

o que eu preciso eh de exemplos de entrada de dados em contrutores de 2 classes diferentes que possuim um superclasse entenderam??

Giulliano

Sinceramente não entendi sua dúvida e nem o seu problema

edmarr

Explica melhor pois eu também não entendi …

gomesrod

Olá,

Também não entendi exatamente a dúvida, mas observei algumas melhorias que precisam ser feitas neste código. Talvez depois de implementá-las seu problema vai se resolver automaticamente.

  1. Crie um construtor na classe mãe que recebe os atributos comuns.
    No construtor das classes filhas, chame este construtor da mãe com super(param1, param2…)

  2. Um construtor não é o local adequado para interações com o usuário. Ele já deve receber os valores prontos.

  3. Você recebe os parâmetros no construtor, mas os sobrescreve logo em seguida! Isso não faz sentido.

E o principal:
4) Os valores não estão sendo passados para os atributos do objeto! Você só está jogando os valores nas variáveis locais do parâmetro. Se não tiver entendido, faça a seguinte modificação para que o erro fique mais visível:
Use nomes diferentes para os atributos declarados na classe mãe (por exemplo, nomeCliente em vez de nome). Você verá que não está passando valores para eles em momento algum.

M

vc pode dar um exemplo!! eu acho q entendi, mas queria um exemplo

thundercas

Baixe a apostila da Caelum FJ11, lá você verá diversos exemplos explicados de uma maneira bastante simples… abs

Criado 4 de dezembro de 2009
Ultima resposta 4 de dez. de 2009
Respostas 6
Participantes 5