Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Ramon Pontes Paradigma Orientado a ObjetosParadigma Orientado a Objetos 1 Paradigma Orientado a Objetos Paradigma Tradicional x Orientado a Objetos Conceitos Básicos Abstração Encapsulamento Classes Objetos Relação Classe x Objetos Atributos Métodos Herança Polimorfismo Modularidade Referências Programação Orientada a ObjetosProgramação Orientada a Objetos 2 A ideia é: - Solucionar problemas existentes no desenvolvimento de Softwares Complexos com baixo custo de desenvolvimento e manutenção - O Mundo Real é formado por objetos que se interagem Programação Orientada a ObjetosProgramação Orientada a Objetos 3 Paradigma Orientado a Objetos Paradigma Tradicional x Orientado a Objetos Conceitos Básicos Abstração Encapsulamento Classes Objetos Relação Classe x Objetos Atributos Métodos Herança Polimorfismo Modularidade Referências Programação Orientada a ObjetosProgramação Orientada a Objetos 4 Paradigma Tradicional x Orientado a Objetos Procedure A Procedure B Procedure C Dados Dados Métodos Dados Métodos Dados Métodos Objeto A Objeto B Objeto CDados Programação Orientada a ObjetosProgramação Orientada a Objetos 5 Programação Orientada a ObjetosProgramação Orientada a Objetos Paradigma Tradicional x Orientado a Objetos 6 Paradigma Orientado a Objetos Paradigma Tradicional x Orientado a Objetos Conceitos Básicos Abstração Encapsulamento Classes Objetos Relação Classe x Objetos Atributos Métodos Herança Polimorfismo Modularidade Referências Programação Orientada a ObjetosProgramação Orientada a Objetos 7 É o processo de identificação dos objetos e seus relacionamentos Permite ao analista se concentrar no que um objeto é ou no que um objeto faz. Não se preocupa como o objeto vai fazer É um processo de generalização onde o objetivo é manter informações relevantes Conceitos Básicos – Abstração Programação Orientada a ObjetosProgramação Orientada a Objetos 8 Conceitos Básicos – Abstração public class Cachorro{ String nome; String raca; } public class Carro{ String marca; String placa; } public class Casa{ int qtComodos; double valor; String endereco; } Programação Orientada a ObjetosProgramação Orientada a Objetos 9 Conceitos Básicos – Abstração Programação Orientada a ObjetosProgramação Orientada a Objetos 10 Conceitos Básicos – Abstração Programação Orientada a ObjetosProgramação Orientada a Objetos 11 Conceitos Básicos – Abstração Carro Casa Cachorro Programação Orientada a ObjetosProgramação Orientada a Objetos 12 Conceitos Básicos – Encapsulamento A maioria dos objetos que utilizamos são encapsulados. - Exemplo: Sua máquina fotográfica. - Ela tem um conjunto de teclas que lhe permite manipular os atributos do objeto máquina fotográfica que são do seu interesse. • Ligar • Desligar • Zoom • Brilho/Contraste • Flash • Resolução Programação Orientada a ObjetosProgramação Orientada a Objetos 13 Conceitos Básicos – Encapsulamento Porém… - Você sabe que o funcionamento de uma máquina digital é extremamente complexa e que ao mudar um atributo desses que citamos, uma série de informações são processadas. • Circuitos Integrados • Capacitores • Resistores Programação Orientada a ObjetosProgramação Orientada a Objetos 14 Conceitos Básicos – Encapsulamento Como definir encapsulamento diante desse exemplo??? O encapsulamento separa o que é visível, ou seja, o que é público do que é oculto, ou seja, privado/protegido - Outro exemplo: No seu computador o que importa é: • Monitor • Teclado • DVD • WebCam • Mouse • Gabinete Programação Orientada a ObjetosProgramação Orientada a Objetos 15 Conceitos Básicos – Encapsulamento Para análise orientada a objetos, encapsulamento é o ato de esconder do usuário informações que não são do seu interesse Geralmente não interessa a quem usa o objeto conhecer os detalhes da implementação. A classe comporta-se como uma caixa-preta - Não é necessário conhecer como funciona internamente. Programação Orientada a ObjetosProgramação Orientada a Objetos 16 Conceitos Básicos – Encapsulamento Vantagem - Na necessidade de se modificar um programa existente - Pressman (2002): Reduz a propagação de efeitos colaterais quando ocorrem modificações - Parga (2006): como consequência do encapsulamento temos uma diminuição considerável do nível de acoplamento entre as classes que fazem parte do sistema Programação Orientada a ObjetosProgramação Orientada a Objetos 17 Conceitos Básicos – Classe Descreve um grupo de objetos com os mesmos atributos e comportamentos, além dos mesmos relacionamentos com outros objetos. - Animais: Aves, Mamíferos, Répteis… - Relógio: Digital, Analógicos Descreve a forma do objeto É um molde para criação de um objeto. É a receita… Tipo definido pelo usuário Programação Orientada a ObjetosProgramação Orientada a Objetos 18 Conceitos Básicos – Classe Exemplo: Programação Orientada a ObjetosProgramação Orientada a Objetos 19 Conceitos Básicos – Objetos Cada objeto pertence a uma classe que define suas características e seu comportamento - Classe: Molde - Objeto: Concretização Programação Orientada a ObjetosProgramação Orientada a Objetos 20 Conceitos Básicos – Objetos Os objetos podem estar relacionados entre si ou com outros objetos Exemplo: - Um carro pertençe a uma pessoa Programação Orientada a ObjetosProgramação Orientada a Objetos 21 Conceitos Básicos – Relação Classe x Objetos Todo objeto é a concretização de uma classe. Ou seja, é uma instância de uma classe Cada instância tem valores específicos para seus atributos diferenciando-as. Exemplo: Programação Orientada a ObjetosProgramação Orientada a Objetos 22 Conceitos Básicos – Relação Classe x Objetos Classe Objetos Programação Orientada a ObjetosProgramação Orientada a Objetos 23 Conceitos Básicos – Atributos Os atributos são utilizados para diferenciar os objetos e para identificar o estado do objeto Os atributos definem: - Propriedades e características de um objeto - Estado do Objeto Exemplo: - Um carro tem uma marca e uma placa Programação Orientada a ObjetosProgramação Orientada a Objetos 24 Conceitos Básicos – Métodos Os métodos estão relacionados com o comportamento dos objetos. Exemplo: - Todo carro pode ligar - Todo carro pode andar - Todo carro pode freiar Programação Orientada a ObjetosProgramação Orientada a Objetos 25 Conceitos Básicos – Métodos Na análise orientada a objeto, as funções, operações e os comportamentos dos objetos são descritos pelos métodos, os quais também servem para manipular e alterar os atributos do objeto (alteram o estado do objeto) Também é correto afirmar que um método é uma operação realizada sobre um objeto e é descrito por uma classe. Um método é a implementação de uma operação. Elementos: - Nome - Retorno - Parâmetros Programação Orientada a ObjetosProgramação Orientada a Objetos 26 Conceitos Básicos – Herança É um mecanismo que permite definir uma nova classe (subclasse) a partir de uma classe já existente. A herança poderá ser utilizada sempre que dois “tipos” passarem no teste “é um” Possibilita reuso e extensibilidade Comportamento: - Ao espabeleceruma herança, a subclasse “herda” as características comuns de sua superclasse - A classe filha (subclasse) também poderá definir novos métodos e atributos Programação Orientada a ObjetosProgramação Orientada a Objetos 27 Conceitos Básicos – Herança superclasse subclasse subclasse subclasse Programação Orientada a ObjetosProgramação Orientada a Objetos 28 Conceitos Básicos – Tipos de Herança Herança Simples - Quando uma classe herda as propriedades de uma única classe pai - A classe filha (subclasse) também poderá definir novos métodos e atributos Herança Múltipla - Quando uma classe herda as propriedades de mais de uma única classe pai. - Ex: muitas vezes dizemos que um menino herdou o jeito engraçado do tio e é estudioso como o pai, ou seja, o menino herdou características comportamentais de mais de uma pessoa. Obs: Herança múltipla é utilizada em C++. Não é possível utlizar em Java Programação Orientada a ObjetosProgramação Orientada a Objetos 29 Conceitos Básicos – Herança Programação Orientada a ObjetosProgramação Orientada a Objetos 30 Conceitos Básicos – Polimorfismo A palavra polimorfismo significa muitas formas e representa o fato de uma determinada característica (por exemplo, a potência do motor do veículo) ser diferente para cada filho (tipo de veículo). Quem já andou de Volks e de Mercedes sabe bem a diferença. Para a AOO, polimorfismo é a capacidade de objetos de classes diferentes responderem a uma mesma solicitação de maneiras diferentes. Programação Orientada a ObjetosProgramação Orientada a Objetos 31 Conceitos Básicos – Polimorfismo Programação Orientada a ObjetosProgramação Orientada a Objetos 32 Conceitos Básicos – Modularidade É a decomposição de um problema complexo em problemas menores e mais simples É a idéia de “dividir para conquistar” Para Booch (1994), modularidade “é a propriedade de um sistema ser decomposto em um conjunto de módulos” Programação Orientada a ObjetosProgramação Orientada a Objetos 33 Paradigma Orientado a Objetos Paradigma Tradicional x Orientado a Objetos Conceitos Básicos Abstração Encapsulamento Classes Objetos Relação Classe x Objetos Atributos Métodos Herança Polimorfismo Modularidade Referências Programação Orientada a ObjetosProgramação Orientada a Objetos 34 Sommerville, I. Software Engineering. Kruchten, P. The Rational Unified Process: An Introduction. 2nd Ed Booch, G. et al. The Unified Modeling Language User Guide. Pressman, R. S. (2002). Engenharia de Software. MCGraw Hill, Rio de Janeiro, 5 edition. Referências Programação Orientada a ObjetosProgramação Orientada a Objetos 35 Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35
Compartilhar