Mc322 Aula1 Introducao Poo
description
Transcript of Mc322 Aula1 Introducao Poo
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Introduo ProgramaoOrientada a Objetos
prof. Fbio Luiz Usberti
MC322 - Programao Orientada a ObjetosInstituto de Computao - UNICAMP - 2014
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Sumrio
1 Objetos
2 POO
3 Classes
4 Herana
5 Referncias
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
O que so objetos?
Objetos do mundo real: lousa, apagador, mesa,professor, aluno, co, bicicleta, carro.
Duas caractersticas essenciais de objetos domundo real: estado e comportamento.
Identificar o estado e comportamento dos objetos a melhor maneira para comear a pensar emtermos de programao orientada a objetos.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Objetos do mundo real
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Objetos do mundo real
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Objetos do mundo real
Objetos diferentes possuem complexidadesdiferentes.
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
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Objetos de software
Objetos em software tambm possuem estados ecomportamentos.
Um objeto armazena seu estado em atributos(variveis) e assumem comportamentos atravs demtodos (funes).
Os mtodos de um objeto operam sobre seuestado interno e so os principais mecanismos daintercomunicao objeto-objeto.
A possibilidade de esconder o estado interno deum objeto e obrigar que todas as interaes comum objeto sejam realizadas por mtodos conhecido como encapsulamento.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Objetos de software
Fonte: http://docs.oracle.com/javase/tutorial/java/concepts/object.html
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
POO Programao Orientada a Objetos
Desenvolver um programa computacionalconstitudo por um conjunto de objetos
relacionados que interagem de forma a resolverum problema.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
POO Programao Orientada a Objetos
Etapas fundamentais do design orientado aobjetos de um software:
Analisar os requisitos que descrevem o sistemadesejado.
Determinar os objetos necessrios paraimplementar 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
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
POO Programao Orientada a Objetos
Benefcios da programao orientada a objetos: Abstrao Modularidade Encapsulamento Reuso de cdigo Alterao e depurao
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Abstrao
O conceito de abstrao ou modelagem significadecompor um sistema complicado em suas partesfundamentais, descrevendo-as em uma linguagemsimples e precisa.
Os componentes do sistema e suasfuncionalidades so identificadas e descritas.
Essa descrio passa a ser uma abstrao ou ummodelo do sistema, que pode ser implementadocomo um objeto em uma linguagem orientada aobjetos.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Modularidade
Sistemas modernos de software so constitudospor diversos componentes (objetos) distintos queinteragem entre si.
A modularidade prev que o cdigo-fonte de umobjeto pode ser escrito e mantido de modoindependente de outros objetos.
Essa independncia deve estar associada a umaestrutura de organizao dos diferentes objetos,para que eles possam interagir corretamente,fazendo com que todo sistema funcione de formaadequada.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Encapsulamento
A interao de um objeto com o meio externo realizada exclusivamente atravs de seusmtodos.
Os detalhes de implementao so mantidosescondidos do meio externo.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Reuso de cdigo
Frequentemente precisamos de objetos jimplementados em outras situaes e por outrosdesenvolvedores.
Esses objetos podem ser incorporados em umnovo programa.
Objetos complexos e de propsito especficopodem ser implementados e testadosexaustivamente antes de serem incorporados aoprograma computacional.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Alterao e depurao
Se um objeto tornar-se problemtico, possvelsimplesmente fazer a remoo e substituio poroutro objeto que esteja funcional.
se uma mquina possui uma engrenagemdefeituosa, no troque a mquina, mas somente aengrenagem.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
O que so classes?
No mundo real, possvel encontrar diversosexemplares de objetos de um mesmo tipo.
Existem muitas unidades de bicicleta de ummesmo tipo, dotadas dos mesmos componentes efeitas a partir de um mesmo desenho (modelo).
Em termos de orientao a objetos, dizemos queum objeto bibicleta uma instncia de uma classeque modela bicicletas.
Uma classe uma receita atravs da qual objetosso criados.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
O que so classes?
A modelagem de classes pode ser auxiliada pormeio de diagramas de classes da linguagem UML.
A UML uma linguagem de representao grficapara a modelagem de sistemas orientados aobjetos.
Essa linguagem rica em recursos e possuidiversos diagramas para a descrio estrutural,comportamental e de interaes.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Diagrama UML para a classe Bicicleta
Software Umbrello para elaborao de diagramas UML (Unified Modelling Language):
http://umbrello.kde.org/
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos/ Def in io de uma classe B i c i c l e t a /public class Bicyc le {
/ / A t r i b u t o s ( estado ) de uma b i c i c l e t aprotected i n t cadence = 0; / / unidade : rpmprotected i n t speed = 0; / / unidade : km/ hprotected i n t gear = 1 ;
/ / Mtodos ( comportamentos ) de uma b i c i c l e t apublic void changeCadence ( i n t newValue ) {
cadence = newValue ;}
public void changeGear ( i n t newValue ) {gear = newValue ;
}
public void speedUp ( i n t increment ) {speed = speed + increment ;
}
public void applyBrakes ( i n t decrement ) {speed = speed - decrement ;
}
public void p r i n t S t a t e ( ) {System . out . p r i n t l n ( " cadence : " +
cadence + " speed : " +speed + " gear : " + gear ) ;
}
}
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Classes em Java
Ainda sem conhecer a sintaxe de Java, possvelperceber que a classe Bicycle segue o mesmomodelo descrito para bicicletas.
Os atributos cadence, speed e gear representam oestado do objeto.
Os mtodos changeCadence(), changeGear(),speedUp() etc. definem o modo como o objetointerage com o meio externo.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Classes em Java
A classe Bicycle consiste somente em uma receitapara a criao de objetos do tipo Bicicleta.
A classe BicycleDemo a seguir mostra ainstanciao de dois objetos da classe Bicycle e amanipulao de atributos pela chamada de seusmtodos.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
/ Ins tanc iando ob je tos da classe 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 ) {
/ / Criando dois ob je tos B i c i c l e t aB icyc le bike1 = new Bicyc le ( ) ;B i cyc le bike2 = new Bicyc le ( ) ;
/ / Chamando mtodos dos ob je tos ins tanc iadosbike1 . changeCadence (50) ;b ike1 . speedUp (10) ;b ike1 . changeGear ( 2 ) ;b ike1 . p r i n t S t a t e s ( ) ;
b ike2 . changeCadence (50) ;b ike2 . speedUp (10) ;b ike2 . changeGear ( 2 ) ;b ike2 . changeCadence (40) ;b ike2 . speedUp (10) ;b ike2 . changeGear ( 3 ) ;b ike2 . p r i n t S t a t e s ( ) ;
}}
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
/ / Sada da execuo da classe BicycleDemocadence :50 speed :10 gear :2cadence :40 speed :20 gear :3
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
O que herana entre objetos?
Objetos de tipos diferentes muitas vezes possuempropriedades em comum.
Exemplos: mountain bikes, bicicletas eltricas ebicicletas tandem.
Esses objetos tm em comum atributos como:velocidade, cadncia e marcha atual.
No entanto, esses objetos tambm possuematributos que os especializam.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Exemplo de associao entre objetos
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Herana
A programao orientada a objetos permite que asclasses herdem estados e comportamentos deoutras classes.
Exemplo: Bicicleta pode ser modelada como umasuperclasse das (sub)classes mountain bike,bicicleta eltrica e bicicleta tandem.
Particularmente em Java, uma classe pode ter umanica superclasse (imediata) e cada superclassepode ter um nmero indefinido de subclasses.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Diagrama UML para a classe Bicicleta e suassubclasses
Software Umbrello para elaborao de diagramas UML (Unified Modelling Language):
http://umbrello.kde.org/
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Herana
O cdigo a seguir exemplifica a sintaxe dedeclarao de uma subclasse.
/ Exemplo de declarao 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 Bicyc le {
private boolean motorState ;
public void turnOnMotor ( ) {motorState = true ;
}
public void tu rnOf fMotor ( ) {motorState = fa lse ;
}}
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
Orientao a Objetos
Herana
A subclasse BicicletaEletrica possui os atributose mtodos da superclasse Bicicleta, mas ocdigo centraliza exclusivamente naimplementao das caractersticas da subclasse.
Isso torna o cdigo da subclasse mais fcil deentender.
A documentao do estado e comportamento dasuperclasse deve ser cuidadosa pois os atributos emtodos da superclasse no aparecem nocdigo-fonte das subclasses.
-
MC322 2014
Objetos
POO
Classes
Herana
Referncias
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 Patternsin 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.
ObjetosPOOClassesHeranaReferncias