Aula 4.0: Programação Orientada a Objeto #LTCode

COMPARTILHAR:

Whatsapp Telegram Twitter Facebook Reddit

Aula 4 - Programação Orientada a Objeto utilizando JAVA

Este artigo faz parte do projeto #LTCode

Voltamos com mais aulas! Vamos aprender juntos sobre POO utilizando Java, o foco será mais nos conceitos de POO pois tendo uma boa base você conseguirá aplicar os conceitos de POO em outras linguagens que aceita este novo estilo de programação, portanto não ensinaremos a utilizar uma IDE, mas se precisa de uma boa IDE para começar... recomendamos baixar e instalar o Netbeans.

É altamente recomendado que você já domine outra linguagem de programação, pois não revisaremos conceitos de programação aqui, portanto se não sabe programar confira nosso curso de C completo clicando aqui.

A Programação Orientada a Objeto (POO) divide um programa em objetos interativos. A POO dá o próximo passo lógico em relação a programação modular, adicionando novos conceitos como: herança e polimorfismo.

Os conceitos fundamentais da POO são:
  • Abstração
  • Encapsulamento
  • Herança
  • Polimorfismo
Abstração é a habilidade de modular características do mundo real, por exemplo um problema que o desenvolvedor esteja tentando resolver. Abstrações permitem gerenciar a complexidade e concentrar a atenção nas características essenciais do objeto.

Observe como fica a abstração do objeto "Roupa":


Confira como fica o código da classe "Roupa" em java:


Um objeto é uma construção de software que encapsula estado e comportamentos. Assim, uma classe define os atributos e comportamentos comuns compartilhados por um tipo de objeto.

A classe é reconhecida pela uso da palavra reservada "class" (linha 1 da imagem acima). Tudo que está entre os colchetes { } de "public class" (da linha 1 até a 10) é a parte interna da classe.

É possível comunicar com os objetos invocando os métodos deles. Métodos podem ter parâmetros, e esses possuem tipos. Seu uso lembra as funções em C. 

O cabeçalho do método é chamado de assinatura. Como pode observar na linha 6 (imagem acima) "public boolean vestir()" é a assinatura de um método. 

- "public" significa o tipo de acesso do método;
- "boolean" é o tipo de retorno do método, no caso retorna true ou false;
- "vestir" é o nome do método;
- "()" recebe os parâmetros.

Outro exemplo de método seria o método "cortar()" de um objeto "Tesoura":

public void cortar(String material){
     //corpo do método
}

Você provavelmente está curioso quanto ao uso da palavra "private" no código da imagem acima, os atributos que utilizam "private" são atributos privados ou seja são encapsulados, estes devem possuir métodos getters e setters. 

Um método get é um método especial que retorna o valor de uma variável, em POO estas variáveis são chamadas de campos, que são variáveis internas ou variáveis de instâncias. Já o método set serve para alterar o valor de um campo privado, ou seja altera o valor de uma variável "private". 

Confira como fica os métodos getter e setter na classe "Roupa":

Por exemplo ao chamar o método getCor(), ele retornará uma String que é o valor contido no campo "cor". Já ao chamar o método setCor() você pode mudar o valor do campo "cor" passando uma String.


Vamos criar um sistema  simplificado para registrar uma pesquisa de satisfação dos alunos a respeito da comida do bandejão de uma universidade para compreendermos melhor o que aprendemos até aqui. 

Para isso, implemente uma classe em Java denominada Enquete, que deverá ser responsável por registrar as notas dos alunos pesquisados. A pesquisa é anônima, isto é, só serão registradas as notas, que podem variar de 1 a 10, sendo 1 para pouco satisfeito e 10 para muito satisfeito.

Na classe Enquete, deverão constar métodos capazes de:
  • informar a frequência de ocorrência das notas;
  • calcular a nota média;
  • informar o número de clientes entrevistados;
Confira como ficou nossa classe Enquete:

