Esse site utiliza cookies
Nós armazenamos dados temporariamente para melhorar a sua experiência de navegação e recomendar conteúdo do seu interesse.
Ao utilizar os nossos serviços, você concorda com as nossas políticas de privacidade.
Esse site utiliza cookies
Nós armazenamos dados temporariamente para melhorar a sua experiência de navegação e recomendar conteúdo do seu interesse.
Ao utilizar os nossos serviços, você concorda com as nossas políticas de privacidade.
Categoria de Programação
Postado em 16 agosto 2022
Atualizado em 16 agosto 2022
Palavras-chave: programacao,programming,tecnologia,object,orientes,language
Visualizações: 2506
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.
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:
A herança permite um objeto estender outro objeto, herdando variáveis e métodos da classe parente.
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
}
Encapsulamento é uma expressão utilizada para descrever a habilidade de um objeto em possuir métodos e variáveis em uma só unidade.
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;
}
}
}
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.
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";
}
}
Obriga a classe derivada a implementar comportamentos que ainda não foram implementados na classe base.
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
}
}
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
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.
Usando JavaFX e arquitetura limpa para criar um aplicativo de caixa eletrônico extremamente simples.
Jogo simples de guerra espacial desenvolvido em javascript. Esse jogo usa cálculos de física para simular efeitos de atrito e inércia.
Implementando um programa que encontra a menor distância entre dois pontos dentro de um labirinto usando o algoritmo A* (a-estrela).
Detectando objetos que entram dentro do campo de visão do personagem. Útil para servir de "gatilho" para eventos em um jogo.
No passado existiam girafas com pescoço comprido e as girafas com pescoço curto. Isso resultou em um comportamento inesperado, a seleção natural. Não queremos isso no nosso algoritmo...
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...
O código aberto é disponível para a visualização, modificação e utilização, podendo ser utilizado por terceiros para fins comerciais.
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.
Esse princípio diz que uma classe derivada deve ser substituível pela sua classe base sem apresentar comportamentos inesperados.
Alterna as frequências de transmissão para melhorar o desempenho da comunicação entre os dispositivos, podendo atuar efetivamente em diversos ambientes.