30
1 Programação Orientada a Objetos Artur Henrique Kronbauer [email protected]

Programação Orientada a Objetos

  • Upload
    ciqala

  • View
    75

  • Download
    0

Embed Size (px)

DESCRIPTION

Programação Orientada a Objetos. Artur Henrique Kronbauer [email protected]. Conteúdos Abordados. Programação Orientada a Objetos Como modelar com Orientação a Objetos(OO) Modelos, seus dados e comportamentos Definição de classes Definição de tipos primitivos e não primitivos - PowerPoint PPT Presentation

Citation preview

Page 1: Programação  Orientada a Objetos

1

Programação Orientada a Objetos

Artur Henrique Kronbauer

[email protected]

Page 2: Programação  Orientada a Objetos

2

Conteúdos Abordados

− Programação Orientada a Objetos− Como modelar com Orientação a Objetos(OO)− Modelos, seus dados e comportamentos− Definição de classes− Definição de tipos primitivos e não primitivos− Construtores− Criação de Objetos− Sobrecarga− Interação entre Objetos− Generalização− Especialização− Herança

Page 3: Programação  Orientada a Objetos

3

O que é POO?

• Programação Orientada a Objetos é uma metodologia de desenvolvimento de software.

• Sua principal vantagem é a proximidade com a forma que os seres humanos visualizam e entendem o mundo ao seu redor.

• Tem como principal objetivo facilitar a modelagem e desenvolvimento de sistemas, através da interação entre objetos.

Page 4: Programação  Orientada a Objetos

4

Como podemos modelar com OO?• Vamos imaginar a seguinte situação:

− A esposa de um jovem casal, se encontra no segundo mês de gravidez. No meio da noite, a grávida acorda com uma azia terrível. Como é natural, a mulher pede que seu marido providencie um antiácido para ela.

Page 5: Programação  Orientada a Objetos

5

Como podemos modelar com OO?• Como poderíamos representar esse

problema sobre a ótica dos Objetos?

− o objeto marido recebe uma mensagem do objeto esposa.

− O objeto marido responde a essa mensagem mediante a uma ação: buscar antiácido.

− A esposa não tem que dizer a ele onde ele deve procurar, é responsabilidade do marido a ação de procurar o antiácido.

− Ao objeto esposa basta ter emitido uma mensagem ao marido.

Page 6: Programação  Orientada a Objetos

6

Modelos e Dados

• Os modelos na POO são chamados de classes.

• As classes especificam as características dos

objetos materializados a partir delas.

• Tais características são chamados de

atributos.

• Ao ser materializado um objeto dizemos que

criamos uma Instância da classe.

• Instâncias distintas de uma mesma classe

possuem os mesmos atributos, entretanto

com possíveis diferenças de valores.

Page 7: Programação  Orientada a Objetos

7

Modelos e Dados

• Os objetos são diferenciadas pelos seus

nomes de referência e não pelo valor de

seus atributos.

Page 8: Programação  Orientada a Objetos

8

Modelos e Comportamento

• Em muitas situações os problemas do mundo

real ao serem modelados para o mundo

computacional, necessitam ser fragmentados

de acordo com as ações que esse modelo

especificará para a representação do

problema.

• Objetos possuem comportamentos os quais

são representados nas classes através dos

métodos.

Page 9: Programação  Orientada a Objetos

9

Modelos e Comportamento

• A fragmentação permite que o problema seja

representado por um conjunto de métodos,

os quais representam as ações do modelo.

• Vantagens de ter vários métodos em um

modelo:− facilidade em escrever o modelo;− utilizações repetidas de um mesmo método;− facilidade em dar manutenção;− utilização de parametrizações;− utilização adequada de recursos.

Page 10: Programação  Orientada a Objetos

10

Abstraindo dados e Comportamentos

Page 11: Programação  Orientada a Objetos

11

Abstraindo dados e Comportamentos

Page 12: Programação  Orientada a Objetos

12

Definição de uma classe em Java

Page 13: Programação  Orientada a Objetos

13

Definição de Tipos

• Os tipos aparecem tanto nas declarações de

atributos como na declaração de métodos.

• Os tipos podem ser primitivos: − int, float, char, double, byte, boolean.

• Os tipos podem ser Não primitivos (nomes de

outras classes previamente definidas)− String, Mamiferos

