DEV Community

Cover image for Conceitos básicos de programação orientada a objetos (POO)
pamelakelly0023
pamelakelly0023

Posted on

Conceitos básicos de programação orientada a objetos (POO)

É um método de desenvolvimento de software que reúne um conjunto de componentes para resolução do problema. Esses componentes são OBJETOS.

Segundo Melo (2004, p.15), um objeto é qualquer coisa, em forma concreta ou abstrata, que exista física ou apenas conceitualmente no mundo real.

Por exemplo: cliente, professor, caneta, carro.
Sendo que esses objetos possuem características e comportamentos.

Classes

Uma classe é uma abstração de um conjunto de objetos que possuem os mesmos tipos, características e comportamentos.

class Livro {
    titulo: string
    autor: string
}
Enter fullscreen mode Exit fullscreen mode

Temos uma Classe do objeto Livro, com os seus atributos (características), título e autor, ambos do tipo string.

Uma Classe possui também pode possuir métodos.

Métodos

São as atividades que uma instância de uma classe pode executar. Quando ele é chamado, então se executa um conjunto de instruções que foram previamente programadas dentro desse método.

class Livro {
    titulo: string
    autor: string
    adicionarLivro(){
    //cadastro de novo livro
    }
}
Enter fullscreen mode Exit fullscreen mode

Nem todos os atributos e métodos devem ser visíveis para todos, então temos a…

Visibilidade

Serve para indicar o seu nível de acessibilidade.

Alt Text

(+) publico -> a classe atual e todas as outras tem acesso.

(-) privada -> somente a classe atual tem acesso.

(#) protegido -> a classe atual e todas suas sub-classses tem acesso.

Herança

Alt Text

A herança permite que as classes compartilhem atributos e métodos. Significa que os objetos da subclasse podem ser utilizados em qualquer local em que a superclasse ocorra, mas não vice-versa. A subclasse herda as propriedades da classe-mãe. A vantagem de se utilizar herança é a reutilização de código.

Polimorfismo

Ocorre quando uma subclasse redefine um método existente na superclasse, ou seja, quando temos os métodos sobrescritos (overriding).

class Mamifero {
    //SuperClasse
    locomoverSe() {
    // A ser implementado em alguma subclasse. 
     }
 }
Enter fullscreen mode Exit fullscreen mode

SubClasses herdam e sobrescrevem o método citado da seguinte forma:

SubClasse Macaco:

locomoverSe() {
 pulandoDeGalhoEmGalho; 
}
Enter fullscreen mode Exit fullscreen mode

SubClasse Baleia:

locomoverSe() {
 nadando;
}
Enter fullscreen mode Exit fullscreen mode

Discussion (0)