Baixe o app para aproveitar ainda mais
Prévia do material em texto
CONCEITOS EM ORIENTAÇÃO À OBJETOS 1 UNIVERSIDADE FEDERAL DO PIAUÍ - UFPI CAMPUS SENADOR HELVÍDIO NUNES DE BARROS - CSHNB CURSO DE SISTEMAS DE INFORMAÇÃO PICOS - PI Prof. Ma. Luana Batista da Cruz luana.b.cruz@nca.ufma.br Setembro - 2021 Relembrando.. 2 ◻ Análise e projeto de sistemas ◻ Análise e projeto orientado a objetos ◻ Métodos de análise Roteiro 3 ◻ Orientação a objetos Base 4 ❏ Na compreensão do mundo, os seres humanos utilizam-se de três métodos de organização dos pensamentos: - Diferenciação - Distinção entre todo e parte - Classificação ❏ A orientação a objetos, como técnica para modelagem de sistemas, utiliza estes métodos para diminuir a diferença semântica entre a realidade e o modelo Orientação a objetos 5 ❏ A orientação à objeto se baseia em alguns conceitos básicos: - Objeto - Classe - Herança - Encapsulamento - Polimorfismo Orientação a objetos 6 ❏ Objetos - É uma entidade real ou abstrata, que modela um conceito presente na realidade humana - Um objeto é uma pessoa, um lugar, é a base para todos os outros conceitos da orientação a objetos Orientação a objetos 7 ❏ Objetos ❏ Um objeto denota uma entidade, seja ela de natureza física ou conceitual - Entidades física Orientação a objetos 8 ❏ Objetos ❏ Um objeto denota uma entidade, seja ela de natureza física ou conceitual - Entidades física - Entidade conceitual Orientação a objetos 9 ❏ Objetos Orientação a objetos 10 ❏ Classificando os objetos... Objetos 11 ❏ É uma entidade capaz de reter um estado (atributos) e que oferece uma série de operações (métodos) ou para examinar ou para afetar este estado ❏ Um objeto é um conceito, uma abstração, algo com limites e significados nítidos em relação ao domínio de uma aplicação ❏ Objeto: estado + comportamento + identidade Objetos 12 ❏ Estado ❏ O estado de um objeto representa uma das possíveis condições em que um objeto pode existir ❏ O estado é representado pelos valores das propriedades de um objeto em um determinado instante ❏ Cada objeto contém um estado interno que é próprio dele mesmo e um comportamento visível pelos outros objetos ❏ O estado do objeto usualmente muda ao longo do tempo Objetos Exemplo 13 ❏ Estado ❏ Um objeto lâmpada pode ter basicamente dois estados - acesa e apagada, que só podem ser alterados através das ações: acender ou apagar ❏ Tais ações fariam com que o valor do atributo de nome aceso variasse entre verdadeiro, quando a lâmpada estivesse acesa e falso, quando estivesse apagada Objetos 14 ❏ Comportamento ❏ O comportamento determina como um um objeto pode responder as interações mediante à ativação de operações decorrentes de mensagens recebidas de outros objetos ❏ É definido pelo conjunto de seus métodos, ou seja, pelo conjunto das ações que este objeto pode executar e pela forma que ele responde às chamadas de outros objetos ❏ O comportamento é determinado pelo conjunto de operações que o objeto pode realizar Objetos 15 ❏ Comportamento ❏ Em resumo, o comportamento é dado pelo conjunto de métodos definidos para o objeto ❏ Estes métodos normalmente obtém ou alteram o estado do objeto Objetos 16 ❏ Comportamento ❏ Exemplo: Um objeto pessoa possui alguns comportamentos padrões como comer, beber, andar, etc - Se você enviar uma mensagem para um objeto pessoa do tipo comer, ele saberá como responder e executar a ação. Mas se você mandar uma mensagem do tipo voar, esse objeto não irá responder, pois voar não faz parte de seu comportamento Objetos 17 ❏ Identidade ❏ A identidade é um conceito, não se representa de uma maneira específica ❏ Unicidade do objeto pelo simples fato de ele existir ❏ A identidade permite distinguir todo objeto de forma não ambígua, e isto independe de seu estado ❏ Um objeto sempre será único mesmo que exista um outro objeto com os valores dos atributos iguais ❏ Cada objeto possui uma identidade atribuída de maneira implícita no momento da criação do objeto e nunca é modificada Classe 18 ❏ Define o aspecto genérico de um objeto. Todo objeto pertence a uma classe ❏ A classe é a ideia a partir do qual o objeto se concretiza ❏ As generalidades são contidas na classe e as particularidades são contidas nos objeto ❏ Uma classe também pode especializar e agregar outras classes para formalizar uma ideia Classe 19 ❏ Uma classe determina um conjunto de objetos com: - Propriedades semelhantes - Comportamentos semelhantes - Relacionamentos comuns com outros objetos ❏ Em uma classe encontramos duas divisões: - Estrutura: as informações inerentes à classe - Comportamento: as operações realizadas pela classe Classe 20 ❏ Uma classe é formada: - Por um nome - Por atributos - Por métodos Classe 21 ❏ Atributos ❏ São informações de dados que pertencem a um determinado objeto ❏ Não possuem comportamento, pois eles não são objetos ❏ Todos os objetos de uma classe são caracterizados pelos mesmos atributos ou variáveis de instâncias ❏ O mesmo atributo pode ter valores diferentes de objeto para objeto Classe 22 ❏ Atributos ❏ Atributos são definidos ao nível da classe, enquanto que os valores dos atributos são definidos ao nível do objeto ❏ Exemplos: - Uma pessoa (classe) tem os atributos nome, data de nascimento e peso - João é uma pessoa (objeto da classe pessoa) com nome "João da Silva", data de nascimento "18/03/1973" e peso "70Kg" Classe Atributos 23 ❏ Exemplo Classe 24 ❏ Método ❏ Um método é uma implementação de uma operação ❏ A classe implementa o comportamento desejado para o objeto através de métodos ❏ Objetos da mesma classe têm os mesmos métodos ❏ Métodos são definidos ao nível de classe, enquanto que a invocação de uma operação é definida ao nível de objeto Classe 25 ❏ Método e mensagem ❏ Para invocar um método, deve-se enviar uma mensagem para o objeto desejado ❏ As mensagens identificam os métodos a serem executados no objeto receptor ❏ Para identificar uma mensagem, deve-se: - Identificar o objeto que receberá a mensagem - Identificar o método que o objeto deverá executar - Passar os argumentos requeridos pelo método Classe Método e mensagem 26 ❏ Exemplo Classe 27 ❏ Métodos construtores ❏ É um método utilizado para inicializar objetos da classe quando estes são criados ❏ Este método possui o mesmo nome da classe e não tem nenhum tipo de retorno, nem mesmo void ❏ Normalmente é utilizado para inicializar o estado inicial do objeto Classe 28 Classe Exemplo 29 ❏ Nome da classe: Professor - Atributos: Nome, Matrícula, Data de Contratação, Titulação - Métodos: DefineNome(), AlteraNome(), TempoServiço(), DefineTitulação(), AlteraTitulação(), ... ❏ Objeto: (Professor) Geraldo - Nome: Geraldo - Matricula: 8967.2 - Data de Contratação: 20/09/2008 - Titulação: Doutor Classe 30 ❏ Uma fábrica de objetos Visibilidade 31 ❏ Atributos e Métodos Públicos (+) - Qualquer classe pode ter acesso ❏ Atributos e Métodos Privados (-) - Apenas os métodos da própria classe pode manipular o atributo ❏ Atributos e Métodos Protegidos (#) - Pode ser acessado apenas pela própria classe ou pelas suas subclasses Instância 32 ❏ O processo de criação de um objeto a partir de uma classe é chamado de instanciação ❏ Quando instanciamos uma classe, estamos particularizando, identificando um objeto ❏ Uma instância tem estado, comportamento e identidade Instância 33 ❏ A classe é apenas uma ideia, a instância é um objeto real e operante ❏ Um sistema de orientação à objetos em execução é composto de inúmeras instâncias de objetos ❏ Instâncias devem ser criadas a partir da classe que a define através de um método chamado construtor Instância Exemplo 34 Abstração 35 ❏ Abstração é o processo através do qual detalhes são ignorados, para nos concentrarmos nas características essenciais ❏ A abstração nos leva a representar os objetos de acordo com o ponto de vista e interesse de quem os representa Abstração Exemplo 36 ❏ Para descrevermosum automóvel (do ponto de vista de um observador externo), identificamos a cor do mesmo, o número de portas, o tipo das rodas e pneus ❏ Quando identificamos o automóvel apenas a partir destas características externas estamos fazendo uma abstração pois uma série de detalhes internos não estarão sendo descritos Abstração Exemplo 37 ❏ Ao modelarmos um objeto avião no contexto de um sistema de marcação de passagens aéreas, não vai nos interessar a característica número de turbinas do avião, mas irá nos interessar a característica número de assentos disponíveis ❏ Ao ignorarmos algumas características não relevantes em um determinado contexto, estamos fazendo uma abstração Herança e Hierarquia 38 ❏ Quando vamos trabalhar com um grande conjunto de classes de objetos, é necessário organizar estas classes de maneira ordenada de modo que tenhamos uma hierarquia ❏ Em uma hierarquia de classes teremos as classes mais genéricas no topo, e as mais específicas na base Herança e Hierarquia 39 ❏ Em uma hierarquia de classes semelhantes podemos dizer que as classes mais específicas herdam as características das mais genéricas ❏ A classe de nível superior na associação de herança é chamada de superclasse e a inferior de subclasse - Superclasse – classe existente a partir da qual as novas classes são derivadas, também chamada de “classe mãe” - Subclasse – também chamada de “classe filha”, herda os métodos e os atributos da sua “classe mãe” Herança Superclasse e subclasse 40 Herança Superclasse e subclasse 41 Encapsulamento 42 ❏ É o processo de ocultação das características internas do objeto ❏ O encapsulamento cuida para que certas características não possam ser vistas ou modificadas externamente Encapsulamento Exemplo 43 ❏ Podemos dizer que o motor de um automóvel está encapsulado, pois normalmente não podemos ver ou alterar características do motor ❏ Podemos então utilizar um automóvel sem conhecer nada das complexidades do motor, que estão encapsuladas Encapsulamento 44 ❏ No contexto de uma linguagem orientada a objeto um objeto pode ser definido como um conjunto de “funções” unidas aos dados que elas necessitam ❏ O encapsulamento “protege” os dados que estão “dentro” dos objetos, evitando assim que os mesmos sejam alterados erroneamente ❏ Os dados só poderão ser alterados pelas “funções” dos próprios objetos ❏ As “funções” dos objetos são chamadas de operações ou métodos Encapsulamento Exemplo 45 ❏ Em um processo de encapsular os atributos das classes, os atributos serão do tipo private (nível de acesso). Para acessar esses tipos de modificadores, é necessário criar métodos setters e getters ❏ Essa atitude evita o acesso direto a propriedade do objeto, adicionando uma outra camada de segurança à aplicação Polimorfismo 46 ❏ Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada Polimorfismo 47 ❏ Sobrescrita (override) - Reescreve nas classes filhas métodos criados inicialmente na classe pai, os métodos que serão sobrepostos, devem possuir o mesmo nome, tipo de retorno e quantidade de parâmetros do método inicial, porém o mesmo será implementado com especificações da classe atual, podendo adicionar um algo a mais ou não Polimorfismo 48 Polimorfismo 49 Polimorfismo 50 ❏ Sobrecarga (overloading) - Através do mecanismo de sobrecarga, dois métodos de uma classe podem ter o mesmo nome, desde que suas assinaturas sejam diferentes - Tal situação não gera conflito pois o compilador é capaz de detectar qual método deve ser escolhido a partir da análise dos argumentos do método Persistência 51 ❏ Refere-se à habilidade de um objeto existir além da execução que o criou, ou seja, ser armazenado em memória secundária (permanente ou persistente) ❏ Armazenamento dos atributos (dados) ❏ Muito encontrado em sistemas que manipulam banco de dados - Hibernate Porque usar orientação a objetos? 52 ❏ Quando bem empregada, a orientação a objetos traz diversas vantagens: - Reutilização - Confiabilidade - Modelo de sistema mais realístico - Facilidade de interoperabilidade e de manutenção, aumento da qualidade - Maior produtividade - Unificação do paradigma (da análise a implementação) ❏ A orientação a objetos é um paradigma que pode ser aplicado ao longo de todo o processo de construção do software Quiz53 Quiz 54 1. Marque a alternativa que representa a definição de herança, em orientação a objetos. a) Mecanismo que indica que o acesso aos dados (atributos) dos objetos só deve ocorrer pelos métodos do próprio objeto. b) Mecanismo que permite o reaproveitamento de comportamentos e dados de outras classes do sistema. c) Mecanismo que permite que métodos, com o mesmo nome, possam ser reimplementados dentro da própria classe. d) Representação do quanto uma classe depende de outra classe do sistema. e) Representação das características essenciais de um objeto e que o diferencia de outros objetos do sistema. Quiz 55 1. Marque a alternativa que representa a definição de herança, em orientação a objetos. a) Mecanismo que indica que o acesso aos dados (atributos) dos objetos só deve ocorrer pelos métodos do próprio objeto. b) Mecanismo que permite o reaproveitamento de comportamentos e dados de outras classes do sistema. c) Mecanismo que permite que métodos, com o mesmo nome, possam ser reimplementados dentro da própria classe. d) Representação do quanto uma classe depende de outra classe do sistema. e) Representação das características essenciais de um objeto e que o diferencia de outros objetos do sistema. Quiz 56 2. Os quatro pilares do paradigma de Orientação a Objetos são: a) Sequenciamento, Procedimentos, Bibliotecas e Herança. b) Herança, Polimorfismo, Classes e Objetos. c) Classes, Atributos, Métodos e Abstração. d) Abstração, Encapsulamento, Herança e Polimorfismo. Quiz 57 2. Os quatro pilares do paradigma de Orientação a Objetos são: a) Sequenciamento, Procedimentos, Bibliotecas e Herança. b) Herança, Polimorfismo, Classes e Objetos. c) Classes, Atributos, Métodos e Abstração. d) Abstração, Encapsulamento, Herança e Polimorfismo. Quiz 58 3. Sobre os conceitos de Orientação a Objetos, identifique com “V” caso verdadeiro ou “F” caso falso as assertivas a seguir. ( ) A Sobrescrita permite que, em uma mesma classe, tenhamos vários métodos com o mesmo nome, mas com a assinatura diferente. ( ) Objetos são instâncias de uma classe que possui os atributos e as operações definidos na classe. ( ) Superclasse é uma especialização de um conjunto de classes através de herança. ( ) A Sobrecarga possibilita que o mesmo nome possa ser utilizado em diferentes métodos em uma mesma classe, desde que, por exemplo, as quantidades de parâmetros sejam diferentes. Quiz 59 3. Sobre os conceitos de Orientação a Objetos, identifique com “V” caso verdadeiro ou “F” caso falso as assertivas a seguir. ( F ) A Sobrescrita permite que, em uma mesma classe, tenhamos vários métodos com o mesmo nome, mas com a assinatura diferente. ( V ) Objetos são instâncias de uma classe que possui os atributos e as operações definidos na classe. ( F ) Superclasse é uma especialização de um conjunto de classes através de herança. ( V ) A Sobrecarga possibilita que o mesmo nome possa ser utilizado em diferentes métodos em uma mesma classe, desde que, por exemplo, as quantidades de parâmetros sejam diferentes. Quiz 60 4. Considere as seguintes afirmações sobre alguns fundamentos de Análise de Sistemas orientada a objetos. ( ) Classe é um conceito orientado a objeto que encapsula dados e abstrações procedurais necessárias para descrever o conteúdo e o comportamento de alguma entidade do mundo real. Pode-se dizer que classe é uma descrição generalizada que descreve uma coleção de objetos similares.( ) Superclasse é a generalização de um conjunto de classes a ela relacionadas. ( ) Subclasse é uma especialização da superclasse. Uma subclasse herda todos os atributos e operações associadas à sua superclasse e não pode incorporar atributos ou operações adicionais específicos. Quiz 61 4. Considere as seguintes afirmações sobre alguns fundamentos de Análise de Sistemas orientada a objetos. ( V ) Classe é um conceito orientado a objeto que encapsula dados e abstrações procedurais necessárias para descrever o conteúdo e o comportamento de alguma entidade do mundo real. Pode-se dizer que classe é uma descrição generalizada que descreve uma coleção de objetos similares. ( V ) Superclasse é a generalização de um conjunto de classes a ela relacionadas. ( F ) Subclasse é uma especialização da superclasse. Uma subclasse herda todos os atributos e operações associadas à sua superclasse e não pode incorporar atributos ou operações adicionais específicos. Quiz 62 5. Com relação aos conceitos de orientação objeto, existe uma característica que faz com que detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos para os objetos e que por conta dessa técnica, o conhecimento a respeito da implementação interna da classe é desnecessário do ponto de vista do objeto, uma vez que isso passa a ser responsabilidade dos métodos internos da classe. A característica apresentada se refere a: a) Encapsulamento b) Polimorfismo c) Abstração d) Herança e) Classe Quiz 63 5. Com relação aos conceitos de orientação objeto, existe uma característica que faz com que detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos para os objetos e que por conta dessa técnica, o conhecimento a respeito da implementação interna da classe é desnecessário do ponto de vista do objeto, uma vez que isso passa a ser responsabilidade dos métodos internos da classe. A característica apresentada se refere a: a) Encapsulamento b) Polimorfismo c) Abstração d) Herança e) Classe Quiz 64 6. Na programação orientada a objeto, a) Um construtor serve para inicializar os atributos e é executado automaticamente sempre que ocorre a criação de um novo objeto. b) Atributos são classes que se encontram dentro de cada um dos objetos restritos a determinados tipos. c) Encapsulamento consiste na aglutinação de aspectos internos e externos de um objeto. d) Métodos são variáveis que se encontram dentro de cada um dos objetos de uma classe. e) Classe abstrata é uma classe que representa uma coleção de características presentes num mesmo tipo de objeto, mas que também pode existir isoladamente. Quiz 65 6. Na programação orientada a objeto, a) Um construtor serve para inicializar os atributos e é executado automaticamente sempre que ocorre a criação de um novo objeto. b) Atributos são classes que se encontram dentro de cada um dos objetos restritos a determinados tipos. c) Encapsulamento consiste na aglutinação de aspectos internos e externos de um objeto. d) Métodos são variáveis que se encontram dentro de cada um dos objetos de uma classe. e) Classe abstrata é uma classe que representa uma coleção de características presentes num mesmo tipo de objeto, mas que também pode existir isoladamente. Quiz 66 7. No que concerne a análise, projeto e modelagem orientada a objetos, julgue o item que se segue. O polimorfismo de objeto pode criar objetos que herdam comportamento de uma classe e pode possibilitar que o desenvolvedor programe um comportamento diferente para os métodos de classes existentes, mas, para que seja da forma sobrescrita, o polimorfismo precisa possuir a mesma assinatura. ( ) Certo ( ) Errado Quiz 67 7. No que concerne a análise, projeto e modelagem orientada a objetos, julgue o item que se segue. O polimorfismo de objeto pode criar objetos que herdam comportamento de uma classe e pode possibilitar que o desenvolvedor programe um comportamento diferente para os métodos de classes existentes, mas, para que seja da forma sobrescrita, o polimorfismo precisa possuir a mesma assinatura. ( X ) Certo ( ) Errado Quiz 68 8. Em programação orientada a objetos, indique o tipo de controle de acesso que permite que um método seja acessado apenas pela classe que o criou ou por todas as suas dependentes. a) Default b) Privado c) Protegido d) Público Quiz 69 8. Em programação orientada a objetos, indique o tipo de controle de acesso que permite que um método seja acessado apenas pela classe que o criou ou por todas as suas dependentes. a) Default b) Privado c) Protegido d) Público Quiz 70 9. Por meio do mecanismo de sobrecarga, dois métodos de uma mesma classe podem ter o mesmo nome, desde que suas listas de parâmetros sejam diferentes. ( ) Certo ( ) Errado Quiz 71 9. Por meio do mecanismo de sobrecarga, dois métodos de uma mesma classe podem ter o mesmo nome, desde que suas listas de parâmetros sejam diferentes. ( X ) Certo ( ) Errado Quiz 72 10. “Mecanismo de reutilização de código em que novas classes são definidas a partir de classes já existentes (superclasses), herdando alguns atributos e métodos e adicionando novos recursos que as novas classes (subclasses) exigem.” Se refere a) às classes. b) à herança. c) a objetos. d) ao polimorfismo. Quiz 73 10. “Mecanismo de reutilização de código em que novas classes são definidas a partir de classes já existentes (superclasses), herdando alguns atributos e métodos e adicionando novos recursos que as novas classes (subclasses) exigem.” Se refere a) às classes. b) à herança. c) a objetos. d) ao polimorfismo. Quiz 74 11. Considere que um Analista de TI sabe que uma classe Pessoa Física e uma classe Pessoa Jurídica possuem o atributo nome como uma informação em comum e que o CPF é um atributo específico para a Pessoa Física e o CNPJ é um atributo específico para Pessoa Jurídica.Então o Analista criou uma outra classe com o atributo nome e seu objetivo é que haja herança deste e, eventualmente, outros métodos e atributos, para as classes filhas, Pessoa Física e Pessoa Jurídica, que já existiam. Essa classe criada não é instanciada, apenas fornece um modelo para geração de outras classes, e é denominada a) Subclasses. b) Classe construtura. c) Classe abstrata. d) Classe sobrescrita. e) Pacote. Quiz 75 11. Considere que um Analista de TI sabe que uma classe Pessoa Física e uma classe Pessoa Jurídica possuem o atributo nome como uma informação em comum e que o CPF é um atributo específico para a Pessoa Física e o CNPJ é um atributo específico para Pessoa Jurídica. Então o Analista criou uma outra classe com o atributo nome e seu objetivo é que haja herança deste e, eventualmente, outros métodos e atributos, para as classes filhas, Pessoa Física e Pessoa Jurídica, que já existiam. Essa classe criada não é instanciada, apenas fornece um modelo para geração de outras classes, e é denominada a) Subclasses. b) Classe construtura. c) Classe abstrata. d) Classe sobrescrita. e) Pacote.
Compartilhar