Este é o meu primeiro artigo aqui no DevMedia e vou apresentar aqui o paradigma da Orientação a Objetos. Este não é uma novidade e na web é possível encontrar um bom conteúdo sobre o assunto, porém muitas pessoas, inclusive profissionais da área(programadores) ainda confundem e se sentem ‘incomodados’.
Bom, mas o que é Orientação a objetos?
“Orientação a Objetos é um termo geral que inclui qualquer estilo de desenvolvimento que seja baseado no conceito de ‘objeto’ – uma entidade que exibe características e comportamentos. Visão do mundo em ‘objetos’.”
Ela é a abstração, por meio do software, de objetos do mundo real. O foco da POO não é executar uma sequência de procedimentos. Aqui os objetos interagem entre si(passagem de mensagem/chamada de método) orientando o fluxo do programa.
Para uma melhor compreensão, vamos entender alguns conceitos básicos:
Classe é a definição da estrutura de um objeto. Nela são definidos os atributos(variáveis internas do objeto) e os métodos(comportamento do objeto). É a partir das classes que os objetos são criados. Um exemplo prático é o projeto de um carro, onde não temos o carro propriamente dito, e sim a definição das características(cor, modelo, peso) e comportamentos(aceleração, velocidade).
Objeto é uma instância de classe. Pegando o exemplo da classe, cada carro fabricado seria um objeto.
“Um objeto é uma construção de software que encapsula estado e comportamento. Os objetos permitem que você modele seu software em termos reais e abstrações.”
Herança é o mecanismo de uma classe(subclasse) estender a definição de uma outra classe(superclasse). Por exemplo, a subclasse homemherda da superclasse mamífero.
Polimorfismo é a capacidade de um método(comportamento) ser implementado de diversas maneiras nas subclasses. Por exemplo, imagine o método locomoção da superclasse mamífero: a implementação para a subclasse homem é diferente da subclasse morcego.
Encapsulamento consiste na proteção dos atributos de um objeto, ou seja, não permite que um atributo seja acessado diretamente. Quanto maior o encapsulamento, menor é o acoplamento entre as classes. Isso garante a reusabilidade , recurso importante para orientação à objetos e desenvolvimento de software.
Atributos são variáveis internas do objeto e seus valores definem o estado do mesmo.
Método é o comportamento que o objeto tem. Quando encapsulados, os atributos são alterados através dos métodos. Temos os métodos construtores que são chamados durante a instanciação do objeto;métodos acessadores(em Java são os getters) usados para retornar o valor dos atributos e o métodos mutantes(em Java são os setters) usados para alterar o valor dos atributos.
Bom, é isso. Aqui dei apenas um pontapé inicial sobre Orientação a Objetos. Fiquem à vontade para comentar, sugerir e criticar, pois, acredito que é dessa maneira que conseguimos ampliar o nosso conhecimento. Qualquer dúvida me mande um e-mail que responderei com grande prazer.
Até a próxima…
Referência Bibliografica
Sintes, Anthony. Aprenda Programação Orientada a Objetos em 21 Dias. São Paulo. Pearson Education do Brasil, 2002.