Skip to content

Archives

  • Janeiro 2022
  • Dezembro 2021
  • Novembro 2021
  • Outubro 2021
  • Setembro 2021

Categories

  • Sem categorias
Trend RepositoryArticles and guides
Articles

Os Quatro Pilares da Programação Orientada a Objetos

On Setembro 27, 2021 by admin

Neste blog vou explicar os 4 pilares do OOP e dar pequenos exemplos. Exemplos pequenos o suficiente que você e eu podemos compreender facilmente.

Abstraction é essencialmente “necessidade de saber”. Nós escondemos os principais detalhes de implementação, mantendo o uso óbvio em primeiro plano. Então lembre-se disto “esconda os detalhes, mostre a relevância”.

Abstraction exemplo…

Este é um formulário de inscrição de um aplicativo em que estou trabalhando (a relevância).

Esta é a lógica de implementação de submissão do formulário. (a necessidade de saber).

Polimorfismo

Polimorfismo é quando você usa um bloco de código, você muda a versão do código que está sendo usado com base nas entradas que estão sendo dadas a ele. Assim, para torná-lo um pouco mais claro, diferentes classes podem ser usadas com a mesma interface, mas podem fornecer sua própria implementação dessa interface.

Polimorfismo exemplo…

class Animal { speak = () => console.log('makes sound')}class Dog extends Animal { speak = () => console.log('woof')}class Cat extends Animal { speak = () => console.log('meowww')}class Cow extends Animal { speak = () => console.log('moooooo')}let dog1 = new Dog()let cat1 = new Cat()let cow1 = new Cow()dog1.speak() // => woofcat1.speak() // => meowwwcow1.speak() // => moooooo
Enter fullscreen mode Exit fullscreen mode

As classes Cat, Dog, e Cow são herdadas da classe Animal. Isto permite que as classes Cat, Dog, e Cow usem a interface do Animal. No entanto, eles só têm o método speak disponível para eles. Se deixássemos o método speak fora da classe Cat, Dog, e Cow, e depois criássemos instâncias de uma classe Cat, Dog, e Cow, ainda poderíamos chamar o método speak nessas instâncias. O único problema é que ele imprimiria os animais ‘fazem som’ em vez dos sons apropriados que um gato, cão e vaca faz (‘meow’, ‘woof’, ‘moo’).

É aqui que entra a substituição do método. Se redefinirmos o método de fala nas classes Cat, Dog, and Cow, podemos personalizá-lo para imprimir os sons que gatos e cães fazem.

Encapsulamento

Encapsulamento une os dados e funções que manipulam os dados, e que mantém ambos a salvo de interferências externas e mau uso. Um bom exemplo de encapsulamento é uma classe. Na verdade podemos nos referir ao exemplo acima onde falamos de Cães, Gatos e Vacas com algumas pequenas modificações.

class Dog { constructor(name) { this.name = name } printName = () => console.log(this.name)}class Cat { constructor(name) { this.name = name } printName = () => console.log(this.name)}class Cow { constructor(name) { this.name = name } printName = () => console.log(this.name)}let dog1 = new Dog()dog1.name = "Max"dog1.printName() // => Maxlet cat1 = new Cat()cat1.name = "Mark"cat1.printName() // => Marklet cow1 = new Cow()cow1.name = "Tom"cow1.printName() // => Tom
Enter fullscreen mode Exit fullscreen mode

Notice quando criamos instâncias para cada animal também atribuímos um nome a cada uma. O que se depreende aqui é que o ‘.name’ após cada instância criada (ou seja, dog1.name) são todos diferentes. Essas ‘.name’ são encapsuladas dentro de suas classes. Atribuir um nome a uma instância não modifica nenhum outro valor de nome de instância.

Herança

Inheritance é provavelmente o mais fácil de entender. Herança é o conceito de uma classe usando(inheriting) a interface de outra classe. Ela então se torna uma criança ou subclasse enquanto a classe da qual herda é o pai ou a superclasse. Na verdade, nós fizemos algumas heranças em nosso segundo exemplo acima. A classe Cat, Dog, e Cow herda da classe Animal para ter acesso ao método speak. Certifique-se apenas de adicionar a palavra-chave extends.

Deixe uma resposta Cancelar resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Arquivo

  • Janeiro 2022
  • Dezembro 2021
  • Novembro 2021
  • Outubro 2021
  • Setembro 2021

Meta

  • Iniciar sessão
  • Feed de entradas
  • Feed de comentários
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress