5. Elementos da POO
• Existem alguns elementos que podem existir na
programação orientada a objetos. São eles:
Classe
Classes abstratas
Interface
Objeto
Atributos
Métodos
6. Classes
• É um “modelo/forma” para um objeto. Um objeto por
sua vez é uma abstração empobrecida da realidade
com o fim de torná-la computável.
7. Classe Abstrata
• É uma classe que contem pelo menos um de seus
métodos marcado para posterior implementação, ou
seja, declarado como abstrato.
• Classes abstratas podem ter atributos
8. Interface
• É um contrato definido para as classes.
• Uma interface não possui atributos ou métodos
implementados, tendo somente a assinatura dos
métodos que as classes que a realizarem devem
implementar.
9. Objeto
• É uma instância de uma classe.
• O objeto aponta para o endereço de memória onde
se encontra a instância de uma classe de seu tipo.
• Um objeto pode conter:
Atributos
Métodos
10. Atributos
• São a representação dos estados internos do objeto.
Informações que estão associadas ao conceito
representado pelo objeto.
11. M todosé
• É através dos métodos que podemos operar sobre os
atributos de uma classe, obtê-los, mudá-los ou ainda
efetuar algum calculo ou processo.
• Devido ao conceito do encapsulamento, é através de
métodos que os objetos se comunicam.
12. Caracter sticas de umí
Objeto
• Alguns conceitos são importantes para entendermos
melhor os fundamentos da orientação a objetos. São
eles:
Encapsulamento;
Sobrecarga de método;
Herança;
Polimorfismo;
Sobrescrita de método.
13. Encapsulamento
• É a característica do objeto que indica que somente o
objeto que contem o atributo, pode ter acesso a este
atributo, ou seja, o objeto é como uma cápsula que
contem esses atributos e pela qual não podemos
passar diretamente para acessar estes estados.
14. Sobrecarga de m todosé
• Esta característica também existem em linguagens
estruturadas. Através dela podemos mudar o
comportamento de um método, mantendo seu
nome igual. No entanto para isto, a assinatura deve
mudar, ou seja, o numero de parâmetros ou ainda o
tipo destes não deve ser igual ao método o qual se
quer sobrecarregar.
15. Heran aç
• É a capacidade de uma classe filha utilizar os
métodos e atributos da sua superclasse, ou seja, sua
classe pai.
16. Polimorfismo
• É a capacidade de um método mudar de
comportamento entre as classes que herdam da
mesma classe pai. Podemos através da classe pai
acessar as instancias das classes filhas e usar os
diferentes métodos.
17. Polimorfismo – cont.
• Exemplo:
Podemos fazer uma classe pai ObjetoCortante que tem um
método cortar(). As classes filhas faca e tesoura reimplementam
este método, as duas cortam, no entanto cada uma corta de uma
forma, ou seja, em cada classe filha o método assume uma forma o
que implica dizer que ele tem várias formas (poli morfo) de
implementação.
18. Sobrescrita de m todoé
• É a capacidade de um método mudar de
comportamento de uma classe pai para a classe filha.
22. Declarando atributos
• Um atributo é utilizado para guardar os estados de
um objeto.
• Por Exemplo:
o atributo nome de uma classe Pessoa é utilizado para
guardar esta informação de uma pessoa no mundo real.
24. • Descrição:
<escopo> - escopo de acesso do atributo;
• {public|protected|private}
<Tipo> - tipo do atributo;
• {int|String|...}
<nomeAtributo> - nome do atributo;
25. Declarando m todosé
• Através dos métodos podemos alterar e ler atributos
de um objeto, ou ainda efetuar funções ou
procedimentos.
26. • Sintaxe:
<escopo> <retorno> <nomeMetodo>(<Tipo>
<nomeParam>,...){
...
}
• Exemplo:
Public int calcula(int a, int b){
...
}
27. • Descrição:
<escopo> - escopo de acesso do método;
• {public|protected|private}
<retorno> - retorno do método;
• {int|String|...}
<nomeMetodo> - nome do método;
<Tipo> - tipo do parâmetro;
• {int|String|...}
<nomeParam> - nome do parâmetro;
28. Instanciando classe
• Para utilizar uma classe devemos a instanciar, este
processo cria um objeto o qual chamamos de
instancia de classe.
30. • Descrição:
<objeto> - nome do objeto;
<NomeClasse> - nome da classe que gerará a nova
instancia;
31. Chamando m todosé
• Sintaxe:
<objeto>.<nomeMetodo>();
• Exemplo:
pessoa.toString();
• Descrição:
<objeto> - nome objeto;
<nomeMetodo> - nome do método a ser invocado
32. Exerc cioí
• Fazer uma classe onde seja calculada a soma de dois
números;
• Fazer uma classe onde seja calculada a subtração de
dois números;
• Fazer uma classe onde seja calculada a multiplicação
de dois números;
• Fazer uma página onde seja calculada a divisão de
dois números;
33. Exerc cioí
• Implemente um programa que leia os dados de uma
pessoa e crie um objeto com estes dados.
34. • Implemente um programa que cadastre CDs, com:
Nome do autor
Numero de musicas
Tempo total de musicas
Nome gravadora
35. Exerc cioí
• Implemente as classes necessárias para um carro,
levando em conta que um carro tem:
4 roda
1 motor, que pode ser:
• Gasolina
• Álcool
• Gás
• Diesel
• Flex
• E é fabricado por uma Montadora, que fica em
um País.
36. Exerc cioí
• fazer um programa que calcule a área de figuras
geométricas. São estas figuras:
Quadrado;
Retângulo;
Paralelogramo;
Triangulo;
Circulo;
37. Exerc cioí
• Implemente um programa que cadastre Aluno,
Turma, Professor e Sala. A sala deve conter 1 Turma, 1
Professor. A Turma deve conter até 5 Alunos.
38. Exerc cioí
• Cadastre os Equipamentos de uma Rede, sendo que
estes equipamentos podem ser Roteadores, Switchs,
Hubs, Hosts e PrintServers.
• A rede pode ter até 10 equipamentos.
39. Conclus oã
• Através dos recursos da orientação a objeto, como a
herança, por exemplo, podemos diminuir a
complexidade dos programas feitos, assim como
aumentar a facilidade de manutenção e o reuso.