A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Orientação a Objetos (Marcelo Bezerra de Alcantara) 1 Orientação a Objetos & UML Professor Marcelo Bezerra de Alcântara.

Apresentações semelhantes


Apresentação em tema: "Orientação a Objetos (Marcelo Bezerra de Alcantara) 1 Orientação a Objetos & UML Professor Marcelo Bezerra de Alcântara."— Transcrição da apresentação:

1 Orientação a Objetos (Marcelo Bezerra de Alcantara) 1 Orientação a Objetos & UML Professor Marcelo Bezerra de Alcântara

2 Orientação a Objetos (Marcelo Bezerra de Alcantara) 2 Agenda Parte I: Orientação a Objetos Módulo 1 - Introdução Módulo 2 - Classes x Objetos Módulo 3 - Relacionamentos Módulo 4 - Herança e Polimorfismo

3 Orientação a Objetos (Marcelo Bezerra de Alcantara) 3 Parte I: Orientação a Objetos Módulo 1 Introdução

4 Orientação a Objetos (Marcelo Bezerra de Alcantara) 4 Agenda Módulo 1 – Introdução Análise Estruturada Motivação Análise Estruturada x Orientação à Objetos Abstração Definição Características Parte I: OO / Módulo 1: Introdução

5 Orientação a Objetos (Marcelo Bezerra de Alcantara) 5 Análise estruturada Criada nos anos 60/70 Guerra Fria Grandes Projetos Ambientes de Grande Porte Pouca maturidade em Programação Parte I: OO / Módulo 1: Introdução

6 Orientação a Objetos (Marcelo Bezerra de Alcantara) 6 Análise estruturada O objetivo principal era fazer com que o pessoal de sistemas pensasse antes de agir; Tentativa de impor alguma ordem à natureza acidental da construção de programas; Produziu um modelo rigorosamente seqüencial; análise; O que ? projeto; Como implementação. Parte I: OO / Módulo 1: Introdução

7 Orientação a Objetos (Marcelo Bezerra de Alcantara) 7 Análise estruturada Tradicionalmente, a literatura tratava análise, projeto e implementação como atividades diferentes e, até certo ponto, desconexas pois tinham: diferentes métodos; diferentes notações e diferentes objetivos. Na necessidade de especificar o que está prestes a ser implementado tratavam a análise e o projeto como as únicas coisas que realmente interessam. A implementação seria apenas algo inevitável. Parte I: OO / Módulo 1: Introdução

8 Orientação a Objetos (Marcelo Bezerra de Alcantara) 8 Motivação - Orientação a objetos Crise do software e necessidade de mudar Surgiu a idéia da orientação a objetos que representa melhor o mundo real, uma vez que a percepção e o raciocínio do ser humano estão relacionados diretamente com o conceito de objetos. Objetivo principal da utilização do paradigma da Orientação a Objetos, na construção de software: Rápido não perder muito tempo no desenvolvimento Barato linhas de montagem e reutilização de código Flexível fácil modificar ou estender Parte I: OO / Módulo 1: Introdução

9 Orientação a Objetos (Marcelo Bezerra de Alcantara) 9 Estruturada x OO Com a orientação a objetos procura-se eliminar as diferenças entre as etapas de análise, projeto e implementação, reabilitando a difamada tarefa de implementação O segredo é fazer com que os conceitos de programação, e as notações para programação, sejam suficientemente de alto-nível para que possam servir apropriadamente como ferramentas de modelagem. Parte I: OO / Módulo 1: Introdução

10 Orientação a Objetos (Marcelo Bezerra de Alcantara) 10 Estruturada x OO Catálogo Bibliotecário LivroBiblioteca Sistema Registrar empréstimos Adicionar recursos Relatar multas A/P orientados a objetos Decompor por objetos ou conceitos A/P estruturados Decompor por funções ou processo Sistema de informação de bibliotecas Parte I: OO / Módulo 1: Introdução

