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: 3094



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 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

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 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.

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.

Criando artes de texto usando imagens

Convertendo imagens para ascii art usando o valor da intensidade das cores cinzentas.

Veja também

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

A digitalização é o jeito moderno de gerenciamento de documentos

Digitalizar documentos facilita o gerenciamento, aumenta a disponibilidade e economiza tempo, consequentemente trazendo muitos outros benefícios.

Vetores geométricos

Caracterizam uma grandeza física que possui módulo, direção e sentido. Pode simular eventos como queda, atração e deslocamento de objetos em um meio.

Telemática

Utiliza tecnologias de informática e telecomunicação para efetuar transferência de dados entre dispositivos por longas distâncias.

Tipos de serviços de servidor

Práticas como hospedagem de sites ou negócios online necessitam de servidores conectados à internet para permitir o acesso externo ao conteúdo.

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.