Problemas com herança JAVA

7 respostas
Marco_Aurelio2

Estou fazendo um programa de locadora com jframes, e estou com problemas para herdar da classe mãe na hora do cadastro do filme, que no caso eu fiz uma classe clientes que é a mãe e uma classe filme q é a filha.
Preciso cadastrar os filmes mas o que herda da classe mãe não entra nesse caso…
Estão na mesma ordem da classe filha.

7 Respostas

Marco_Aurelio2

Classe mãe (eu n sei se posso usar arraylist aqui, mas foi o unico jeito pra compilar o cadastro e clientes

Marco_Aurelio2

Cadastro clientes

Marco_Aurelio2

classe filha

Davi_Almeida

Tem certeza que tem que usar Herança nesse problema? Pelo que entendi, não é necessário a herança nesse problema pois, não ha relação de herança entre filme e cliente, a unica relação que há é dos filmes que o cliente ira locar, mas ai nao tem nda a ver com Herança, vc deve colocar um atributo na classe Cliente do tipo filmes, uma lista Ex:

private ArrayList <Filmes> filmes;
Jonas_B_a_r_r_o_s

Isso vai dar um monte de NullPointerException. Suponha que não se digitou nada no campo cod(JTextField1)? o getText estará vazio. Acho muito desnecessario você criar tantos parametros no construtor, eles não precisam ser inicializados imediatamente. Use para as classes Clientes e Filmes atributos e metodos gets e sets. E você não precisa usar herança. Use ao inves disso, agregação. Onde Cliente POSSUI um filme.

Na classe void main ficaria assim:

Filme filme = new Filmes();
Clientes clientes = new Clientes(filme);

Assim, voce poderár usar os metodos da classe Filme atraves do objeto clientes.

clientes.setCodigo(3);

leofariasrj25

Além do que foi dito pelo colegas eu recomendo que você leia algum artigo sobre princípios de design OO como baixo-acoplamento, alta coesão, responsabilidade única, etc. Você pode até fazer este código funcionar mas ele é bem ineficiente e bastante frágil a mudanças ou dados incorretos.

Joseildofilho

Voce tambem esta usando muitos parametros no construtor, não seria melhor passa-los por um set, ou usar o padrão Builder, ja no caso da herança não faz sentido clientes herdarem Filmes pois, um Filme não é um Cliente, como muito bem citado pelos colegas acima. Crie uma classe por exemplo, gerenteClientes, que contenha uma lista dos clientes e em cada cliente coloque uma lista de filmes locados, o gerente, ele deve colocar os filmes locados nos devidos clientes e retirar quando eles devolverem, assim você já quebra muito desse alto acoplamento.

Criado 13 de maio de 2016
Ultima resposta 14 de mai. de 2016
Respostas 7
Participantes 5