11 Orientação a Objetos (Marcelo Bezerra de Alcantara) 11 Definição Uma nova maneira de pensar os problemas utilizando modelos organizados a partir de conceitos do mundo real. O componente fundamental é o objeto que combina estrutura e comportamento em uma única entidade. (Rumbaugh) Parte I: OO / Módulo 1: Introdução

12 Orientação a Objetos (Marcelo Bezerra de Alcantara) 12 Características Software desenvolvido como hardware Facilita o reuso Permite um nível mais elevado de abstração Linguagem padrão de representação: UML Parte I: OO / Módulo 1: Introdução

13 Orientação a Objetos (Marcelo Bezerra de Alcantara) 13 Motivação - Orientação a Objetos Conceitos Chaves Abstração Encapsulamento Polimorfismo Identidade Mecanismos Básicos Objetos Atributos Métodos ou Serviços Relacionamentos Herança Parte I: OO / Módulo 1: Introdução

14 Orientação a Objetos (Marcelo Bezerra de Alcantara) 14 Abstração Parte I: OO / Módulo 1: Introdução

15 Orientação a Objetos (Marcelo Bezerra de Alcantara) 15 Abstração Processo de identificar as qualidades ou propriedades importantes do fenômeno sendo modelado. (Carlo Gezzi/ Mehdi Jazayeri) Parte I: OO / Módulo 1: Introdução Uma abstração descreve as características essenciais de um objeto; aquelas que o distinguem de todos os outros tipos de objeto e fornece assim, para aquele que analisa um sistema, fronteiras conceituais bem definidas. (Booch)

16 Orientação a Objetos (Marcelo Bezerra de Alcantara) 16 Abstração Nesta fase tenta-se retirar elementos e requisitos que irão ajudar na resolução de um problema; É o processo de retirar do domínio do problema os detalhes relevantes e representá-los não mais em uma linguagem do domínio e sim na linguagem da solução. O sucesso de um Programa Orientado a Objeto está condicionado a uma boa abstração do problema. Parte I: OO / Módulo 1: Introdução

17 Orientação a Objetos (Marcelo Bezerra de Alcantara) 17 Abstração Parte I: OO / Módulo 1: Introdução No paradigma da Programação Estruturada identifica-se as funções como sendo "operações abstratas que resolvem um problema de programação", ou seja, ocorre a abstração de procedimentos. No paradigma da Orientação a Objetos, tem-se a Abstração de Dados, onde uma estrutura de dados deve incluir as operações que ocorrem com ela.

18 Orientação a Objetos (Marcelo Bezerra de Alcantara) 18 Encapsulamento Parte I: OO / Módulo 1: Introdução É a propriedade de se implementar dados e procedimentos correlacionados em uma mesma entidade (objeto). Trata-se de uma das principais vantagens da Programação Orientada a Objetos sobre a Programação Estruturada, principalmente na reutilização de códigos.

19 Orientação a Objetos (Marcelo Bezerra de Alcantara) 19 Encapsulamento Código... Código... Código... Dado Programação estruturada Código... Dado Código... Dado Código... Dado Orientação a Objetos Parte I: OO / Módulo 1: Introdução

20 Orientação a Objetos (Marcelo Bezerra de Alcantara) 20 Encapsulamento Parte I: OO / Módulo 1: Introdução Pode-se entender intuitivamente o significado de encapsulamento quando se observa o mundo real. Nos objetos do mundo real, atributos e ações são inerentes ao próprio objeto. Exemplo : A um automóvel estão associados tanto atributos (modelo, kilometragem, cilindradas, capacidade do tanque de combustível, etc), quanto suas potencialidades (velocidade média, consumo de combustível, etc).