Vamos desvendar linha por linha nossa classe Enquete:
  1. Pacote criado pela IDE utilizada, para organizar nossas classes.
  2. Linha em branco.
  3. Declaração da nossa classe Enquete.
  4. Comentário.
  5. Criamos um vetor de notas privado do tipo inteiro.
  6. Criamos um campo privado para armazenar a quantidade de entrevistados.
  7. Linha em branco.
  8. Comentário.
  9. Este método é chamado de construtor, o nome do construtor é sempre o nome da classe, ao chamá-lo ele cria o objeto.
  10. O campo entrevistados recebe o valor passado para o construtor inicializar ele.
  11. Aqui é definido o tamanho do vetor nota, no caso ele recebe o valor passado para o construtor, ou seja o total de entrevistados será o tamanho do vetor para armazenar as notas.
  12. Fim do construtor.
  13. Linha em branco.
  14. Assinatura do método para calcular a média das notas.
  15. Declaração de variáveis.
  16. Utilização de um "for" para percorrer o vetor nota com base no número de entrevistados.
  17. Soma das notas contidas no vetor nota.
  18. Fim do for.
  19. Calculo da média.
  20. Faz com que o método retorna o valor contido na variável "media".
  21. Fim do método.
  22. Assinatura do método para calcular frequência das notas.
  23. Declaração de variável contadora.
  24. Utilização de um "for" para percorrer o vetor nota com base no número de entrevistados.
  25. Condição, a palavra reservada "this." permite evitar problema quando existe sobrecarga de nome de uma variável/campo, se existisse no parâmetro do método "frequenciaNota(int x, int nota)" uma variável com nome "nota", o uso de "this." faz referência ao vetor nota e não a variável do parâmetro.
  26. Contador.
  27. Fim do if.
  28. Fim do for.
  29. Retorna valor do contador.
  30. Fim do método.
  31. Comentário.
  32. Linha em branco.
As linhas seguintes são métodos getters e setters que já aprendemos e o fechamento da classe.

Crie também uma classe Teste com o método main() para testar o funcionamento da classe Enquete. Na classe Teste, leia do teclado o número de clientes (alunos) pesquisados e gere notas aleatórias, utilizando para isso a classe SecureRandom do pacote java.util.

Confira como ficou nossa classe Teste:


  1. Pacote criado pela IDE utilizada, para organizar nossas classes.
  2. Importamos a classe Scanner do pacote java.util, para ler do teclado.
  3. Importamos a classe SecureRandom do pacote java.util, para gerar números aleatórios.
  4. Declaração da nossa classe Teste com nome de Bandejao.
  5. Linha em branco.
  6. Declaração padrão do método main() .
  7. Instanciando a classe Scanner, cria um objeto e atribui a "input" que será nossa variável de referência.
  8. Declaração de variáveis.
  9. Comando para imprimir na tela.
  10. Leitura de valor inteiro ".nextInt()" e armazena na variável "entrevistados".
  11. Instanciando a classe Enquete, cria um objeto e atribui a "enquete" que será nossa variável de referência.
  12. Linha em branco.
  13. Comentário.
  14. Instanciando a classe SecureRandom, cria um objeto e atribui a "rand".
  15. Imprime na tela.
  16. Estrutura for.
  17. Usando nossa variável de referência "enquete" conseguimos acessar o método "setNota()" da nossa classe Enquete. Note que foi passado um numero gerado aleatoriamente de 0 a 10 e a posição que queremos inserir ele.
  18. Imprime a nota aleatória gerada.
  19. Fim do for.
  20. Linha em branco.
  21. Comentário.
  22. Imprime a média chamando o método que calcula a média da classe Enquete.
  23. Imprime na tela.
  24. Lê do teclado um número inteiro.
  25. Imprime na tela a frequência da nota armazenada em "y" chamando o método que calcula a frequência.
  26. Fim do main.
  27. Linha em branco.
  28. Fim da classe.
Algumas informações úteis:

