java 00 poo
TRANSCRIPT
Unidade 0
Programao Orientada a Objetos
Regis Pires Magalhes
Roteiro
Introduo
Programao Orientada a Objetos (por Alan Kay)
Classe
Objeto
Encapsulamento
Herana
Polimorfismo
Resumo
Referncias e Recursos
Programao Orientada a Objeto
(por Alan Kay)
1. Tudo um objeto
Um objeto pode ser visto como uma varivel extravagante
Um objeto armazena
Dados
Requisies que podem ser feitas para ele
Realizam operaes sobre si mesmo
2. Um programa conjunto de objetos que trocam mensagens entre si
Para fazer uma requisio para um objeto, uma mensagem enviada para ele
Programao Orientada a Objeto
(por Alan Kay)
3. Cada objeto possui sua prpria memria, 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 instncia de uma classe, onde classe um sinnimo para tipo
5. Todos os objetos de um tipo particular podem receber as mesmas mensagens
O mesmo cdigo pode ser utilizado para manipular objetos que se baseiam em uma mesma classe
Programao Orientada a Objeto (POO)
Classe
Esqueleto para a criao de objetos
Programadores codificam classes, no objetos
Tipos definidos pelo programador
Descreve um conjunto de objetos que possuem as mesmas caractersticas (dados) e comportamentos (operaes)
O conjunto de requisies que podem ser feitas a um objeto define sua interface
Para escrever uma classe
Defina seus dados (atributos)
Defina seus comportamentos (mtodos)
Classe
Exemplo:
Uma classe Cachorro com:
atributos nome e idade;
mtodos latir, obterNome e obterIdade
Programao Orientada a Objetos
class 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;
}
}
Exemplo escrito em Java
Programao Orientada a Objetos
Objeto
Possui dados (atributos)
Informao sobre o estado do objeto
Possui um conjunto definido de comportamentos
Aes 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 instncia de uma classe
Alguns ambientes educacionais que facilitam o entendimento da OO
BlueJ
Alguns ambientes educacionais que facilitam o entendimento da OO
BlueJ
Alguns ambientes educacionais que facilitam o entendimento da OO
Greenfoot Filho do BlueJ
Alguns ambientes educacionais que facilitam o entendimento da OO
Robocode
Programao Orientada a Objeto
Encapsulamento
Ocultao da informao
Lida com a separao entre interface e implementao
Deciso de projeto
Altamente desejvel
Implementado como uma tcnica na linguagem Java
Programao Orientada a Objeto
Herana
Termo bonito para uma idia simples
A propriedade que assegura que uma instncia de uma classe-filha
pode acessar tanto os atributos quanto os mtodos de sua
classe-pai
Timothy Budd - Object Oriented Programming
Programao Orientada a Objeto
Herana
Herana uma forma poderosa de se compartilhar semelhanas entre classes, mas preservando as diferenas entre elas
Rumbaugh et al Object Oriented Modelling and Design
Maneira de organizar classes em uma hierarquia
Permite abstrair o propsito de uma classe tomando-se por base as classes que a precedem na hierarquia
Possibilita a reutilizao de cdigo
Quando um mtodo herdado, o cdigo que o define no precisa ser reescrito
Economia de tempo de codificao
Reduo da possibilidade de introduo de novos erros
Cdigo herdado pode ser bem eficiente
Programao Orientada a Objeto
Herana
Possibilita o compartilhamento de cdigo
Projetos complexos podem ser implementados por diversos programadores
Implementada como um recurso especfico de Java
Termos essenciais para a POO
Superclasse
Classe utilizada como base para a criao de uma nova classe
Subclasse
Classe criada a partir da definio de uma classe j existente (superclasse)
A subclasse X herda da superclasse Y
Superclasse direta
Superclasse da qual uma subclasse herda explicitamente (diretamente)
Programao Orientada a Objeto
Herana
Termos essenciais para a POO
Superclasse indireta
Superclasse da qual uma subclasse herda de forma implcita (indireta)
Exemplo:
Programao Orientada a Objeto
Polimorfismo
Habilidade da linguagem de manipular instncias de subclasses de uma mesma superclasse atravs de mtodos definidos na superclasse
Possibilitado pela redefinio de mtodos existentes em uma superclasse em suas subclasses
Implementado com o uso de alguns recursos em Java
Promove extensibilidade
Resumo
Programao Orientada a Objeto
Definio por Alan Kay
Conceitos
Classe
Objeto
Encapsulamento
Herana
Polimorfismo
Referncias 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/
Clique para editar o formato do texto-ttulo
Clique duplo para editar os formatos do esquema do texto
Segundo nvel do esquema
Terceiro nvel do esquema
Quarto nvel do esquema
Quinto nvel do esquema
Sexto nvel do esquema
Stimo nvel do esquema
Oitavo nvel do esquema
Nono nvel do esquema