DEV Community

Guilherme Thomas
Guilherme Thomas

Posted on

Contextualização sobre Orientação a Objetos

Esse texto é parte do conceito de aplicativo que criei para a faculdade, disponível aqui.

Paradigmas de Programação

Um paradigma de programação nada mais é que a forma como o programador e equipe conduziram a construção do sistema ou módulo programado, é uma maneira de padronizar e determinar uma visão para aquilo que vai ser construído. Conforme as tecnologias foram evoluindo, podemos observar também a evolução constante das linguagens e seus paradigmas: Os primeiros computadores eram programados somente através de código binário, fomos evoluindo para o Assembly, Algol, Linguagem B, Linguagem C, C++, C#, Java, Python, Go e de diversas maneiras. Importante deixarmos claro que não existe uma linha de sucessão entre as linguagens, mas sim que foram sendo criadas conforme necessidades diferentes surgiam, e poderes de processamento maior são mais disponíveis.

O Python por exemplo é uma linguagem com a sintaxe derivada do C, e inclusive sua implementação funciona por C, hoje a linguagem é usada principalmente para Análise de dados como Machine Learning e Data Science e também no desenvolvimento de projetos web. Cada linguagem citada possui atualizações recentes e continua em uso em determinadas funções, devemos sempre ver a linguagem como uma ferramenta que vai nos ajudar a alcançar o objetivo desejado.

O paradigma de orientação a objetos é um entres os quatro (4) paradigmas de programação, ele se baseia na interação entre diversas unidades que chamamos de objetos. É uma maneira de aproximar o mundo real do mundo da computação, facilitando a interpretação de conceitos para introdução em sistemas.

Com a Orientação a Objetos, a classe é uma estrutura fundamental e será nosso molde das estruturas, um exemplo básico do funcionamento:

Em um sistema de estoque de vendas de carros, um carro certamente estará em nosso sistema como uma classe, pois todos os carros possuem um padrão mais ou menos definido: eles têm quatro (4) rodas, um volante, aceleram, etc. Além de outras características como a Marca, o Nome do Modelo, ano de fabricação.

Podemos declarar então, usando Java no exemplo, o ano de fabricação e a marca do veículo:

public class Carro {
public int ano;
public String marca;
}

Com isso, podemos definir as características dos veículos em nosso sistema, declarando agora os objetos que usarão essas características da seguinte maneira:

Carro boxter = new Carro();
boxter.ano = 2005
boxter.marca = “porsche”

Image description

Agora temos como uma instância da class Carro, o objeto boxter, com seus atributos de marca e ano, e podemos definir muitas outras instâncias usando a mesma classe anterior. Os objetos também podem ter ações em nosso sistema, como por exemplo de um carro, acelerar e frear. Em Orientação a Objetos a ação será chamada de Método, e podemos declarar esse método como:

public void acelerar() {
System.out.println(“De zero a cem em 5 segundos!”);
}

Logo, criar sistemas e aplicativos utilizando linguagens Orientadas a Objeto traz vantagens como ser mais rápido em criar algo pois podemos reutilizar o código, utilizando dos objetos que já criamos, não sendo necessário criar nada do zero; É fácil de realizar alterações pois podemos alterar métodos e classes, ou criar novas, que impactam todo o sistema; além de ser mais fácil de ser entendido por outro programador que estiver lendo um código já existente.

Usando POO no conceito de app

Herança é um dos conceitos principais quando tratando-se de linguagens Orientadas a Objeto, trata-se da possibilidade de criar uma classe nova em nosso sistema, a partir de uma classe que já existe previamente, criando-se uma subclasse.

Em nosso aplicativo, a nossa chamada superclasse ou classe "mãe" será a Usuarios, e nossas subclasses serão a Professores e Administradores.

A superclasse Usuário terá a informação de ID para o aplicativo, a subclasse Professores terá então por definição o ID embarcado, e as opções de acesso a reserva de equipamento e reserva de sala, por sua vez, a subclasse Administradores será uma subclasse de Professores, contendo ID, os métodos de reserva de equipamentos e também o acesso a alterar, incluir e excluir professores e equipamentos no nosso banco de dados SQL.

Image description

Em Kotlin, podemos realizar essas operações de herança declarando no cabeçalho da classe após dois pontos (Classes em Kotlin ficam ao final). A estrutura então se define assim:

open class Usuario()
class Professor() : Usuario()

Top comments (0)