35
Introdução a Introdução a Orientação a Objetos Orientação a Objetos Aula 5 Aula 5 Professor: Italo Rodrigues Castro Professor: Italo Rodrigues Castro

Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

Embed Size (px)

Citation preview

Page 1: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

Introdução a Orientação a Introdução a Orientação a ObjetosObjetos

Aula 5Aula 5

Professor: Italo Rodrigues CastroProfessor: Italo Rodrigues Castro

Page 2: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

Conceitos OO

A análise OO para o desenvolvimento de software baseia-se na utilização de objetos que colaboram para construir sistemas mais complexos.

A colaboração entre objetos é feita através de envio de mensagens.

Page 3: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

Conceitos OO OO produz modelos que especificam o domínio do problema de

um sistema.

Utilizam uma linguagem de programação Orientada a Objetos (Java, C#).

Não basta apenas utilizar os mecanismos de sua linguagem de programação, deve-se saber utilizar da melhor maneira possível todas as técnicas da modelagem OO.

Page 4: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

Princípios OO1. Qualquer coisa é um objeto.2. Objetos realizam tarefas através da requisição de serviços a

outros objetos.3. Cada objeto pertence a uma determinada classe. Uma

classe agrupa objetos similares.4. A classe é um repositório para comportamento associado ao

objeto.5. Classes são organizadas em hierarquias.

Page 5: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

Características OO

Reuso – Redução do tempo de desenvolvimento e manutenção de código.

Modularidade – É a qualidade de um módulo que garante a sua capacidade de extensão e reuso. (Módulo= Baixo acoplamento + Alta coesão). (Associação e herança).

Page 6: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

Características OO

Abstração - é qualquer modelo que inclui os aspectos relevantes de alguma coisa, ao mesmo tempo em que ignora os menos importantes.

Page 7: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

7

Objetos como abstrações

Uma abstração é uma representação das características relevantes de um conceito do mundo real para um determinado problema.Carro (para uma transportadora de cargas)Carro (para uma fábrica de automóveis)Carro (para um colecionador)Carro (para uma empresa de kart)Carro (para um mecânico)

Page 8: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

8

Abstração Abstração depende do observador.

Page 9: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

Características OO

Page 10: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

Características OO

Uso do polimorfismo – Utilização de objetos semelhantes, mas não idênticos.

Homem

Televisor (Jogo de futebol?!)

Mulher

Page 11: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

Características OO

Não se preocupa com detalhes de implementação, quando um objeto é criado você deve se preocupar somente em usá-los.

É uma forma de restringir o acesso ao comportamento interno de um objeto. (Encapsulamento).

Page 12: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

Características OO

Pizzaria

Analogia

Page 13: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

13

Orientação a Objetos

Um sistema de software orientado a objetos consiste de objetos em colaboração com o objetivo de realizar as funcionalidades deste sistema. Cada objeto é responsável por tarefas específicas. É através da cooperação entre objetos que a computação do sistema se desenvolve.

Page 14: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

14

Conceitos da Orientação a Objetos

Classes e objetos Mensagens Encapsulamento Polimorfismo Herança

Page 15: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

15

Classes e objetos

O mundo real é formado de coisas. Na terminologia de orientação a

objetos, estas coisas do mundo real são denominadas objetos.

Page 16: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

16

Classes e objetos

Importante: uma classe é uma abstração das características relevantes de um grupo de coisas do mundo real. Na maioria das vezes, um grupo de objetos do

mundo real é muito complexo para que todas suas características sejam representadas em uma classe.

Uma classe representa a estrutura de um objeto.

Page 17: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

17

Classes e objetos

Disciplina

código: Stringnome: Stringcréditos:NumhorasSemanais:Num

AlterarDados()

Nome da classe

Atributos

Métodos

Estrutura de uma classe

Page 18: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

18

Classes e objetos

public class TEsfera {float raio;float velocidade;float direcao;

public void atribuiVelocidade(float v){velocidade = v;

}};

Page 19: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

19

Classe X Objeto Classes são definições estáticas, que

possibilitam o entendimento de um grupo de objetos.

Objetos são abstrações de entidades que existem no mundo real.

Objeto é uma instância de uma classe.

Page 20: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

20

Mensagens Para que um objeto realize alguma tarefa,

deve haver um estímulo enviado a este objeto.

Pense em um objeto como uma entidade ativa que representa uma abstração de algo do mundo realEntão faz sentido dizer que tal objeto pode

responder a estímulos a ele enviadosAssim como faz sentido dizer que seres

vivos reagem a estímulos que eles recebem.

Page 21: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

21

Mensagens

Independentemente da origem do estímulo, quando ele ocorre, diz-se que o objeto em questão está recebendo uma mensagem.

Uma mensagem é uma requisição enviada de um objeto a outro para que este último realize alguma operação.

Page 22: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

22

Mensagens

Objetos de um sistema trocam mensagens isto significa que estes objetos estão

enviando mensagens uns aos outros com o objetivo de realizar alguma tarefa dentro do sistema no qual eles estão inseridos.

Page 23: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

23

Mensagens

Page 24: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

24

Abstração na orientação a objetos

A orientação a objetos faz uso intenso de abstrações. Os princípios da orientação a objetos podem ser

vistos como aplicações do Princípio da Abstração. Princípios:

Encapsulamento Polimorfirmo Herança

Page 25: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

25

Encapsulamento

Objetos possuem comportamento. O termo comportamento diz respeito a que

operações são realizadas por um objeto e também de que modo estas operações são executadas.

Page 26: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

26

Encapsulamento O encapsulamento é uma forma de restringir o

acesso ao comportamento interno de um objeto.Um objeto que precise da colaboração de

outro objeto para realizar alguma tarefa simplesmente envia uma mensagem a este último.

O método (maneira de fazer) que o objeto requisitado usa para realizar a tarefa não é conhecido dos objetos requisitantes.

Page 27: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

27

Encapsulamento

Na terminologia da orientação a objetos, diz-se que um objeto possui uma interface.

A interface de um objeto é o que ele conhece e o que ele sabe fazer, sem descrever como o objeto conhece ou faz.

A interface de um objeto define os serviços que ele pode realizar e conseqüentemente as mensagens que ele recebe.

Page 28: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

28

Encapsulamento Uma interface pode

ter várias formas de implementação.

Mas, pelo Princípio do Encapsulamento, a implementação de um objeto requisitado não importa para um objeto requisitante.

Page 29: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

29

Encapsulamento

default Somente classes do mesmopackage possuem acesso

public Todos possuem acesso

protect Apenas os membros da classe e subclasse

private Apenas os membros da classe

Page 30: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

30

Polimorfismo É a habilidade de

objetos de classes diferentes responderem a mesma mensagem de diferentes maneiras.

Homem

Televisor (Jogo de futebol?!)

Mulher

Page 31: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

31

Polimorfismo

public class Empregado{

protected float salario;public float getSalario() {return salario;}

}

public class Vendedor extends Empregado{

protected float comissao;public float getSalario() {

return salario+comissao;}

}

Page 32: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

Polimorfismo

public class Empregado{

protected float salario;public void aumento() {salario= salario*10.0;}public void aumento(float porcent) {salario= salario*porcent;}

}

Page 33: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

33

Herança

A herança pode ser vista como um nível de abstração acima da encontrada entre classes e objetos.

Na herança, classes semelhantes são agrupadas em hierarquias.Cada nível de uma hierarquia pode ser visto

como um nível de abstração.Cada classe em um nível da hierarquia herda

as características das classes nos níveis acima.

Page 34: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

34

Herança A herança facilita o

compartilhamento de comportamento entre classes semelhantes.

As diferenças ou variações de uma classe em particular podem ser organizadas de forma mais clara.

Page 35: Introdução a Orientação a Objetos Aula 5 Professor: Italo Rodrigues Castro

35

Herançaclass Empregado{

protected float salario;public float getSalario() {return salario;}

}

class Vendedor extends Empregado{

protected float comissao;public float getSalario() {return salario+comissao;}

}