Bóson Treinamentos em Ciência e Tecnologia

Conceitos gerais de Programação Orientada a Objetos – 01

Conceitos de Programação Orientada a Objetos

Programação Orientada a Objetos – Alguns conceitos explicados

Olá pessoal! Neste artigo vou explicar, de forma sucinta, alguns dos principais conceitos presentes na disciplina de Programação Orientação a Objetos. Meu intuito não é o de me aprofundar nesses conceitos, mas sim de apresentá-los inicialmente, como uma espécie de sumário, de modo a apresentar e esclarecer algumas ideias fundamentais da matéria.

Posteriormente vamos nos aprofundar em cada conceito, inclusive com exemplos de aplicações nas linguagens de programação mais comuns da atualidade.

Definição

Programação Orientada a Objetos – POO (Object-Oriented Programming – OOP) é um método de programação (estilo) que usa tipos de dados personalizados. Em vez de operar apenas com tipos de dados primitivos, podemos construir novos tipos de dados, conforme nossa necessidade (necessidade da aplicação).

Esses novos tipos de dados, que chamamos de classes, podem conter estruturas semelhantes a funções, denominadas métodos, e variáveis internas, chamadas de atributos.

As classes são estruturas semelhantes a strucutures e unions, utilizadas em programação estruturada, porém tem características diferenciadas, como:

Uma das principais ideias em orientação a objetos é o conceito de Abstração, que consiste em esconder do usuário os detalhes de um processo. Em OOP, o programador (que é o usuário) não precisa conhecer todos os detalhes de implementação intrincados de uma classe, basta que saiba como utilizá-la em seu programa.

Membros de Classe

Existem dois tipos de membros (elementos internos) em uma classe: atributos e métodos.

Tipos de linguagens OO (Orientadas a Objetos)

Existem, fundamentalmente, dois tipos de linguagens orientadas a objetos:

Níveis de acesso

Os níveis de acesso em uma classe determinam a visibilidade de seus componentes (métodos e atributos). Temos três níveis de acesso no geral:

Além disso, o acesso pode ser classificado em:

As instâncias não possuem os métodos e atributos estáticos do objeto que representam.

Métodos Construtor e Destrutor

Tratam-se de dois métodos especiais que possuem funções bem-definidas em um objeto.

Setters e Getters

Um Setter é um método especial que permite configurar indiretamente valores dentro de um objeto (atributos). 

Um Getter é outro método especial, usado para obtermos de forma indireta os valores armazenados dentro do objeto.

Ambos previnem o acesso direto à informações privadas do objeto, permitindo o acesso controlado aos dados.

Polimorfismo

O conceito de Polimorfismo é a habilidade em uma linguagem de permitir que múltiplos tipos da dados apareçam e sejam utilizados como outro tipo. Podemos classificar as linguagens de duas formas com relação a tipos de dados:

Para que serve o polimorfismo?

Com a sobrecarga de operadores, uma mesma classe pode fornecer múltiplos métodos para manipular diferentes operadores.

O polimorfismo permite, por exemplo, que as funções de atributos ou métodos sejam modificados quando uma classe é criada herdando de outra classe-pai. Esse é um dos pilares da Programação Orientada a Objetos.

Sobrecarga de Métodos

Podemos também sobrecarregar métodos, o que significa que podemos fornecer múltiplos métodos com uma variedade de parâmetros, tornando-os mais genéricos. Por exemplo, podemos ter um método que, ao receber duas strings, as concatena, formando uma terceira, mas se receber dois inteiros realiza sua soma em vez de concatená-los. 

Method Overriding

Este conceito diz respeito à substituição de um método em uma classe por uma função externa, quando de seu uso.

Os métodos que podem ser sobrescritos assim são chamados de Métodos Virtuais.

Recursão aberta

É a habilidade de uma linguagem de programação que permite o acesso a membros de uma instância do objeto. Tipicamente, é usada com palavras-chave específicas e construída em nomes de variáveis.

Por exemplo, temos palavras-chave como this, self, me, que são ponteiros para a instância real na qual eles são utilizados.

É isso aí! Vimos neste tutorial alguns conceitos iniciais importantes para o estudo de Programação Orientada a Objetos.

Na parte 02 deste tutorial vamos tratar de mais conceitos, como Delegates, Namespaces e Encapsulamento, entre outros.

 

 

Sair da versão mobile