Você está na página 1de 31

MC322 2014

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana

Introduo Programao
Orientada a Objetos

Referncias

prof. Fbio Luiz Usberti

MC322 - Programao Orientada a Objetos


Instituto de Computao - UNICAMP - 2014

MC322 2014

Sumrio

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana
Referncias

1 Objetos
2 POO
3 Classes
4 Herana
5 Referncias

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana

O que so objetos?

Referncias

Objetos do mundo real: lousa, apagador, mesa,

professor, aluno, co, bicicleta, carro.


Duas caractersticas essenciais de objetos do

mundo real: estado e comportamento.


Identificar o estado e comportamento dos objetos

a melhor maneira para comear a pensar em


termos de programao orientada a objetos.

MC322 2014
fusberti@ic.unicamp.br

Orientao a Objetos

Objetos
POO
Classes
Herana
Referncias

Objetos do mundo real

MC322 2014
fusberti@ic.unicamp.br

Orientao a Objetos

Objetos
POO
Classes
Herana
Referncias

Objetos do mundo real

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes

Objetos do mundo real

Herana
Referncias

Objetos diferentes possuem complexidades

diferentes.
Lanterna:
Estados: ligado e desligado.
Comportamentos: ligar e desligar.

Rdio:
Estados: ligado, desligado, volume atual, estao
atual.
Comportamentos: ligar, desligar, aumentar volume,
diminuir volume, procurar estao, sintonizar.

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO

Objetos de software

Classes
Herana
Referncias

Objetos em software tambm possuem estados e

comportamentos.
Um objeto armazena seu estado em atributos

(variveis) e assumem comportamentos atravs de


mtodos (funes).
Os mtodos de um objeto operam sobre seu

estado interno e so os principais mecanismos da


intercomunicao objeto-objeto.
A possibilidade de esconder o estado interno de

um objeto e obrigar que todas as interaes com


um objeto sejam realizadas por mtodos
conhecido como encapsulamento.

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes

Objetos de software

Herana
Referncias

Fonte: http://docs.oracle.com/javase/tutorial/java/concepts/object.html

MC322 2014
fusberti@ic.unicamp.br

Orientao a Objetos

Objetos
POO
Classes
Herana
Referncias

POO Programao Orientada a Objetos

Desenvolver um programa computacional


constitudo por um conjunto de objetos
relacionados que interagem de forma a resolver
um problema.

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes

POO Programao Orientada a Objetos

Herana
Referncias

Etapas fundamentais do design orientado a

objetos de um software:
Analisar os requisitos que descrevem o sistema

desejado.
Determinar os objetos necessrios para

implementar o sistema.
Determinar os atributos que os objetos tero.
Determinar os comportamentos que esses objetos

exibiro.
Especificar como ocorre a interao entre os

objetos para atender aos requisitos do sistema.

MC322 2014
fusberti@ic.unicamp.br

Orientao a Objetos

Objetos
POO
Classes
Herana
Referncias

POO Programao Orientada a Objetos


Benefcios da programao orientada a objetos:
Abstrao
Modularidade
Encapsulamento
Reuso de cdigo
Alterao e depurao

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes

Abstrao

Herana
Referncias

O conceito de abstrao ou modelagem significa

decompor um sistema complicado em suas partes


fundamentais, descrevendo-as em uma linguagem
simples e precisa.
Os componentes do sistema e suas

funcionalidades so identificadas e descritas.


Essa descrio passa a ser uma abstrao ou um

modelo do sistema, que pode ser implementado


como um objeto em uma linguagem orientada a
objetos.

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana
Referncias

Modularidade
Sistemas modernos de software so constitudos

por diversos componentes (objetos) distintos que


interagem entre si.
A modularidade prev que o cdigo-fonte de um

objeto pode ser escrito e mantido de modo


independente de outros objetos.
Essa independncia deve estar associada a uma

estrutura de organizao dos diferentes objetos,


para que eles possam interagir corretamente,
fazendo com que todo sistema funcione de forma
adequada.

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana
Referncias

