CODIGO AZUL

This commit is contained in:
Luiz F Picolo 2024-05-27 21:48:24 -04:00
commit 10a916b119
5 changed files with 99 additions and 0 deletions

10
index.js Normal file
View File

@ -0,0 +1,10 @@
import PessoaFisica from "./pessoa_fisica.js";
import PessoaJuridica from "./pessoa_juridica.js";
const pessoa_fisica = new PessoaFisica("Picolo Fisico");
pessoa_fisica.cpf = "000000000";
console.log(pessoa_fisica.mostrarDados())
const pessoa_juridica = new PessoaJuridica("Picolo Jurídico");
pessoa_juridica.cnpj = "111111111";
console.log(pessoa_juridica.mostrarDados())

13
package.json Normal file
View File

@ -0,0 +1,13 @@
{
"name": "poo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "Luiz Picolo <luizpicolo@gmail.com>",
"license": "MIT"
}

30
pessoa.js Normal file
View File

@ -0,0 +1,30 @@
class Pessoa {
#_nome;
#_sobrenome;
constructor(nome){
if (this.constructor === Pessoa){
throw new Error("Classe abstrata não pode ser instanciada diretamente.");
}
this.#_nome = nome
}
set sobrenome(sobrenome){
this.#_sobrenome = sobrenome
}
get sobrenome(){
return this.#_sobrenome
}
get nome(){
return this.#_nome
}
mostrarDados(){
throw new Error("Esse método deve ser implementado");
}
}
export default Pessoa;

23
pessoa_fisica.js Normal file
View File

@ -0,0 +1,23 @@
import Pessoa from './pessoa.js'
class PessoaFisica extends Pessoa {
#_cpf
constructor(nome) {
super(nome)
}
set cpf(cpf) {
this.#_cpf = cpf
}
get cpf() {
return this.#_cpf
}
mostrarDados(){
return `Meus dados são: ${this.nome} e ${this.cpf}`
}
}
export default PessoaFisica

23
pessoa_juridica.js Normal file
View File

@ -0,0 +1,23 @@
import Pessoa from './pessoa.js'
class PessoaJuridica extends Pessoa {
#_cnpj
constructor(nome) {
super(nome)
}
set cnpj(cnpj) {
this.#_cnpj = cnpj
}
get cnpj() {
return this.#_cnpj
}
mostrarDados(){
return `Meus dados são: ${this.nome} e ${this.cnpj}`
}
}
export default PessoaJuridica