Você está na página 1de 20

Unidade 0

Programação Orientada a Objetos

Regis Pires Magalhães


regispiresmag@gmail.com

1
Roteiro

Introdução
Programação Orientada a Objetos (por Alan Kay)
Classe
Objeto
Encapsulamento
Herança
Polimorfismo
Resumo
Referências e Recursos

2
Programação Orientada a Objeto
(por Alan Kay)
1. Tudo é um objeto
Um objeto pode ser visto como uma variável extravagante
Um objeto armazena
Dados
Requisições que podem ser feitas para ele
Realizam operações sobre si mesmo
2. Um programa é conjunto de objetos que
trocam mensagens entre si
Para fazer uma requisição para um objeto, uma mensagem
é enviada para ele

3
Programação Orientada a Objeto
(por Alan Kay)
3. Cada objeto possui sua própria memória, composta
de outros objetos
Objetos complexos, que contenham outros objetos, podem ser
criados
Apesar da complexidade interna de tais objetos, do ponto de
vista de uma entidade externa eles se apresentam com a
mesma simplicidade de qualquer outro objeto
4. Todo objeto possui um tipo
Cada objeto é uma instância de uma classe, onde classe é um
sinônimo para tipo
5. Todos os objetos de um tipo particular podem
receber as mesmas mensagens
O mesmo código pode ser utilizado para manipular objetos que
“se baseiam” em uma mesma classe

4
Programação Orientada a Objeto (POO)

Classe
Esqueleto para a criação de objetos
Programadores codificam classes, não objetos
Tipos definidos pelo programador
Descreve um conjunto de objetos que possuem as mesmas
características (dados) e comportamentos (operações)
O conjunto de requisições que podem ser feitas a um objeto define
sua interface
Para escrever uma classe
Defina seus dados (atributos)
Defina seus comportamentos (métodos)

5
Classe
Exemplo:
Uma classe Cachorro com:
atributos nome e idade;
métodos latir, obterNome e obterIdade

6
Programação Orientada a Objetos
Exemploclass
escrito em{ Java
Cachorro
String nome;
int idade;

Cachorro(String n, int id) {


nome = n;
idade = id;
}

void latir() {
System.out.println("Au, Au");
}

int obterIdade() {
return idade;
}

String obterNome() {
return nome;
7 }
Programação Orientada a Objetos

Objeto
Possui dados (atributos)
Informação sobre o estado do objeto
Possui um conjunto definido de comportamentos
Ações que o objeto pode realizar em si mesmo
Mudam o estado do objeto
Possui uma identidade
Pode ser distinguido de outros objetos
Um objeto é uma instância de uma classe

8
Alguns ambientes educacionais que
facilitam o entendimento da OO
BlueJ

9
Alguns ambientes educacionais que
facilitam o entendimento da OO
BlueJ

10
Alguns ambientes educacionais que
facilitam o entendimento da OO
Greenfoot – Filho do BlueJ

11
Alguns ambientes educacionais que
facilitam o entendimento da OO
Robocode

12
Programação Orientada a Objeto

Encapsulamento
Ocultação da informação
Lida com a separação entre interface e implementação
Decisão de projeto
Altamente desejável

13
Programação Orientada a Objeto

Herança

Termo “bonito” para uma idéia simples


“A propriedade que assegura que uma instância de uma classe-filha
pode acessar tanto os atributos quanto os métodos de sua classe-pai”
Timothy Budd - Object Oriented Programming

14
Programação Orientada a Objeto

Herança
“Herança é uma forma poderosa de se compartilhar
semelhanças entre classes, mas preservando as
diferenças entre elas”
Rumbaugh et al – Object Oriented Modelling and Design
Maneira de organizar classes em uma hierarquia
Permite abstrair o propósito de uma classe tomando-se por base as
classes que a precedem na hierarquia
Possibilita a reutilização de código
Quando um método é herdado, o código que o define não precisa ser
reescrito
Economia de tempo de codificação
Redução da possibilidade de introdução de novos erros
Código herdado pode ser bem eficiente

15
Programação Orientada a Objeto

Herança
Possibilita o compartilhamento de código
Projetos complexos podem ser implementados por diversos
programadores

Termos essenciais para a POO


Superclasse
Classe utilizada como base para a criação de uma nova classe
Subclasse
Classe criada a partir da definição de uma classe já existente (superclasse)
A subclasse X herda da superclasse Y
Superclasse direta
Superclasse da qual uma subclasse herda explicitamente (diretamente)

16
Programação Orientada a Objeto

Herança
Termos essenciais para a POO
Superclasse indireta
Superclasse da qual uma subclasse herda de forma implícita (indireta)
Exemplo:

17
Programação Orientada a Objeto

Polimorfismo
Habilidade da linguagem de manipular instâncias de
subclasses de uma mesma superclasse através de
métodos definidos na superclasse
Possibilitado pela redefinição de métodos existentes em
uma superclasse em suas subclasses
Implementado com o uso de alguns recursos em Java
Promove extensibilidade

18
Resumo

Programação Orientada a Objeto


Definição por Alan Kay
Conceitos
Classe
Objeto
Encapsulamento
Herança
Polimorfismo

19
Referências e Recursos

Livros
Object-Oriented System Development: HTML Edition
http://g.oswego.edu/dl/oosdw3/
Software Engineering (5th Edition) – Ian Sommerville
Object-Oriented Analysis and Design with Applications –
Grady Booch
Object-Oriented Software Engineering: A Case Driven
Approach – Ivar Jacobson
Web
http://www.argonavis.com.br/cursos/java/j100/index.html
http://www.bluej.org/
http://www.greenfoot.org/
http://robocode.sourceforge.net/

20

Você também pode gostar