Eu estou estudando sobre orientação a objetos, e gostaria de melhorar esse código em orientado a objetos. Como eu poderia melhorar ele, para que fique de forma correta e em orientação a objeto.
Você pode tirar o mêtodo ‘s’ da classe JavaApplication5
O Mêtodo ‘s’ tem o nome e idade do aluno, seria melhor colocar esse mêtodo dentro da classe Aluno
C
Camarguin
Obrigadoo pela dica. Ja renomeei esse método ai kk, para não ficar perdido no que ele está fazendo.
Mas no caso de colocar esse método na classe Aluno, como eu usaria esse ArrayList? para adicionar o aluno na arrayList?
J
Jeanderson_Silva1 like
Bom vamos lá então, vamos passo a passo
Vamos criar a classe em um arquivo separado chamado Aluno.Java
Para idade não é ideal utilizar o tipo long, pois o próprio nome fala: long = longo, ou seja é para números muitos grande e idade de uma pessoa não é grande, então utilizamos o tipo int
Agora vamos criar a classe Aluno utilizando o conceito de encapsulamento de Orientação a Objeto:
publicclassAluno{privateStringnome;privateintidade;//construtor da classepublicAluno(Stringnome,intidade){this.nome=nome;this.idade=idade;}/** * Método verifica se é maior ou menor de idade. * * @return */publicbooleanverificar_idade(){if(this.idade<18){returnfalse;}else{returntrue;}}//Gets e sets que fazem o acesso as váriaveispublicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicintgetIdade(){returnidade;}publicvoidsetIdade(intidade){this.idade=idade;}}
Bom como vc pode ver utilizei o construtor da classe para receber o nome e idade do aluno quando ele for instanciado e utilizei a ideia de visibilidade nas variável para o encapsulamento. E criamos um método na classe que verifica se a idade do aluno é de menor ou não.
Agora vamos para o próximo passo onde é o nosso main, vamos deixar ele limpo e mais organizado tudo será feito somente dentro do método estático main:
publicclassPrincipal{publicstaticvoidmain(String[]args){ArrayList<Aluno>lista_de_alunos=newArrayList<>();//Faço o instanciamento do alunoAlunoaluno=newAluno("José",12);//Uso aquele método da criado na classe aluno para verificar se é maior de idadeif(aluno.verificar_idade()){//se for verdadeiro então é maior de idadelista_de_alunos.add(aluno);}else{//caso não, o aluno é de menor de idadeSystem.out.println("o Aluno: "+aluno.getNome()+" é de menor");}}}
Veja que utilizamos o método da classe para verificar se o aluno é de menor ou de maior de idade, e veja que fica bem mais bonito de se ver o código, este é uma das forma de se organizar utilizando a idea de POO (Programação Orientada a Objeto)
I
InicianteJavaHenriqu1 like
Você pode criar uma classe para Aluno e tirá-la da classe JavaApplication5.
Na classe Aluno que você criar, você pode deixá-la como visibilidade public.
Nos atributos (nome e idade) da classe Aluno, você pode deixá-los com visibilidade private e criar métodos get e set para cada um dos atributos.
C
Camarguin
Nossa e como fica bem melhor de entender o que cada método está fazendo… Muito obrigado pela ajuda e dica, estou começando a estudar POO agora. Mas com o que você passou ai estou entendendo muito melhor como trabalhar POO.
Obrigado!
J
Jeanderson_Silva1 like
De nada, recomendo vc ver esses vídeos se caso não viu ainda, do prof guanabara ensinando orientação a objeto e ainda por cima vc recebe um certificado de graça: http://www.cursoemvideo.com/course/curso-de-poo-java/