面向对象 (POO) 和 JavaScript 的复杂程序

2025-05-27

面向对象 (POO) 和 JavaScript 的复杂程序

索引

  1. 普罗洛戈
  2. 什么是 POO?
  3. 有什么物品?
  4. 祝福 POO
  5. POO 中的多形性

1. 序言

噢,待办事项! Estou aqui com meu primeiro artigo e, Honestamente, estou um pouco nervoso, mas animado。我们决定以不带纸的方式(ou os dedos no teclado)原则来解决与对象有关的程序问题。但是,永远不要忘记,我们之间的关系是怎样的?

所以,请注意:如果您是高级程序,请不要在初级程序中进行操作。请参阅我们的建议或评论,以供比较。

2. 🤷‍♂️🤷‍♀️ O que é POO?

Bem, se você chegou até este artigo, é porque tem algum interesse em Programação Orientada a Objetos , or POO **(ou **OOP , na sigla em inglês).基本原理是一种程序范式,所有相关应用程序都可以组织、设计和重新利用。 Isso ocorre porque, ao adotar esse paragrapha, trabalhamos com 'objetos' que possuem 'propriedades' (ou características) e 'métodos' (comportamentos relacionados a esses objetos)。
您是否很关心,您是否熟悉“对象”“方法”“属性”等术语,您知道吗?

3.🤔📦 O que são objetos?

接下来,您可以通过使用 memes 中的“teoria”来解释直接的对象。 Para um meme exitir, ele precisa de algumas propriedades como “nome”, “autor”, “ano de criação” e “link da imagem”, e comportamentos ( métodos ) como “like” e “rt”.

📦 JavaScript 对象示例:

// aqui estamos criando o objeto "meme"
class Meme {
  // aqui no construtor estamos passando as propriedades nome, autor etc..
  constructor(nome, autor, anoCriacao, Linkimg) {
    this.nome = nome;
    this.autor= autor;
    this.anoCriacao= anoCriacao;
    this.Linkimg= Linkimg;
  }

  // aqui estamos criando os metodos
  like() {
   // Criamos uma função e referenciamos a propriedade que queremos "instanciando" ela,    digamos, reutilizando-a.
    console.log(`Meme ${this.nome} curtido na sua rede!`);
  }

  rt() {
    console.log(`Meme ${this.nome} retweetado na sua rede!`);
  }
  // fim do objeto
}

// ate agora nos criamos o objeto junto a seus metodos e como usamos?

// primeiro criamos uma variavel instanciando nosso objeto derivando suas propriedades
// no js utilizamos new para isso
const memedojoao= new Meme(
  // nome
  "memedojoao",
  // autor
  "joao",
  // anoCriacao
  2054,
  // Linkimg
  "<https://umlink.com/memedojoao.png>"
);
// desta maneira nos criamos um novo meme apenas usando uma estrutura ja criada sem ter que repetir mil e uma vezes um construtor e um objeto <3

// como estamos criando o memedojoao instanciando o objeto meme, dentro do nosso novo objeto (memedojoao) ja teremos os nossos metodos basta chama-lo.
memedojoao.like();
memedojoao.rt();

Enter fullscreen mode Exit fullscreen mode

4.📜🤝 祝福 POO

Para entend a herança em POO, vamos usar uma Analogia um pouco mais leve: sabe quando você herda algo de um Parente? Brincadeiras à Parte,是 POO 流行的原则动机,允许新的对象或类群体的属性其他类或对象的配合(方法) 。

Vamos supor que,além da classe 'meme',queremos criar uma uma 'meme2' que herda as propriedades e métodos de 'meme',masagora queremos adicionar uma propriedade chamada 'tipo'。对于这些卡索斯,请使用它,以充分利用它,并在任何情况下使用“更重要”📉📈。

😶‍🌫️🪦 JavaScript 示例:

// nosso bom e velho meme com suas propriedades e metodos
class Meme {
  constructor(nome, autor, anoCriacao, Linkimg) {
    this.nome = nome;
    this.autor= autor;
    this.anoCriacao= anoCriacao;
    this.Linkimg= Linkimg;
  }

