-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
46 lines (37 loc) · 1.31 KB
/
index.js
File metadata and controls
46 lines (37 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Classe Pessoa
class Pessoa {
constructor(nome, idade) {
this.nome = nome;
this.idade = idade;
this.veiculo = null; // Cada pessoa pode ter um veículo.
}
comprarVeiculo(veiculo) {
this.veiculo = veiculo;
console.log(`${this.nome} comprou um ${veiculo.marca} ${veiculo.modelo}.`);
}
mostrarDetalhes() {
const veiculoDetalhes = this.veiculo
? ` e possui um veículo: ${this.veiculo.mostrarDetalhes()}` //! Operador Ternário
: " e não possui veículo."; //! Se for "null", a const = veiculoDetalhes recebe está string.
return `Pessoa: ${this.nome}, Idade: ${this.idade} anos${veiculoDetalhes}`;
}
}
class Veiculo {
constructor(marca, modelo) {
this.marca = marca;
this.modelo = modelo;
}
mostrarDetalhes() {
return `Veículo: ${this.marca} ${this.modelo}`;
}
}
const pessoa1 = new Pessoa("Maria", 35);
const pessoa2 = new Pessoa("João", 40);
const pessoa3 = new Pessoa("Pedro", 20);
const veiculo1 = new Veiculo("Toyota", "Corolla");
const veiculo2 = new Veiculo("Honda", "Civic");
pessoa1.comprarVeiculo(veiculo1);
pessoa2.comprarVeiculo(veiculo2);
console.log(pessoa1.mostrarDetalhes());
console.log(pessoa2.mostrarDetalhes());
console.log(pessoa3.mostrarDetalhes());