Encapsulamento
A interao de um objeto com o meio externo

realizada exclusivamente atravs de seus


mtodos.
Os detalhes de implementao so mantidos

escondidos do meio externo.

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana
Referncias

Reuso de cdigo
Frequentemente precisamos de objetos j

implementados em outras situaes e por outros


desenvolvedores.
Esses objetos podem ser incorporados em um

novo programa.
Objetos complexos e de propsito especfico

podem ser implementados e testados


exaustivamente antes de serem incorporados ao
programa computacional.

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana
Referncias

Alterao e depurao
Se um objeto tornar-se problemtico, possvel

simplesmente fazer a remoo e substituio por


outro objeto que esteja funcional.
se uma mquina possui uma engrenagem

defeituosa, no troque a mquina, mas somente a


engrenagem.

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes

O que so classes?

Herana
Referncias

No mundo real, possvel encontrar diversos

exemplares de objetos de um mesmo tipo.


Existem muitas unidades de bicicleta de um

mesmo tipo, dotadas dos mesmos componentes e


feitas a partir de um mesmo desenho (modelo).
Em termos de orientao a objetos, dizemos que

um objeto bibicleta uma instncia de uma classe


que modela bicicletas.
Uma classe uma receita atravs da qual objetos

so criados.

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana
Referncias

O que so classes?
A modelagem de classes pode ser auxiliada por

meio de diagramas de classes da linguagem UML.


A UML uma linguagem de representao grfica

para a modelagem de sistemas orientados a


objetos.
Essa linguagem rica em recursos e possui

diversos diagramas para a descrio estrutural,


comportamental e de interaes.

MC322 2014
fusberti@ic.unicamp.br

Orientao a Objetos

Objetos
POO
Classes
Herana

Diagrama UML para a classe Bicicleta

Referncias

Software Umbrello para elaborao de diagramas UML (Unified Modelling Language):


http://umbrello.kde.org/

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos

/ D e f i n i o de uma c l a s s e B i c i c l e t a /
public class B i c y c l e {

POO

/ / A t r i b u t o s ( estado ) de uma b i c i c l e t a
protected i n t cadence = 0 ; / / unidade : rpm
protected i n t speed = 0 ;
/ / unidade : km / h
protected i n t gear = 1 ;

Classes
Herana
Referncias

/ / Mtodos ( comportamentos ) de uma b i c i c l e t a


public void changeCadence ( i n t newValue ) {
cadence = newValue ;
}
public void changeGear ( i n t newValue ) {
gear = newValue ;
}
public void speedUp ( i n t i n c r e m e n t ) {
speed = speed + i n c r e m e n t ;
}
public void applyBrakes ( i n t decrement ) {
speed = speed - decrement ;
}
public void p r i n t S t a t e ( ) {
System . o u t . p r i n t l n ( " cadence : " +
cadence + " speed : " +
speed + " gear : " + gear ) ;
}
}

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana
Referncias

Classes em Java
Ainda sem conhecer a sintaxe de Java, possvel

perceber que a classe Bicycle segue o mesmo


modelo descrito para bicicletas.
Os atributos cadence, speed e gear representam o

estado do objeto.
Os mtodos changeCadence(), changeGear(),

etc. definem o modo como o objeto


interage com o meio externo.
speedUp()

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana
Referncias

Classes em Java
A classe Bicycle consiste somente em uma receita

para a criao de objetos do tipo Bicicleta.


A classe BicycleDemo a seguir mostra a

instanciao de dois objetos da classe Bicycle e a


manipulao de atributos pela chamada de seus
mtodos.

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes

/ I n s t a n c i a n d o o b j e t o s da c l a s s e B i c i c l e t a /
class BicycleDemo {
public s t a t i c void main ( S t r i n g [ ] args ) {

Herana

/ / Criando d o i s o b j e t o s B i c i c l e t a
B i c y c l e b i k e 1 = new B i c y c l e ( ) ;
B i c y c l e b i k e 2 = new B i c y c l e ( ) ;

Referncias

/ / Chamando mtodos dos o b j e t o s i n s t a n c i a d o s


b i k e 1 . changeCadence ( 5 0 ) ;
b i k e 1 . speedUp ( 1 0 ) ;
b i k e 1 . changeGear ( 2 ) ;
bike1 . p r i n t S t a t e s ( ) ;
b i k e 2 . changeCadence ( 5 0 ) ;
b i k e 2 . speedUp ( 1 0 ) ;
b i k e 2 . changeGear ( 2 ) ;
b i k e 2 . changeCadence ( 4 0 ) ;
b i k e 2 . speedUp ( 1 0 ) ;
b i k e 2 . changeGear ( 3 ) ;
bike2 . p r i n t S t a t e s ( ) ;
}
}

MC322 2014
fusberti@ic.unicamp.br

Orientao a Objetos

Objetos
POO
Classes
Herana
Referncias

/ / Sada da execuo da c l a s s e BicycleDemo


cadence : 5 0 speed : 1 0 gear : 2
cadence : 4 0 speed : 2 0 gear : 3

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana
Referncias

O que herana entre objetos?


Objetos de tipos diferentes muitas vezes possuem

propriedades em comum.
Exemplos: mountain bikes, bicicletas eltricas e

bicicletas tandem.
Esses objetos tm em comum atributos como:

velocidade, cadncia e marcha atual.


No entanto, esses objetos tambm possuem

atributos que os especializam.

MC322 2014
fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana
Referncias

Orientao a Objetos
Exemplo de associao entre objetos

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana
Referncias

Herana
A programao orientada a objetos permite que as

classes herdem estados e comportamentos de


outras classes.
Exemplo: Bicicleta pode ser modelada como uma

superclasse das (sub)classes mountain bike,


bicicleta eltrica e bicicleta tandem.
Particularmente em Java, uma classe pode ter uma

nica superclasse (imediata) e cada superclasse


pode ter um nmero indefinido de subclasses.

MC322 2014
fusberti@ic.unicamp.br

Orientao a Objetos

Objetos
POO
Classes

Diagrama UML para a classe Bicicleta e suas


subclasses

Herana
Referncias

Software Umbrello para elaborao de diagramas UML (Unified Modelling Language):


http://umbrello.kde.org/

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes

Herana

Herana

O cdigo a seguir exemplifica a sintaxe de

Referncias

declarao de uma subclasse.


/ Exemplo de d e c la r a o da subclasse E l e c t r i c B i c y c l e
class E l e c t r i c B i c y c l e extends B i c y c l e {
p r i v a t e boolean m o to r S t a te ;
public void turnOnMotor ( ) {
m o to r S t a te = t r u e ;
}
public void t u r n O f f M o t o r ( ) {
m o to r S t a te = f a l s e ;
}
}

MC322 2014

Orientao a Objetos

fusberti@ic.unicamp.br

Objetos
POO
Classes

Herana

Herana
Referncias

A subclasse BicicletaEletrica possui os atributos

e mtodos da superclasse Bicicleta, mas o


cdigo centraliza exclusivamente na
implementao das caractersticas da subclasse.
Isso torna o cdigo da subclasse mais fcil de

entender.
A documentao do estado e comportamento da

superclasse deve ser cuidadosa pois os atributos e


mtodos da superclasse no aparecem no
cdigo-fonte das subclasses.

MC322 2014

Referncias

fusberti@ic.unicamp.br

Objetos
POO
Classes
Herana
Referncias

1 Java: Como Programar, Paul Deitel & Heivey Deitel; Pearson; 7a. Ed.
(no. chamada IMECC 05.133 D368j)
2 Data Structures and Algorithms with Object Oriented Design Patterns
in Java, Bruno Preiss;
(http://www.brpreiss.com/books/opus6/)
3 The Java Tutorials (Oracle)
(http://docs.oracle.com/javase/tutorial/)
4 Guia do Usurio UML, Grady Booch et. al.; Campus(1999)
5 Java Pocket Guide - Robert Liguori & Patricia Liguori; OReilley, 2008.

Você também pode gostar