Classes também são tipos!

Page 14: Programação  Orientada a Objetos

14

Exemplos da utilização de Tipos• Para definição de Atributos:

Page 15: Programação  Orientada a Objetos

15

Exemplos da utilização de Tipos• Para a construção de Métodos:

Page 16: Programação  Orientada a Objetos

16

Construtores

• Um construtor é um método que possui o mesmo nome da classe onde ele está declarado.

• Seu objetivo é inicializar o estado interno de um objeto (seus atributos).

• O construtor não possui retorno de nenhum tipo, nem mesmo void.

• Um construtor sempre é chamado através do operador new no momento de se instanciar um objeto.

Page 17: Programação  Orientada a Objetos

17

Criando Objetos

Page 18: Programação  Orientada a Objetos

18

Sobrecarga de Métodos e Construtores• Diferentes métodos podem ter o mesmo

nome, porém com listas de parâmetros (assinaturas) diferentes.

• Esse conceito é chamado de sobrecarga.

• Este fato muitas vezes é necessário para modelarmos comportamentos semanticamente semelhantes, porém alimentados com dados diferentes.

Page 19: Programação  Orientada a Objetos

19

Exemplo de Sobrecargaclass soma {  int calculo(int numero1, int numero2) { int resposta;         resposta = numero1 + numero2;

return resposta; }

int[] calculo(int vetor1[], int vetor2[])     {    int[] resposta = new int[vetor1.length];      int i;

for (i=0; i < vetor1.length; i++) {  resposta[i] = vetor1[i] + vetor2[i]; }          return resposta;

}}

Page 20: Programação  Orientada a Objetos

20

Interação entre Objetos

• Modelagens complexas necessitam da interação entre vários objetos para a solução do problema.

• A idéia é chamada de “Dividir para conquistar”.

• Em POO, podemos ter várias classes com objetivos específicos, as quais ao interagirem através de seus objetos solucionam problemas mais abrangente.

Page 21: Programação  Orientada a Objetos

21

Exemplo de Interação entre Objetos

Controlede

Estoque

Page 22: Programação  Orientada a Objetos

22

Generalização

• Dona Cicinha quer evoluir o sistema para controlar o faturamento.

• Para isso será necessário controlar os quitutes vendidos.• Ao ser criadas as classes quitutes e

bebidas, podemos notar que alguns atributos e métodos são iguais.

• A criação de uma classe chamada produtos poderia agrupar as semelhanças.

Page 23: Programação  Orientada a Objetos

23

Generalização

Page 24: Programação  Orientada a Objetos

24

Generalização

• Através da generalização podemos agrupar em uma classe um conjunto de definições comuns a diferentes classes.

Page 25: Programação  Orientada a Objetos

25

Especialização

• A especialização é o caminho inverso da generalização. Partindo de um modelo mais genérico podemos acrescentar novas características e comportamentos aos já existentes.

Page 26: Programação  Orientada a Objetos

26

Herança

• Herança é um dos mecanismos fundamentais de relação entre classes na orientação a objetos.

• Ela relaciona uma classe pai (superclasse) com outras classes filhas (subclasses) de forma hierárquica.

• As subclasses herdam todos os atributos e métodos da superclasse e podem criar os seus próprios métodos e atributos.

Page 27: Programação  Orientada a Objetos

27

Herança

• A definição de herança em uma classe ocorre na linguagem Java através da palavra “extends” colocada logo após o nome da classe que herda de outra.

• Uma subclasse para referenciar os métodos ou atributos da superclasse utilizamos a palavra reservada super.

Page 28: Programação  Orientada a Objetos

28

Herança

Page 29: Programação  Orientada a Objetos

29

Assuntos para a próxima Aula

• Modificadores de acesso a Atributos e Métodos

• Polimorfismo

• Classes Abstratas

• Interfaces

• Pacote de Classes

Page 30: Programação  Orientada a Objetos

30

Bibliografia

• BARNES, D e Kölling, M. Programação Orientada a Objetos com Java. 2a Edição: Editora Pearson Education. 2007.

• DEITEL, H. M. e DEITEL, P. J. Java como Programar. 4a Edição: Editora Bookman. 2003.

• SANTOS, R. Introdução à Programação Orientada a Objetos Usando Java. 1a Edição: Editora Campus. 2003.