Avançar para o conteúdo principal

Buscar em um vocabulário

Idioma do conteúdo

Informações sobre o conceito

Termo preferencial

Programação Orientada a Objetos  

Tipo

  • Conteúdo

  • owl:NamedIndividual

Definição

  • A programação orientada a objetos (OOP) é ​​uma técnica de programação que combina abstração e herança de dados. O recurso central é o objeto, que em termos práticos é o desenvolvimento de uma estrutura de dados. O último é um tipo de dados composto, consistindo em uma coleção de variáveis ​​apropriadas. O objeto compreende uma definição de estrutura de dados e seus procedimentos definidos em uma única estrutura. Objetos são instâncias de uma classe, cada instância tendo suas próprias variáveis ​​de instância privadas. A definição de classe define as propriedades dos objetos em uma classe. Um recurso particularmente importante é a herança, que permite que novas classes sejam definidas em termos de classes existentes, herdando algumas ou todas as propriedades de uma classe existente. Isso facilita o compartilhamento de código, pois os usuários podem herdar objetos das coleções de código do sistema. Os procedimentos de um objeto (geralmente chamados de métodos) são ativados por mensagens enviadas ao objeto por outro objeto. Assim, em um sistema de programação orientado a objetos, a estrutura básica de controle é * passagem de mensagens. O programador identifica os objetos do mundo real do problema e os requisitos de processamento desses objetos, encapsulando-os nas definições de classe e nas comunicações entre os objetos. O programa é essencialmente uma simulação do mundo real no qual os objetos passam mensagens para outros objetos para iniciar ações. A estrutura interior do objeto está totalmente oculta de qualquer outro objeto (uma propriedade chamada encapsulamento). Os objetos adicionam vários recursos à estrutura de dados. Os mais importantes são descritos resumidamente abaixo. Procedimentos Os objetos podem conter procedimentos (métodos), bem como variáveis ​​(também chamadas de propriedades). Por exemplo, um tipo de dados que representa um automóvel pode ser definido em C da seguinte maneira: Variáveis ​​do tipo 'automóvel' seriam instanciadas, inicializadas pela atribuição de valores apropriados às subvariáveis ​​de seus componentes e manipuladas por procedimentos * apropriados. No POO, a estrutura do automóvel pode ser reformulada em C ++ para incluir um procedimento: Assumindo uma variável do tipo 'automóvel' chamada 'gasGuzzler', o método 'viagem' poderia ser chamado assim: (O significado da palavra-chave 'virtual' é explicado abaixo.) Herança O fato de que objetos podem ser definidos em termos de outros objetos é um recurso importante do OOP. O tipo de objeto (ou subclasse) * de um filho herda todos os métodos e propriedades de seus pais (que podem ter sido herdados por sua vez de seus pais), além de definir seus próprios. Esse recurso permite que hierarquias complexas de objetos relacionados sejam criadas. Um tipo de objeto filho pode substituir um método ou propriedade de seu pai, definindo um novo método ou propriedade com o mesmo nome: Se o método 'travel' de uma variável do tipo 'stretchLimo' for chamado, será invocada a própria versão do stretchLimo. em vez disso, a versão herdada da classe 'automóvel'. Os tipos de objetos filhos podem ser tratados como se fossem um de seus tipos ancestrais. A seguir, é uma atribuição legal usando ponteiros C ++: Nenhum dado é perdido, mas apenas as propriedades e métodos definidos para a classe 'automóvel' estarão disponíveis para a variável myLimo. Polimorfismo, se um método tiver sido substituído, geralmente é o método de substituição definido em uma classe filho que é chamada. Por exemplo, invocará o método 'travel' definido na classe stretchLimo porque 'myLimo' é de fato um objeto stretchLimo. (Observe que nos métodos C ++ devem ser designados "virtuais" para atingir esse comportamento; em linguagens como Java, é automático.) Esse recurso, chamado polimorfismo, dá à programação orientada a objetos um grande poder. A classe 'automóvel' pode ter inúmeras subclasses definidas, cada uma estendendo-a de maneira apropriada a uma determinada marca de automóvel; e cada um pode ter sua própria versão do método "viagem", ajustada para se adequar às suas próprias características. No entanto, quando um objeto de qualquer subclasse é atribuído à variável ponteiro da classe 'automóvel' e o método 'viagem' invocado, é a variante definida para a subclasse apropriada que é invocada. Cada objeto carrega, portanto, o conhecimento de como se manipular, e o código que usa esses objetos não precisa estar ciente de que tipo de objeto está manipulando. Isso aprimora o encapsulamento, reduzindo a complexidade e aumentando a robustez de praticamente qualquer projeto de programação não trivial. Uma aplicação importante do polimorfismo está nas interfaces. Elas podem ser definidas como classes abstratas: ou seja, classes que definem propriedades e métodos, mas que não fornecem implementações para os métodos. Uma implementação de uma interface é uma subclasse que substitui todos os métodos da interface por versões que fornecem funcionalidade apropriada. Idiomas A primeira realização completa de um sistema de programação orientado a objetos foi o * Smalltalk. Um exemplo mais recente é * Ruby. Além disso, um grande número de linguagens de programação modernas contém recursos de sistemas orientados a objetos; exemplos são C ++, C #, Java e Visual Basic. A Dictionary of Computer Science (Oxford Quick Reference) (pp. 377-378). OUP Oxford. Kindle Edition.

Nota do editor

  • Conceitos de orientação a objetos - objetos e operações, mensagens, métodos, estados. Tipos e classes. Polimorfismo. Abstrações: classes abstratas e interfaces. Generalização, subclasses e instanciação. Herança. Encapsulamento. Noções de I/O e de tratamento de exceções em linguagem orientada a objetos. Programação orientada a objetos - Aplicações dos conceitos a linguagens de programação orientadas a objetos. Construtores e Destrutores. Herança múltipla. Noções de máquinas virtuais e garbage collector. Aplicações. Estudos de caso.Noções de acesso a banco de dados em linguagem orientada a objetos. Tipos genéricos. Programação genérica: criação e uso de classes genéricas. Abstração de agregação, listas, conjuntos, arranjos e outras coleções. Abstração de composição, objeto complexo, propagação. Noções de programação e uso de componentes. Manipulação de threads em linguagem orientada a objetos. Noções de testes unitários.Padrões de análise e projeto de software orientado a objetos (design patterns): ênfase nos padrões MVC, MVP, padrões da camada de apresentação, padrões da camada de negócios e padrões da camada de integração. Refatoramento. Persistência de dados: padrões, ferramentas e tecnologias de persistência de dados. Frameworks para desenvolvimento de sistemas.

Em outros idiomas

  • Object Oriented Programming

    inglês

URI

http://lod.unicentro.br/2017/DiretrizesSBC#programacaoOrientada

Baixar este conceito: