面向对象 (POO) 和 JavaScript 的复杂程序
索引
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();
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();
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 );
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