Classes na programação

Conjunto de variáveis e funções que podem ser encapsuladas em uma única unidade de instância e definir o escopo e a acessibilidade de cada elemento

Categoria de Programação

Postado em 27 setembro 2022

Atualizado em 27 setembro 2022

Palavras-chave: classe,programacao,variavel,tecnologia,funcao,encapsulamento,heranca,polimorfismo

Visualizações: 3654



A programação orientada a objetos revolucionou o modo de programação. Esse modo de escrita trouxe muito mais flexibilidade em relação ao manuseio das variáveis de diversas formas, como escopo, acessibilidade e controle.

Porém, isso não seria possível sem a presença das classes, essenciais em linguagens de programação recentes.

O que são classes na programação?

Classes são estruturas abstratas que contém funções e variáveis. As funções dentro da classe vão definir o seu comportamento e a sua forma de utilização. As variáveis vão armazenar determinados valores durante o tempo de execução. O conjunto das funções e variáveis dentro de uma classe é chamado de encapsulamento.

Uma classe pode estender outra classe, herdando suas funções e variáveis. Assim como também pode sobrepor funções já existentes da classe parente para atender as suas necessidades (polimorfismo).

Como funciona as classes na programação?

Classes podem ser planejadas antes mesmo de sua implementação. Isso facilita o seu entendimento.
planejamento de classe na programação

O conteúdo dentro das funções não precisa ser necessariamente escrito no planejamento acima, uma vez que o conteúdo pode ser alterado com frequência, além de não ser tão relevante desde que execute as suas funções corretamente.

Na programação, o esboço acima pode ser implementado da seguinte maneira:

class ClasseParente {
    public $variavel1;
    public $variavel2;
	
	public function funcao1 {
		// ...
	}
	
	public function funcao2 {
		// ...
	}
}

class ClasseDerivada {
	// variavel2 é sobreposta
    public $variavel2;
    public $variavel3;
	
	// funcao2 é sobreposta
	public function funcao2 {
		// ...
	}
}

Exemplo de classe usando PHP

Quais são as funcionalidades que a classe pode ter?

Cada linguagem de programação possui determinadas características na implementação de classes. Exemplos de funcionalidades bastante comuns são:

  • Acesso limitado aos seus atributos
  • Abstração

Como limitar o acesso aos atributos da classe?

Em alguns casos, atributos (variáveis de uma determinada classe) podem ter seu acesso externo limitado por questões de segurança.

public class Carro {
    private $cor = "preto";
}

$carro = new Carro();

// (Erro ao acessar atributo privado) 
// PHP Fatal error:  Uncaught Error: Cannot access private property Carro::$cor 
echo $carro->cor;

No algoritmo acima, a cor do carro não pode ser acessada externamente. Ao invés de acessar diretamente, usa-se uma função pública.

public class Carro {
    private $cor = "preto";
	
	public function obterCor() {
		return $this->cor;
	}
}

$carro = new Carro();

// preto
echo $carro->cor;

Usando essa prática de acesso limitado que é bastante comum na programação, pode-se ter um melhor controle de quais variáveis podem ser acessadas e quais valores podem ser retornados.

O que é a abstração de classes na programação?

A abstração de classes é usado em ocasiões onde sabe-se a existência de funções importa, independente do seu conteúdo.

abstract class Carro {
    abstract function acelerar();
    abstract function frear();
}

A classe abstrata escrita acima, exigi que a classe que estende o carro deve implementar as duas funções.

class Fusquinha extends Carro {
    private $velocidade = 0;
    
    public function acelerar() {
	    $this->velocidade += 1;
    }

	public function frear() {
	    $this->velocidade -= 1;
    }
}

Como mostrado acima, a classe que estende o carro deve implementar o conteúdo das funções.

Conclusão

A classe é um conjunto de variáveis e funções que podem ser encapsuladas em uma única unidade de instância. É um elemento essencial na programação orientada a objetos e tem um papel importantíssimo no planejamento do algoritmo.

Projetos práticos

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.

Integrando o PHP com Elasticsearch no desenvolvimento de um sistema de busca

Projeto de criação de um sistema de busca usando o framework Symfony e Elasticsearch. A integração com Kibana também é feito de modo remoto com um raspberrypi.

Criando um sistema de integração contínua (CI/CD)

Fazendo a integração contínua de Jenkins, Sonatype Nexus, Sonatype, JUnit e Gradle para automatizar processos repetitivos. Prática bastante usada em tecnologias de DevOps.

Criando um sistema de mini garagem automatizada integrada com um sistema de monitoramento independente

Desenvolvimento de um sistema de monitoramento que exibi todos os eventos que acontecem na garagem automatizada, como abertura de portões ou ocupação de vagas.

Desenvolvendo um jogo de quebra blocos em javascript

Programando um jogo clássico de arcade usando javascript e p5.js. O usuário deve quebrar os blocos utilizando uma bola ao mesmo tempo que evita que a bola saia pela parte inferior da tela

Veja também

Qual é o papel das grandes empresas além de fornecer seu serviços?

Poluição do ar, solo e água ainda é um grande problema para ser resolvido ainda em vários países. Há estudos que comprovam que os países mais poluentes podem causar câncer...

Antigamente, as linguagens de programação não tinham um modo tão flexível de escrever como hoje

A linguagem de programação orientada a objetos revolucionou o mundo da programação, sendo o tipo de linguagem mais utilizada na atualidade

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.

Terminal

Interface dedicada ao desenvolvedor ou especialista da computação para executar comandos ao computador sem a presença de um mouse.

Navegador

Aplicativo que adquiri e converte o conteúdo de outros servidores para a exibição de páginas na internet através de protocolos de comunicação, como o HTTP.

Framework no desenvolvimento de softwares

Conjunto de códigos prontos para a utilização no desenvolvimento de softwares, eliminando processos como planejamento de arquitetura de classes.