- As declarações de variáveis locais se parecem com as declarações de campos, mas elas nunca tem private ou public (contrário do privado, é público) como parte delas.
- Um construtor pode ter variáveis locais.
- Uma classe pode ter mais de um construtor ou mais de um método com o mesmo nome, contando que cada um tenha um conjunto distinto de parâmetros.
- Algumas das palavras reservadas da linguagem java são: public, private, this, void, super, char, class. Resumindo não utilize essas palavras como variáveis.

Como você pode notar, a Programação Orientada a Objeto permite dividir o programas em partes bem definidas e depois juntar elas, assim se alguma parte apresentar error, você não precisa alterar todo o programa, mas apenas a parte (classe) que está com problema. Por exemplo se um controle remoto não funciona por falta de energia, você precisa trocar apenas as pilhas e não o controle.

Bom, esta aula termina aqui. Você compreenderá sobre herança e polimorfismo nas próximas aulas, então continue conosco nesta jornada pelo conhecimento.

>> Próxima aula, clique aqui.

COMENTÁRIOS

Nome

#ann,25,#HK,30,#LTCode,130,Artigo - Diversos,156,Artigo - Games,201,Artigo - Tecnologia,615,autor-thomaz,7,Coluna - Alternative World,24,Coluna - Fail,12,Coluna - Tec Line,14,Criptomoeda,72,Curiosidades - Diversos,49,Curiosidades - Tecnologia,50,en,2,estudo,8,HN,12,logica,14,Pentest,23,Programar C,29,Programar POO,6,Programar Python,6,Programar Shell,25,Programar verilog,12,qradar,4,Raspberry Pi,15,Redes,3,root,117,Shorty Awards,1,Smartphones - Reviews,33,Teoria,10,Top Nostalgia,2,VPN,19,WhatsApp,46,
ltr
item
Limon Tec: Aula 4.0: Programação Orientada a Objeto #LTCode
Aula 4.0: Programação Orientada a Objeto #LTCode
Aula 4 - Programação Orientada a Objeto utilizando JAVA
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmI65og5X32bSLCmBz3uJnZlmDvzOFWZWoZzyvUhh2rtp8Hr_kolKy02pOjxpkThrz8uHaTu3skUdeDJlkFEKkC2a9EabpwPzbwJ-hm-po0QIaNeNvYm5CJw3k4SbN03V-d2h1dxrW2tz4/s640/ltcode.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmI65og5X32bSLCmBz3uJnZlmDvzOFWZWoZzyvUhh2rtp8Hr_kolKy02pOjxpkThrz8uHaTu3skUdeDJlkFEKkC2a9EabpwPzbwJ-hm-po0QIaNeNvYm5CJw3k4SbN03V-d2h1dxrW2tz4/s72-c/ltcode.jpg
Limon Tec
https://www.limontec.com/2019/01/aula-4-0-poo-java-ltcode.html
https://www.limontec.com/
https://www.limontec.com/
https://www.limontec.com/2019/01/aula-4-0-poo-java-ltcode.html
false
2157924926610706248
UTF-8
Carregar todos posts Não encontramos nenhum post VER TUDO Ler mais Responder Cancelar resposta Deletar Por Home PÁGINAS POSTS Ver tudo RECOMENDADO PARA VOCÊ LABEL ARQUIVO SEARCH TODOS POSTS Não encontramos nenhum post relacionado a sua requisição VOLTAR PÁGINA INICIAL Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sab Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Set Out Nov Dez apenas agora 1 minuto atrás $$1$$ minutes ago 1 hora atrás $$1$$ hours ago Ontem $$1$$ days ago $$1$$ weeks ago mais de 5 semanas atrás Seguidores Seguir ESTE CONTEÚDO ESTÁ BLOQUEADO PASSO 1: Compartilhe com seus amigos PASSO 2: Clique no link compartilhado Copiar Todo Código Selecionar Todo Código Todos códigos foram copiados para seu clipboard Não é possível copiar códigos / textos, por favor aperte [CTRL]+[C] (ou CMD+C no Mac) para copiar Tabela de conteúdo