Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Ramon Pontes Paradigma 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 G u ia m a rg e m : s to ry lin e / í n d ic e Programaçã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 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 G u ia m a rg e m : s to ry lin e / í n d ic e Programaçã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 C Dados Programação Orientada a Objetos 5 Aplicação Incluir Funcionário Incluir Projeto Incluir Departamento Programaçã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 G u ia m a rg e m : s to ry lin e / í n d ic e Programaçã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 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 Objetos 9 Conceitos Básicos – Abstração Programação Orientada a Objetos 10 Conceitos Básicos – Abstração Programação Orientada a Objetos 11 Conceitos Básicos – Abstração Carro Casa Cachorro Programaçã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 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 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 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 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 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 Objetos 18 Conceitos Básicos – Classe Exemplo: Programaçã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 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 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 Objetos 22 Conceitos Básicos – Relação Classe x Objetos Classe Objetos Programaçã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 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 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 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 espabelecer uma 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 Objetos 27 Conceitos Básicos – Herança Animal Réptil Crocodilo Mamífero Vaca Cachorro Anfíbio Sapo superclasse subclasse subclasse subclasse Programaçã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 Objetos 29 Conceitos Básicos – Herança Programaçã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 motordo 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 Objetos 31 Conceitos Básicos – Polimorfismo Programaçã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 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 G u ia m a rg e m : s to ry lin e / í n d ic e Programaçã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 Objetos 35
Compartilhar