java 00 poo

Download Java 00 Poo

If you can't read please download the document

Upload: regis-magalhaes

Post on 16-Apr-2017

3.836 views

Category:

Technology


1 download

TRANSCRIPT

Unidade 0
Programao Orientada a Objetos

Regis Pires Magalhes

[email protected]

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