Na Programação Orientada a Objetos (POO), a aplicação é vista como uma rede dinâmica de objetos colaboradores que permite aos desenvolvedores de software administrar mais facilmente, a complexidade do domínio do problema, permitindo desenvolver softwares mais flexíveis, mais fáceis de se manutenir, além de melhorar as possibilidades de reusabildiade de código.
Deste modo, utilizando o paradigma Orientado a Objetos, modelamos e construímos sistemas, baseado nos objetos que compõem o mesmo. Como exemplo, poderíamos pensar em uma aplicação de uma agência bancária como sendo implementada através de objetos cliente, conta corrente, aplicação financeira e assim por diante que se relacionam mutuamente.
Muitos softwares sendo e a serem desenvolvidos no futuro usarão algum nível de Orientação a Objetos.
Atualmente, o Paradigma Orientado a Objetos engloba uma série de disciplinas, tais como: Programação Orientado a Objetos, Modelagem e Design Orientado a Objetos, Banco de dados Orientado a Objetos, Interfaces Orientadas a Objetos , Metodologias Orientadas a Objetos de desenvolvimento de software, …
Na verdade, é da natureza humana realizar modelagens a partir da maneira como interpreta a natureza. Neste caso, modelar e implementar sistemas utilizando-se objetos.
O foco da Programação Orientada a Objetos não está nos procedimentos do universo e sim nos objetos que existem nele, já que eles formam um elemento natural para o modelo e o mundo é composto por objetos.
Objeto representa uma abstração de algo em nosso domínio do problema que reflete os recursos de um sistema de reter informações sobre ele, interagir com ele, ou ambas as coisas (Richard C. Lee e Willian M. Tepfenhart em UML e C++ Guia Prático de Desenvolvimento Orientado a Objetos).
Todo objeto possui atributos e pode prestar algum tipo de serviço. Estes atributos e serviços são conhecidos, respectivamente, como membros de dados e métodos.
Os objetos na POO são gerados a partir de uma estrutura conhecida como classe, que define conjunto de dados e rotinas para processar estes dados. Estas classes podem ser vistas como templates, representando conjunto de objetos que compartilham os mesmos atributos, operações e relacionamentos.
Cada classe contém todas as informações que ela precisa para executar qualquer processamento exigido pelo objeto que ela representa. Desde modo, para termos um objeto para utilização pelo nosso programa, temos que gerá-lo a partir da classe desejada, e.g., se precisamos em nosso sistema lidar com o objeto conta corrente de um cliente, precisamos instanciar um objeto de determinada classe ContaCorrente e realizar com ele, as operações que se mostrarem necessárias e/ou desejadas.
Podemos fazer uma analogia com o tipo de dado inteiro das linguagens de programação. Para armazenarmos em nosso programa um valor inteiro, precisamos declarar com o nome que desejarmos, uma variável deste tipo no programa. Naquele exemplo, declararíamos uma instancia da classe ContaCorrente em nosso programa. Nesta instância, conhecida como objeto, pode-se realizar todas as operações que tenhamos perfil para executar como usuários da mesma.
Resumindo, objetos podem ser vistos como instâncias de classes.
Para saber mais, leia o livro Engenharia de Software na Prática: Editora Novatec, 2010. ISBN 978-85-7522-217-1
2 Comentários
Ótima explanação sobre o assunto Hélio, um resumo objetivo e claro da POO.
Abraço.
Estou começando a estudar esse paradigma agora e seu resumão me auxiliou nessa trajetória.
Vlws 😉