Heranças e Constantes [Duvida][+-Urgente] [RESOLVIDO]

1. Heranças e Constantes [Duvida][+-Urgente] [RESOLVIDO]

jorge
jorgeback

(usa Fedora)

Enviado em 16/10/2012 - 13:26h

Boa tarde,

Estou fazendo um trabalho de faculdade, so que estou com uma duvida.

Tenho uma Classe chamanda Pessoas.
E tenho 3 constantes declaradas nela sendo:
public static final int CLIENTE = 1;
public static final int VENDEDOR = 2;
public static final int FORNECEDOR = 3;


E tenho 3 outras classes que dependem dessa. Cliente, Fornecedor, Vendedor.
Cada classe que tem como herença a classe pessoa tem um conteudo diferente, (tirando a que tem na classe pessoa).

Estou com um problema na hora de usar elas, nao sei como vou diferenciar as classes cliente, vendedor, fornecedor, na minha ArrayList.

Entenderam?

se não eu posto o codigo que estou usando para fazer,

Obrigado.


  


2. Re: Heranças e Constantes [Duvida][+-Urgente] [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/10/2012 - 13:50h

Cliente cliente = new Cliente(); 


Lembrando que:


public class Pessoa{
private int idPessoa;
private String nomePessoa;
...
}

public class Cliente extends Pessoa{
private int idCliente;
...
}

public class Fornecedor extends Pessoa{
private int idFornecedor;
...
}

....





3. Re: Heranças e Constantes [Duvida][+-Urgente] [RESOLVIDO]

jorge
jorgeback

(usa Fedora)

Enviado em 16/10/2012 - 13:57h

public class Pessoa implements Comparable<Pessoa>{

public static final int CLIENTE = 1;
public static final int VENDEDOR = 2;
public static final int FORNECEDOR = 3;

protected int classe;
protected int codigo;
protected String nome;
protected String telefone;
protected String email;
protected GregorianCalendar dataCad;



public class Cliente extends Pessoa{

private String cpf;
private double limiteCredito;

public Cliente(int classe, int codigo, String nome, String telefone, String email,GregorianCalendar dataCad, String cpf, double limiteCredito) {
super(classe, codigo, nome, telefone, email, dataCad);
this.cpf = cpf;
this.limiteCredito = limiteCredito;
}

public class Fornecedor extends Pessoa {
private String cnpj;
private String nomeContato;


public Fornecedor(int classe, int codigo, String nome, String telefone, String email,GregorianCalendar dataCad, String cnpj, String nomeContato) {
super(classe, codigo, nome, telefone, email, dataCad);
this.cnpj = cnpj;
this.nomeContato = nomeContato;
}


public class Vendedor extends Pessoa {
private String cpf;
private double metaMensal;

public Vendedor(int classe, int codigo, String nome, String telefone, String email, GregorianCalendar dataCad, String cpf, double metaMensal) {
super(classe, codigo, nome, telefone, email, dataCad);
this.cpf = cpf;
this.metaMensal = metaMensal;
}



Meu problema ta sendo na hora de criar uma lista separando o Cliente Fornecedor e Vendedor
public static ArrayList<Pessoa> listaCliente = new ArrayList<>();

Quando eu for preencher essa lista, como vou separar os Clientes Fornecedores eVendedores?


4. Re: Heranças e Constantes [Duvida][+-Urgente] [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/10/2012 - 14:08h


public static ArrayList<Cliente> listaCliente = new ArrayList<>();

...

Cliente cliente = new Cliente();
...
cliente.setCpf("000.000.000-00");
...

listaCliente.add(cliente)



no caso de vários itens faça um for ou um while


5. Re: Heranças e Constantes [Duvida][+-Urgente] [RESOLVIDO]

jarlisson moreira
jarlisson

(usa Fedora)

Enviado em 16/10/2012 - 14:28h

1. Procure sobre 'instanceOf':
if(nomeDoObjeto instanceOf nomeDaClasse)

http://www.java2s.com/Tutorial/Java/0060__Operators/TheinstanceofKeyword.htm

2. Ou crie ArrayLists para cada tipo de Pessoa.

3. Ou use testes condicionais pra saber que tipo de Pessoa se trata
se existir 'limiteCredito' no objeto do ArrayList, é Cliente
se existir 'cnpj' no objeto do ArrayList, é Fornecedor
se existir 'metaMensal' no objeto do ArrayList, é Vendedor

4. Ou cria um inteiro na Pessoa.
Nos construtores voce inicia esse inteiro:
1 - Cliente
2 - Fornecedor
3 - Vendedor



6. Re: Heranças e Constantes [Duvida][+-Urgente] [RESOLVIDO]

Mariana Ribeiro Mendes
meldenne

(usa Linux Mint)

Enviado em 16/10/2012 - 14:30h


Quando eu for preencher essa lista, como vou separar os Clientes Fornecedores eVendedores?


Tente instanceof:

if (objeto instanceof Cliente) {

...

}
if (objeto instanceof Fornecedor) {

...

}
if (objeto instanceof Vendedor) {

...

}



ou o isInstance():


if (objeto.isInstance(Cliente)) {

...

}
if (objeto.isInstance(Fornecedor)) {

...

}
if (objeto.isInstance(Vendedor)) {

...

}



=)
Você compara e o que retornar verdadeiro você adiciona à lista ao qual ele pertence.


7. Re: Heranças e Constantes [Duvida][+-Urgente] [RESOLVIDO]

jorge
jorgeback

(usa Fedora)

Enviado em 17/10/2012 - 09:22h

Vlw galera, funciono!

Muito obrigado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts