You are on page 1of 22

O.O.

em Java:

Introduo Programao Orientada a Objetos


Parte I

Frederico Bublitz
Herdado de: Ivo Augusto Andrade Rocha Thiago Bruno Melo de Sales

Roteiro
Introduo Conceitos Bsicos

Classes, Objetos Encapsulamento, Information Hiding

Projeto: aplicaes em Java Exerccio


em sala Concluses

Introduo
Os conceitos de O.O. so independentes
da tecnologia - Java O.O.???

Viso abstrata: enxergar o mundo

pensando em objetos Viso concreta: construir objetos do mundo real usando objetos de software

Viso Abstrata
Orientao a Objetos enxergar e modelar o mundo como um conjunto de objetos inter-relacionados que interagem entre si
Objeto1

Objeto2
Objeto3 Objeto4 Objeto5

Viso Abstrata
Um objeto uma entidade fsica ou conceitual que possui uma identidade, propriedades e operaes e que pode ser construdo e destrudo.

Viso Abstrata
Identidade de objetos: define a unicidade
dos objetos

MeuCarro

MinhaTV14

Viso Abstrata
As propriedades definem o estado do
objeto
Nome Nmero de Pessoas Valor Cor Marca Polegadas Cor Padro de Vdeo

Viso Abstrata
Operaes definem os comportamentos
que podem ser desempenhados pelo objeto
Acelerar Frear Ligar seta

Ligar/Desligar Mudar Canal Aumentar/Diminuir Volume

Viso Abstrata
Exemplo: Classificao

Objetos do tipo Carro


Nome: Besta Numero de Pessoas: 16 Valor: R$60.000 Cor: Laranja e Azul Nome: BMW Numero de Pessoas: 2 Valor: R$150.000 Cor: Azul Claro

Acelerar Frear Ligar seta

Viso Concreta
preciso encontrar maneiras para
concretizar os conceitos do mundo real em sistemas computacionais Alm disso, preciso encontrar um modelo para a criao de objetos diferentes de acordo com um mesmo tipo

Viso Concreta
Classe

Uma classe um modelo, um prottipo para a criao de exemplares ou instncias de um mesmo tipo Um objeto uma instncia de uma classe
PudimMaeIvo

PudimMaeThiago

Viso Concreta
Todo objeto, instncia de uma classe, ter as mesmas propriedades (atributos) e as mesmas operaes (mtodos) dela A classe ento uma ferramenta para padronizar a criao de objetos de um determinado tipo

Exemplos
class Carro { String nome; int numPortas; int velocidadeMax;

Atributos

Carro(String n, int nPortas, int vel) { Construtor nome = n; numPortas = nPortas; velocidadeMax = vel; } void acelerar(int velocidade) { Mtodo velocidadeMax = velocidadeMax + velocidade }

Carro meuCarro = new Carro(bmw, 2, 320); Criador de Objetos! meuCarro.acelera(50);

Viso Abstrata
Encapsulamento/Information hiding
Mtodos especficos para acessar as informaes (Encapsulamento)
Caixa preta Informaes escondidas dos pilotos (Information Hiding)

o ato de esconder do usurio informaes que no so de seu interesse.

Modificadores de Acesso
Private

Visvel apenas dentro da classe. Visvel tambm pelas classes filhas.

Protected

Public

Visvel por qualquer classe da aplicao


Visvel apenas dentro do mesmo pacote

Default

Implementao em Java
Exemplo de classe:
public class Pessoa { public String nome; public Pessoa(String nome) { this.nome = nome; } public imprimirNome() { System.out.println(this.nome); }

Viso Concreta
Information
Hiding: mostrar aos clientes somente o que eles podem ver
Objeto Mtodos Privados/Protegidos Acesso apenas aos Mtodos pblicos! Pblicos

Atributos

Implementao em Java
public class Pessoa { private boolean validarNome(String nome) { ... }

public void setNome(String nome) { if (this.validarNome(nome)) { this.nome = nome; } }


public String getNome() { return this.nome; } }

Viso Concreta
Envio de Mensagens
Objeto, me d o teu nome pra eu mostrar na tela!!! Cliente (outro objeto)

getNome
Objeto

Objeto, imprima seu nome na tela!!!


Cliente (outro objeto)

imprimirNome
Objeto

Implementao em Java
public class Pessoa { private String nome; public Pessoa(String nome) { this.nome = nome; } public imprimirNome(String nome) { System.out.println(Nome: + this.getNome()); } public void setNome(String nome) { if (this.validarNome(nome)) { this.nome = nome; } } public String getNome() { return this.nome; } }

Projeto Em sala
Objetivo
Implementar uma agenda telefnica

Classes
Agenda
Atributos
Pessoas

Mtodos
inserirPessoa(pessoa) removerPessoa(pessoa) imprimirAgenda()

Projeto (cont.)
Classes
Pessoa
Atributos
Nome Telefone Email Matrcula

Mtodos
Mtodos get/set

You might also like