  like() {
    console.log(`Meme ${this.nome} curtido na sua rede!`);
  }

  rt() {
    console.log(`Meme ${this.nome} retweetado na sua rede!`);
  }

}

// aqui estamos criando nosso novo objeto "classe" chamado meme 2 que deriva de Meme
class Meme2 extends Meme {
  // Passamos no construtor as propriedades de Meme e sua nova "tipo"
  constructor(nome, autor, anoCriacao, Linkimg, tipo) {
    //Usamos "super" para acessar as propriedades de classe que derivamos no caso Meme
    super(nome, autor, anoCriacao, Linkimg);
    this.tipo= tipo;
  } 

  // Como nao temos um metodo que mostre nosso tipo criamos um 
  exibirTipo() {
    console.log(`Tipo do Meme ${this.nome}: ${this.tipo}`);
  }
}

const memedoleleo = new Meme2 (
  "memedoleleo",
  "leleo",
   2022,
  "<https://umlink.com/memedoleleo.png>",
  // apos adicionar as propriedades que estamos acostumados adicionamos a nossa nova propriedade
  "millenal"
);

memedoleleo.rt();
memedoleleo.exibirTipo();


Enter fullscreen mode Exit fullscreen mode

5.🌟🐣 POO 中的 Polimorfismo

好吧,承认我的想法是正确的,我认为这是正确的。 O polimorfismo,dentro da POO,允许不同类别的对象在不同的​​情况下发生。这是一个可以使用和灵活使用的方式。您可以明确地使用“喜欢”的方法,将其应用到“meme”类别中,同时使用“meme2”。

😷🫥 JavaScript 中的政治主义示例:

class Meme {
  constructor(nome, autor, anoCriacao, Linkimg) {
    this.nome = nome;
    this.autor= autor;
    this.anoCriacao= anoCriacao;
    this.Linkimg= Linkimg;
  }

  like() {
    console.log(`Meme ${this.nome} curtido na sua rede!`);
  }

  rt() {
    console.log(`Meme ${this.nome} retweetado na sua rede!`);
  }

}

class Meme2 extends Meme {
  constructor(nome, autor, anoCriacao, Linkimg, tipo) {
    super(nome, autor, anoCriacao, Linkimg);
    this.tipo= tipo;
  } 

  exibirTipo() {
    console.log(`Tipo do Meme ${this.nome}: ${this.tipo}`);
  }

  rt() {
    console.log(`Meme ${this.nome} esta sendo curtido pelos ${this.tipo}`);
  }

}

const memedojoao= new Meme(
  "memedojoao",
  "joao",
  2054,
  "<https://umlink.com/memedojoao.png>"
);

const memedoleleo = new Meme2 (
  "memedoleleo",
  "leleo",
   2022,
  "<https://umlink.com/memedoleleo.png>",
  "millenal"
);

// Podemos ver que temos o método rt tanto no meme e meme2, porém com textos diferentes. Para utilizar o polimorfismo, precisamos criar fora das classes uma função que irá receber nossa classe e dentro dela chamar o método rt, que irá variar a escrita de acordo com a classe que for passada <3

function rtMeme(meme) {
  meme.rt();
}


rtMeme(memedojoao);
rtMeme(memedoleleo );


Enter fullscreen mode Exit fullscreen mode

Espero que este artigo tenha conseguido desembaraçar um pouco esses conceitos Complexos de POO para você。 Caso queira se aprofundar ainda mais, indico or repositório 4noobs da He4rt Developers , que para quem nunca ouviu falar é uma das maiores, se não a maior, comunidade do brasil. Além de incentivar o aprendizado, ela contém um repositório com conteúdo sobre várias linguagens deprogramação,范例和结尾关系,包容性 um sobre POO 💜🤝

啊,这就是玉米的历史! Até a próxima!😶‍🌫️😶‍🌫️

文章来源:https://dev.to/leonardorafaeldev/descomplicando-programacao-orientada-a-objetos-poo-com-maizena-e-javascript-512
PREV
如何使用 JavaScript 创建 NFT
NEXT
我最喜欢的资源是兼职自由职业者💎