21 Orientação a Objetos (Marcelo Bezerra de Alcantara) 21 Polimorfismo Parte I: OO / Módulo 1: Introdução O significado da palavra, originada do grego, é o de "possuir várias formas". Na A.O.O. é usado para indicar a propriedade de se utilizar o mesmo nome para métodos diferentes. Uma vantagem do polimorfismo é a relativa facilidade de manutenção e extensão dos programas. A idéia de polimorfismo está ligada com a indicação de que os atributos só devem ter seus valores alterados por métodos da sua classe.

22 Orientação a Objetos (Marcelo Bezerra de Alcantara) 22 Polimorfismo objGeral.getNI(); Parte I: OO / Módulo 1: Introdução

23 Orientação a Objetos (Marcelo Bezerra de Alcantara) 23 Polimorfismo objGeral.getNI(); Parte I: OO / Módulo 1: Introdução

24 Orientação a Objetos (Marcelo Bezerra de Alcantara) 24 Polimorfismo objGeral.getNI(); Parte I: OO / Módulo 1: Introdução

25 Orientação a Objetos (Marcelo Bezerra de Alcantara) 25 Identidade Característica peculiar de um objeto que denota a existência em separado do objeto, mesmo que ele tenha os mesmos valores de atributos de outro objeto Uma identificação única de cada objeto Nome: Ricardo Série: 2ª Turma: A Nome: Ricardo Série: 2ª Turma: A Parte I: OO / Módulo 1: Introdução

26 Orientação a Objetos (Marcelo Bezerra de Alcantara) 26 Parte I: Orientação a Objetos Módulo 2 Classes x Objetos

27 Orientação a Objetos (Marcelo Bezerra de Alcantara) 27 Agenda Módulo 2 – Classes x Objetos Objetos Classes Classes x Objetos Mensagens Atributos Operações Encapsulamento Parte I: OO / Módulo 2: Classes x Objetos

28 Orientação a Objetos (Marcelo Bezerra de Alcantara) 28 Classes e Objetos Objeto: Conjunto de dados e procedimentos relacionados utilizados para modelar coisas ou conceitos Classe: Arcabouço que serve de molde para a criação de objetos. Define os dados e procedimentos comuns a todos objetos da classe Parte I: OO / Módulo 2: Classes x Objetos

29 Orientação a Objetos (Marcelo Bezerra de Alcantara) 29 Objetos Nosso mundo é um mundo de objetos, para se convencer disso basta tropeçar neles (Castanheda) Parte I: OO / Módulo 2: Classes x Objetos

30 Orientação a Objetos (Marcelo Bezerra de Alcantara) 30 Tem atributos, estado, comportamento e identidade Objetos... Parte I: OO / Módulo 2: Classes x Objetos

31 Orientação a Objetos (Marcelo Bezerra de Alcantara) 31 Objetos... Os atributos de um objeto definem as qualidades e características da entidade que ele representa O estado de um objeto é o particular conjunto de valores de seus atributos em um dado momento O comportamento de um objeto é definido pelas alterações do seu estado em resposta a mensagens que ele recebe (interação com outros objetos) Parte I: OO / Módulo 2: Classes x Objetos

32 Orientação a Objetos (Marcelo Bezerra de Alcantara) 32 Objetos... Ex: –uma árvore pode ser grande ou pequena, nova ou velha, frutífera ou não, etc. –produz clorofila, gás carbônico, sombra, faz fotosíntese –pode estar doente ou não, com ou sem folhas Parte I: OO / Módulo 2: Classes x Objetos

33 Orientação a Objetos (Marcelo Bezerra de Alcantara) 33 Classes Classes definem elementos de mesma natureza Modelam características comuns a estes Ex: árvores classe árvore objeto árvore Parte I: OO / Módulo 2: Classes x Objetos

34 Orientação a Objetos (Marcelo Bezerra de Alcantara) 34 Classes x Objetos Parte I: OO / Módulo 2: Classes x Objetos Nome: Mafalda Série: 1ª Turma: B Nome: Ricardo Série: 2ª Turma: A Nome: André Série: 1ª Turma: B Nome: Ricardo Série: 2ª Turma: A Classe Objeto

35 Orientação a Objetos (Marcelo Bezerra de Alcantara) 35 Classes x Objetos public class Aluno { private String nome; private String serie; private String turma; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; }... } Parte I: OO / Módulo 2: Classes x Objetos public void teste() { Aluno mafalda = new Aluno(); Aluno ricardo1 = new Aluno(); Aluno ricardo2 = new Aluno(); mafalda.setNome("Mafalda"); mafalda.setSerie("1ª"); mafalda.setTurma("B"); ricardo1.setNome("Ricardo"); ricardo1.setSerie("2ª"); ricardo1.setTurma("A"); ricardo2.setNome("Ricardo"); ricardo2.setSerie("2ª"); ricardo2.setTurma("A");... } Classe Objetos

36 Orientação a Objetos (Marcelo Bezerra de Alcantara) 36 Instâncias Objetos são instâncias de classes Os atributos e métodos de uma classe tornam-se disponíveis em cada objeto instanciado Classe Funcionário Nome Cargo Objetos Nome1 Cargo1 Nome2 Cargo2 Nome3 Cargo3 Parte I: OO / Módulo 2: Classes x Objetos

37 Orientação a Objetos (Marcelo Bezerra de Alcantara) 37 Instâncias... Uma classe declara os elementos que compõe um objeto A declaração não aloca memória: a classe é usada apenas para modelar as características de um conjunto de objetos A instanciação de um objeto de uma classe provoca a alocação de memória para conter os seus atributos Parte I: OO / Módulo 2: Classes x Objetos

38 Orientação a Objetos (Marcelo Bezerra de Alcantara) 38 Atributos Representam os dados do objeto Parte I: OO / Módulo 2: Classes x Objetos Visibilidade Pública Todos os objetos têm acesso Faz parte da interface da classe Protegida Acessado por operações da classe e de suas filhas Privada Só acessado de dentro da própria classe

39 Orientação a Objetos (Marcelo Bezerra de Alcantara) 39 Variáveis de Instância Os atributos dos objetos são definidos por variáveis. As variáveis de instância definem atributos que podem receber diferentes valores em objetos distintos. Cada objeto tem sua própria variável de instância Parte I: OO / Módulo 2: Classes x Objetos

40 Orientação a Objetos (Marcelo Bezerra de Alcantara) 40 Variáveis de Instância Ex: –na classe funcionário, cada objeto instanciado modela uma pessoa que tem seu próprio nome –nome é, portanto, uma variável de instância João Cargo1 Carlos Cargo2 Silvia Cargo3 Parte I: OO / Módulo 2: Classes x Objetos

41 Orientação a Objetos (Marcelo Bezerra de Alcantara) 41 Variáveis de Classe Atributos comuns a todos os elementos da classe são armazenados em variáveis de classe Uma variável de classe armazena informações sobre a classe inteira, não apenas sobre um determinado objeto Ex: –na classe funcionário, o número de funcionários de uma empresa seria uma variável de classe, pois não se refere a nenhum funcionário em particular Parte I: OO / Módulo 2: Classes x Objetos

42 Orientação a Objetos (Marcelo Bezerra de Alcantara) 42 Classes x Instâncias Ex: uma empresa com 3 funcionários : Variável de Classe Nome Cargo Variáveis de Instância João Cargo1 Carlos Cargo2 Silvia Cargo3 Total: 3 Parte I: OO / Módulo 2: Classes x Objetos

43 Orientação a Objetos (Marcelo Bezerra de Alcantara) 43 Classes x Instâncias Ex: membros de uma família Sobrenome: Silva Idade Aldo 23 Sexo Masc Bea 10 Fem Ido 88 Masc Aldo SilvaBea SilvaIdo Silva Variável de Classe: nome de família Variável de Classe: nome de família Nome Parte I: OO / Módulo 2: Classes x Objetos

44 Orientação a Objetos (Marcelo Bezerra de Alcantara) 44 Métodos O comportamento de um objeto é definido a partir de procedimentos que alteram seu estado Em OO estes procedimentos são chamados de métodos Métodos são equivalentes a funções em C ou C++, com a diferença que são definidos no escopo de uma classe Parte I: OO / Módulo 2: Classes x Objetos

45 Orientação a Objetos (Marcelo Bezerra de Alcantara) 45 Métodos... Objetos comunicam-se entre si através de métodos Através dos métodos é possível: –consultar os valores de atributos (variáveis) de um objeto –alterar o valor de atributos do objeto –solicitar um serviço ao objeto –fornecer informações ao objeto Parte I: OO / Módulo 2: Classes x Objetos

46 Orientação a Objetos (Marcelo Bezerra de Alcantara) 46 Métodos... Ex: –comportamento de um funcionário : informa seu nome informa seu cargo toma cafezinho executa um trabalho dorme reclama etc. Parte I: OO / Módulo 2: Classes x Objetos

47 Orientação a Objetos (Marcelo Bezerra de Alcantara) 47 Métodos Tipos Construtora Operação que cria e/ou inicializa um objeto Primeira operação executada Executada no momento em que o objeto é instanciado Seletora Pode ler, mas não alterar o estado do objeto Modificadora Pode alterar o estado do objeto Destrutora Operação que finaliza um objeto Última operação executada Executada no momento em que o objeto é destruído Parte I: OO / Módulo 2: Classes x Objetos

48 Orientação a Objetos (Marcelo Bezerra de Alcantara) 48 Métodos Visibilidade Pública Protegida Privada Parâmetros Recebidos através da mensagem Exemplo: parâmetros Altura e Largura na operação CalcularAreaRetangulo Tipo de Retorno Tipo do valor retornado opcionalmente para o objeto invocador Exemplo: tipo de retorno float da operação CalcularAreaRetangulo Parte I: OO / Módulo 2: Classes x Objetos

49 Orientação a Objetos (Marcelo Bezerra de Alcantara) 49 Parte I: Orientação a Objetos Módulo 3 Relacionamentos

50 Orientação a Objetos (Marcelo Bezerra de Alcantara) 50 Agenda Módulo 3 – Relacionamentos Associação Agregação Composição Dependência Parte I: OO / Módulo 3: Relacionamentos

51 Orientação a Objetos (Marcelo Bezerra de Alcantara) 51 Associação Relacionamento entre objetos de classes independentes Dependência estrutural Associação Unária Parte I: OO / Módulo 3: Relacionamentos

52 Orientação a Objetos (Marcelo Bezerra de Alcantara) 52 Associação Associação Binária Associação Ternária Parte I: OO / Módulo 3: Relacionamentos

53 Orientação a Objetos (Marcelo Bezerra de Alcantara) 53 Associação Classe de Associação Existência de atributos ou operações próprios da associação Parte I: OO / Módulo 3: Relacionamentos

54 Orientação a Objetos (Marcelo Bezerra de Alcantara) 54 Agregação Caso particular da Associação Relacionamento do tipo todo-parte Agregação por referência Um atributo na classe todo é uma referência para um objeto da classe parte Parte I: OO / Módulo 3: Relacionamentos

55 Orientação a Objetos (Marcelo Bezerra de Alcantara) 55 Composição Caso particular da Agregação Não faz sentido a existência do objeto parte sem a existência do objeto todo Agregação por valor O objeto parte é um atributo contido no objeto todo Parte I: OO / Módulo 3: Relacionamentos

56 Orientação a Objetos (Marcelo Bezerra de Alcantara) 56 Dependência Dependência comportamental Uma classe depende de algum serviço oferecido pela outra Uma alteração na classe independente pode afetar a classe dependente Parte I: OO / Módulo 3: Relacionamentos

57 Orientação a Objetos (Marcelo Bezerra de Alcantara) 57 Parte I: Orientação a Objetos Módulo 4 Herança e Polimorfismo

58 Orientação a Objetos (Marcelo Bezerra de Alcantara) 58 Agenda Módulo 4 – Herança e Polimorfismo Herança Classes Abstratas Redefinição Polimorfismo Parte I: OO / Módulo 4: Herança e Polimorfismo

59 Orientação a Objetos (Marcelo Bezerra de Alcantara) 59 Herança de Classes Classes podem ser organizadas na forma de uma árvore genealógica Assim como seres vivos herdam características de seus projenitores, classes herdam o comportamento e atributos de outras classes A classe filho é chamada de subclasse e a classe pai de superclasse Parte I: OO / Módulo 4: Herança e Polimorfismo

60 Orientação a Objetos (Marcelo Bezerra de Alcantara) 60 Herança... A herança permite estruturar o programa, fatorando características comuns As subclasses podem ser especializadas de forma a incorporar outros atributos e comportamentos (diferentes da superclasse) Uma subclasse contém todas as características de uma superclasse, mas o inverso não é verdadeiro –todos os homes são animais, nem todos os animais são homens Parte I: OO / Módulo 4: Herança e Polimorfismo

61 Orientação a Objetos (Marcelo Bezerra de Alcantara) 61 Herança As subclasses herdam atributos, operações e relacionamentos da superclasse É possível redefinir o que foi herdado Parte I: OO / Módulo 4: Herança e Polimorfismo Superclasse Subclasse

62 Orientação a Objetos (Marcelo Bezerra de Alcantara) 62 Classes Abstratas Não podem ser instanciadas Servem para modelar os atributos, operações e relacionamentos comuns de uma hierarquia de classes Os objetos da hierarquia são instanciados a partir das subclasses Parte I: OO / Módulo 4: Herança e Polimorfismo

63 Orientação a Objetos (Marcelo Bezerra de Alcantara) 63 Redefinição Redefinição de métodos da classe pai Parte I: OO / Módulo 4: Herança e Polimorfismo

64 Orientação a Objetos (Marcelo Bezerra de Alcantara) 64 Herança... Classe Objeto mensagem método resolução de chamada de método Parte I: OO / Módulo 4: Herança e Polimorfismo

65 Orientação a Objetos (Marcelo Bezerra de Alcantara) 65 Herança... Classe Objeto mensagem método Mascarando métodos método este método responde Parte I: OO / Módulo 4: Herança e Polimorfismo

66 Orientação a Objetos (Marcelo Bezerra de Alcantara) 66 Polimorfismo Muitas formas Mesma operação se comporta de forma diferente dependendo do tipo do objeto Ligação tardia (late binding) Parte I: OO / Módulo 4: Herança e Polimorfismo Figura Circulo Triangulo Retangulo Colorido desenhar()

67 Orientação a Objetos (Marcelo Bezerra de Alcantara) 67 Exercício Exercícios Parte I: OO / Módulo 4: Herança e Polimorfismo

68 Orientação a Objetos (Marcelo Bezerra de Alcantara) 68 Exercício Parte I: OO / Módulo 4: Herança e Polimorfismo Qual a diferença entre Análise Estruturada e Análise Orientada a Objetos; Cite exemplos de operações polimórficas; O que é encapsulamento? Qual a relação entre Objetos e Classe? Quais os tipos de visibilidade existentes para atributos e métodos? Qual a diferença entre atributo de instância e atributo de classe? Cite um exemplo de associações de agregação e composição; O que são classes abstratas? Cite um exemplo do uso de herança;


Carregar ppt "Orientação a Objetos (Marcelo Bezerra de Alcantara) 1 Orientação a Objetos & UML Professor Marcelo Bezerra de Alcântara."

Apresentações semelhantes


Anúncios Google