Programação orientada a objetos

A programação orientada a objetos possui um contexto bastante semelhante com a vida real, facilitando a sua implementação e interpretação.

Categoria de Programação

Postado em 16 agosto 2022

Atualizado em 16 agosto 2022

Palavras-chave: programacao,programming,tecnologia,object,orientes,language

Visualizações: 2596



As linguagens de programação estão em constante desenvolvimento. Conforme a versão aumenta, novas funcionalidades vão sendo adicionadas e outras funcionalidades vão sendo depreciadas, com o intuito de trazer mais conveniência aos programadores.

Cerca de 50 anos atrás, as linguagens de programação eram bastante simples e não possuíam tantas possibilidades como hoje. Por exemplo, a programação procedural era um modo bastante utilizado. Onde as funções eram definidas no topo do documento e os processos de invocação dos métodos envolvendo variáveis globais eram escritos na parte de baixo do documento.

Essas práticas não eram muito satisfatórias em alguns casos, por isso a linguagem orientada a objetos teve grande sucesso quando publicada.

O que é a programação orientada a objetos?

Muitas vezes abreviada como “OOP”, a programação orientada a objetos vem do inglês: Object-oriented programming.

A linguagem orientada a objetos é um modo de escrita centrada no uso de objetos para programação. Esses objetos podem representar qualquer coisa, dependendo do contexto do programa que está em desenvolvimento.

Por exemplo, se um programa voltado à feiras e legumes está sendo desenvolvido, é bastante comum a nomeação de objetos com nomes como “fruta”, “legume”, “vendedor” e “cliente”.

A OOP possibilitou uma escrita mais relacionada com a vida real, dando mais facilidade na interpretação do contexto de um programa. Isso permitiu que um código mais atrelado com a lógica na vida real pudesse ser implementado.

Além disso, outras novidades também foram adicionadas:

  • Herança
  • Encapsulamento
  • Polimorfismo
  • Abstração

O que é a herança na programação orientada a objetos?

A herança permite um objeto estender outro objeto, herdando variáveis e métodos da classe parente.

herança oop

No exemplo acima, o carro e o ônibus herdam o comportamento da classe parente, que é correr.

class Veiculo {
	public function correr(): void {
		//correr
	}
}

class Carro extends Veiculo {
	// Não há necessidade de redeclarar o método herdado
}

O que é o encapsulamento na programação orientada a objetos?

Encapsulamento é uma expressão utilizada para descrever a habilidade de um objeto em possuir métodos e variáveis em uma só unidade.

encapsulamento oop

Além disso, o acesso a variáveis e métodos podem ser restritos, impossibilitando o acesso externo.

class Cachorro {
    // Variáveis privadas não podem ser alteradas externamente (encapsulamento)
	private $velocidadeMaxima = 30;
	private $velocidadeAtual = 0;
	private $aceleracao = 5;

	public function correr(): void {
		while($this->velocidadeAtual <= $this->velocidadeMaxima) {
    		$this->velocidadeAtual += $this->aceleracao;
		}
	}
}

O que é o polimorfismo na programação orientada a objetos?

Polimorfismo é a habilidade de um objeto que possui um parente mudar o seu comportamento, ou seja, sobrescrever métodos ou variáveis herdadas do objeto parente.

polimorfismo oop

No exemplo acima, era declarado que qualquer animal vive na selva. Porém, nos objetos que estendem a classe “Animal”, esse comportamento foi substituído.

class Animal {
	public function comportamento(): string {
		return "vive na selva";
	}
}

class Pato extends Animal {
	// Polimorfismo
	public function comportamento(): string {
		return "anda sobre as águas";
	}
}

O que é a abstração na programação orientada a objetos?

Obriga a classe derivada a implementar comportamentos que ainda não foram implementados na classe base.

abstração oop

No exemplo acima, a bicicleta sozinha não possui nenhuma função. Porém, quando a classe derivada herda a classe parente a implementação é feita, no caso acima “andar de bicicleta”.

abstract class Ciclista {
	abstract public function andarDeBicicleta();
}

class Amador extends Ciclista {
    // A classe Amador é obrigada a implementar o método abaixo
	public function andarDeBicicleta() {
		// implementação
	}
}

Conclusão

A programação orientada a objetos possui um contexto bastante semelhante com a vida real, facilitando a sua implementação e interpretação.

Além disso, novidades como polimorfismo, abstração, encapsulamento e herança inovaram o modo de desenvolver programas.

Projetos práticos

Criando um jogo de pacman usando javascript e pixi.js (parte 1)

Desenvolvimento dos conceitos mais básicos do clássico pacman, como: mapa, animação, deslocamento e detector de colisões.

Usando dados fornecidos pelo TSE para simular o gráfico das eleições presidenciais de 2022

Simulação dos gráficos do segundo turno das eleições presidenciais, utilizando python e ferramentas de análise de dados, pandas e jupyter.

Desenvolvendo o campo de visão de um personagem em um plano 2D

Detectando objetos que entram dentro do campo de visão do personagem. Útil para servir de "gatilho" para eventos em um jogo.

Criando o esqueleto de um jogo de tiro 2D visto de cima usando P5.js

Usando lógicas matemáticas como trigonometria para criar e calcular o esqueleto de um jogo de tiro 2D em javascript

Integrando Laravel com o protocolo MQTT para comunicação entre dispositivos

Projeto de comunicação entre dois dispositivos ESP8266 e Raspberrypi4. Laravel irá funcionar como servidor e receptor de dados de temperatura e umidade coletados com o DHT11.

Veja também

O DNS torna a interface do navegador mais amigável aos usuários

Antes de podermos visualizar o site, o endereço que digitamos na barra de endereço do nosso navegador passa por várias etapas, para só então podermos visualizar o site pela primeira vez...

Um algoritmo não pode ser composto por instruções ambíguas, isso pode trazer resultados inesperados

Os algoritmos na ciência da computação são o principal meio para o desenvolvedor poder escrever instruções para o computador, operando a sua maneira

RFC Request for comments

Documentos com especificações técnicas sobre as tecnologias da internet que são usados para a implementação de novas tecnologias e padronização.

Princípio de substituição de Liskov - Liskov Substitution Principle

Esse princípio diz que uma classe derivada deve ser substituível pela sua classe base sem apresentar comportamentos inesperados.

Algoritmo

O algoritmo é um conjunto de instruções escritas por um programador com intuito de solucionar um problema ou obter um resultado previsto.

Variáveis na programação

As variáveis são elementos responsáveis por armazenar informações temporariamente ou perpetuamente durante a execução de um programa ou algoritmo.