DEV Community

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

Posted on

1 2

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

Sentry blog image

How I fixed 20 seconds of lag for every user in just 20 minutes.

Our AI agent was running 10-20 seconds slower than it should, impacting both our own developers and our early adopters. See how I used Sentry Profiling to fix it in record time.

Read more

Top comments (0)

The best way to debug slow web pages cover image

The best way to debug slow web pages

Tools like Page Speed Insights and Google Lighthouse are great for providing advice for front end performance issues. But what these tools can’t do, is evaluate performance across your entire stack of distributed services and applications.

Watch video

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay