From d9f6074e79c0ad019926de08e950ff6f3e3335e2 Mon Sep 17 00:00:00 2001 From: Ana Carolina Kazue Inada Date: Tue, 12 Jul 2022 19:38:21 -0300 Subject: [PATCH 1/3] template --- .DS_Store | Bin 8196 -> 8196 bytes modulo05/.DS_Store | Bin 10244 -> 10244 bytes modulo05/classes-encapsulamento/.DS_Store | Bin 0 -> 6148 bytes .../aula-classes-encapsulamento/.gitignore | 5 ++ .../aula-classes-encapsulamento/package.json | 29 ++++++++++ .../aula-classes-encapsulamento/request.rest | 13 +++++ .../aula-classes-encapsulamento/src/app.ts | 17 ++++++ .../src/data/Character.ts | 39 ++++++++++++++ .../src/data/CharacterDataBase.ts | 47 ++++++++++++++++ .../src/data/connection.ts | 16 ++++++ .../src/exemplo.ts | 45 ++++++++++++++++ .../aula-classes-encapsulamento/src/index.ts | 51 ++++++++++++++++++ .../aula-classes-encapsulamento/tsconfig.json | 11 ++++ .../classes-encapsulamento/package-lock.json | 6 +++ 14 files changed, 279 insertions(+) create mode 100644 modulo05/classes-encapsulamento/.DS_Store create mode 100644 modulo05/classes-encapsulamento/aula-classes-encapsulamento/.gitignore create mode 100644 modulo05/classes-encapsulamento/aula-classes-encapsulamento/package.json create mode 100644 modulo05/classes-encapsulamento/aula-classes-encapsulamento/request.rest create mode 100644 modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/app.ts create mode 100644 modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/data/Character.ts create mode 100644 modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/data/CharacterDataBase.ts create mode 100644 modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/data/connection.ts create mode 100644 modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/exemplo.ts create mode 100644 modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/index.ts create mode 100644 modulo05/classes-encapsulamento/aula-classes-encapsulamento/tsconfig.json create mode 100644 modulo05/classes-encapsulamento/package-lock.json diff --git a/.DS_Store b/.DS_Store index fd9167c6660f5ffccae4ac3810565cda46df74cc..db9e87a97236fbbaf24ae11fddd1fc6431a70990 100644 GIT binary patch delta 220 zcmZp1XmQxEUy$9xQb)nq$Y}C0!Dz-qla++jSVbiyr6ec&3Khx53-A{w7v<;V1mqWI zmSpDVMMkF=Wv2M2r4^@^Oui%JD;<%UoSzq*S(OS>nvq}b3FHP8rIux;mQQvOw#W#{ z%g;;YRCWkp00T}24hC%oM+RSpFotY~Du#&+a~ak%>}EK@aF^jd!%s$bMgc}8Mr}qD wMq5UEMh`|$#wf;k#stPph;}AM2+be^rJ)pK*5voX>o!l~DP`WwF7cNg0A}bnJ^%m! delta 238 zcmZp1XmQxEUy$9*Ku5vY)Nt}K!Dz;_la++jSS2K-q+}-h3Khvlrx#_W_@|{6rP!I;UI1<}vM2sK9*N<%5eVjzQqA(tVaA%&rI@(1BX Ko9Bw8a{~YX_c*rz diff --git a/modulo05/.DS_Store b/modulo05/.DS_Store index 64c041f387441bd7f8f5388a503cd01fb7d5b19b..69244c1dc571955f2df44e99e7725f66ee4ac521 100644 GIT binary patch delta 244 zcmZn(XbG6$&nUVvU^hRb=wu!N|H<sgU>Wn~2O>Y1CQC@TY@Q(TpKUX{!Y`JI6?~Jg3-1NWSTF$q%@;wT delta 233 zcmZn(XbG6$&nUJrU^hRb*km37e@3Cn0s``^#SDcEIg>94$WM+I@R(dGWWG5}sEpZD zj3JF7hoO|Af+3$lmm!5A6-*`qS@{gbKz0&CB11AmHc&i|A;mK%KRGEUKZ${XL4bjQ z@h6bh`ws>T44Y4i{$}D902-DF)L6ohI9X6kg^xuZSi}byOkc08%9`EA^T}ND-py#e{O`wMK9N6zs+V3)dUP4mm`Te1;$5 zOZXl7W_E)>g-cZ-QO#JhZ#_FRmfu*r9wIX1#q<$TpNJwTW2cAV55nuLm!uOcTRCUp!Wyrvv&ok(Q zA0n7tIcv78XCdpiY*rR^GaP<5ovrSz+uPB0v=hBcKDuSnq|Krpr}H;__tLpC+sxDK zRgo_z{kzXy)uct0&n2Lk=5TrYx~QgZId+R`T1#x=7ouL&oAh^AtI^ZLfjt_bAhE4WORz+n% z8BhkUkAbkmL_61)QZp$7%D@d_fcFOrWsC#19%bvmAT0o}3$qC3{4>ZgHeejE^@tUS z@u5H;YC?-)d^qej_{9NRk3O7CXg*AMvI!lEk*6cS6?ZbRM;(;`W#D%Pxc7tf`TT$J z_x@j;bWjGAft$&I=^iJ?W4v29TQ9vOpS2eH9?HUgt;e4sn8;BKUp|U=p(3zbo&e*3 Ttw&fO`XeAT=%5VzQwA;o5J7Ky literal 0 HcmV?d00001 diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/.gitignore b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/.gitignore new file mode 100644 index 0000000..a7dccfc --- /dev/null +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +build/ +.env +.DS_Store +package-lock.json diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/package.json b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/package.json new file mode 100644 index 0000000..6712e14 --- /dev/null +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/package.json @@ -0,0 +1,29 @@ +{ + "name": "plantao", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "dev": "ts-node-dev ./src/index.ts", + "start": "tsc && node ./build/index.js", + "exemplo": "ts-node-dev ./src/exemplo.ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@types/cors": "^2.8.12", + "@types/express": "^4.17.13", + "@types/knex": "^0.16.1", + "@types/node": "^17.0.38", + "@types/uuid": "^8.3.4", + "cors": "^2.8.5", + "dotenv": "^16.0.1", + "express": "^4.18.1", + "knex": "^2.1.0", + "mysql": "^2.18.1", + "ts-node-dev": "^2.0.0", + "typescript": "^4.7.2", + "uuid": "^8.3.2" + } +} diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/request.rest b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/request.rest new file mode 100644 index 0000000..da9cf01 --- /dev/null +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/request.rest @@ -0,0 +1,13 @@ +GET http://localhost:3003/character + +### + +POST http://localhost:3003/character +Content-Type: application/json + +{ + "name": "Rick Sanches", + "team": "Vasco", + "age": 35 +} + diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/app.ts b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/app.ts new file mode 100644 index 0000000..baf9547 --- /dev/null +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/app.ts @@ -0,0 +1,17 @@ +import express from "express"; +import cors from "cors" +import { AddressInfo } from "net"; + +export const app = express(); +app.use(express.json()); +app.use(cors()) + + +const server = app.listen(process.env.PORT || 3003, () => { + if (server) { + const address = server.address() as AddressInfo; + console.log(`Server is running in http://localhost:${address.port}`); + } else { + console.error(`Failure upon starting server.`); + } +});; \ No newline at end of file diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/data/Character.ts b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/data/Character.ts new file mode 100644 index 0000000..045600a --- /dev/null +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/data/Character.ts @@ -0,0 +1,39 @@ +// type Character = { +// id: string, +// name: string, +// team: string, +// age: number +// } + +export class Character { + private id: string + private name: string + private team: string + private age: number + + constructor(id: string, name: string, team: string, age: number) { + this.id = id, + this.name = name, + this.team = team, + this.age = age + } + + public getId():string { + return this.id + } + + public getName():string { + return this.name + } + + public getTeam():string { + return this.team + } + + public getAge():number{ + return this.age + } +} + + + diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/data/CharacterDataBase.ts b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/data/CharacterDataBase.ts new file mode 100644 index 0000000..32f4504 --- /dev/null +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/data/CharacterDataBase.ts @@ -0,0 +1,47 @@ +import knex from "knex"; +import dotenv from "dotenv"; +import { Character } from "./Character"; + +dotenv.config(); + +export class CharacterDataBase { + + private connection = knex({ + client: "mysql", + connection: { + host: process.env.DB_HOST, + port: 3306, + user: process.env.DB_USER, + password: process.env.DB_PASS, + database: process.env.DB_SCHEMA + } + }); + + public getAll = async () => { + try { + const result = await this.connection('Characters') + .select('*') + + return result + } catch (error:any) { + throw new Error(error.sqlMessage || error.message); + } + } + + public create = async (character :Character) => { + try { + await this.connection('Characters') + .insert({ + id: character.getId(), + name: character.getName(), + team: character.getTeam(), + age: character.getAge() + }) + // Ou + // .insert(character) + } catch (error:any) { + throw new Error(error.sqlMessage || error.message); + } + } +} + diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/data/connection.ts b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/data/connection.ts new file mode 100644 index 0000000..6b0e2b9 --- /dev/null +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/data/connection.ts @@ -0,0 +1,16 @@ +import knex from "knex"; +import dotenv from "dotenv"; + +dotenv.config(); + + +export const connection = knex({ + client: "mysql", + connection: { + host: process.env.DB_HOST, + port: 3306, + user: process.env.DB_USER, + password: process.env.DB_PASS, + database: process.env.DB_SCHEMA + } +}); \ No newline at end of file diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/exemplo.ts b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/exemplo.ts new file mode 100644 index 0000000..d22997a --- /dev/null +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/exemplo.ts @@ -0,0 +1,45 @@ +class Dog { + private nome: string + private peso: number + private idade: number + + + constructor(nome: string, peso: number, idade: number){ + this.nome = nome, + this.peso = peso, + this.idade = idade + } + + public latir = () :void => { + console.log(`Au Au, meu nome é ${this.nome}, au au!`) + } + + public pegarNome = () :string => { + return this.nome + } + + public pegarIdade = () :number => { + return this.idade + } + + public mudarNome = (novoNome:string) => { + this.nome = novoNome + } + + public comer = (quantidade: number) :void => { + const novoPeso = this.peso + quantidade + console.log(`Estou comendo, au au! E meu peso agora é ${novoPeso}`) + } +} + +const cachorroDoPh = new Dog("Cacau", 7, 8) +const cachorroDaPatricia = new Dog("Zeus", 10, 8) +cachorroDoPh.mudarNome("Vasco") + + + +console.log(cachorroDoPh.pegarNome()) + + + + diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/index.ts b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/index.ts new file mode 100644 index 0000000..0526414 --- /dev/null +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/index.ts @@ -0,0 +1,51 @@ +import { Request, Response } from "express"; +import { app } from "./app"; +import { Character } from "./data/Character"; +import { CharacterDataBase } from "./data/CharacterDataBase"; +import { connection } from "./data/connection"; + + +app.get('/character', async (req: Request, res: Response) => { + try { + const characterDB = new CharacterDataBase() + const result = await characterDB.getAll() + + res.status(200).send(result) + + } catch (error:any) { + res.status(400).send(error.sqlMessage || error.message) + } +}) + +app.post('/character', async (req: Request, res: Response) => { + try { + const {name, team, age} = req.body + const id = Math.random().toString() + + const newCharacter :Character = new Character(id, name, team, age) + const characterDB = new CharacterDataBase() + + await characterDB.create(newCharacter) + + res.status(200).send("Usuário Criado!") + + } catch (error:any) { + res.status(400).send(error.sqlMessage || error.message) + + } +}) + + + + + + + + + + + + + + + diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/tsconfig.json b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/tsconfig.json new file mode 100644 index 0000000..f11b2cf --- /dev/null +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, + "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, + "outDir": "./build" /* Redirect output structure to the directory. */, + "rootDir": "./src" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, + "strict": true /* Enable all strict type-checking options. */, + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + } + } \ No newline at end of file diff --git a/modulo05/classes-encapsulamento/package-lock.json b/modulo05/classes-encapsulamento/package-lock.json new file mode 100644 index 0000000..7e8cf65 --- /dev/null +++ b/modulo05/classes-encapsulamento/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "classes-encapsulamento", + "lockfileVersion": 2, + "requires": true, + "packages": {} +} From b0be01fecc8c51c1b24e250e583e5f5337190333 Mon Sep 17 00:00:00 2001 From: Ana Carolina Kazue Inada Date: Tue, 12 Jul 2022 23:23:45 -0300 Subject: [PATCH 2/3] template --- .../src/exemplo.ts | 110 ++++++++++++------ 1 file changed, 74 insertions(+), 36 deletions(-) diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/exemplo.ts b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/exemplo.ts index d22997a..7774cec 100644 --- a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/exemplo.ts +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/exemplo.ts @@ -1,45 +1,83 @@ -class Dog { - private nome: string - private peso: number - private idade: number - - - constructor(nome: string, peso: number, idade: number){ - this.nome = nome, - this.peso = peso, - this.idade = idade - } - - public latir = () :void => { - console.log(`Au Au, meu nome é ${this.nome}, au au!`) - } - - public pegarNome = () :string => { - return this.nome - } - - public pegarIdade = () :number => { - return this.idade - } - - public mudarNome = (novoNome:string) => { - this.nome = novoNome - } - - public comer = (quantidade: number) :void => { - const novoPeso = this.peso + quantidade - console.log(`Estou comendo, au au! E meu peso agora é ${novoPeso}`) - } +// EXERCÍCIO 1 + +// A. O construtuctor permite para parâmetros a uma classe quando instanciada. + +// B. Nunhuma vez foi impressa no terminal, não tem o type transsaction e não foi passado parâmetros +class UserAccount { + private cpf: string; + private name: string; + private age: number; + private balance: number = 0; + private transactions: Transaction[] = []; + + constructor(cpf: string, name: string, age: number) { + console.log("Chamando o construtor da classe UserAccount"); + this.cpf = cpf; + this.name = name; + this.age = age; + } + public getNome = (): string => { + return this.name; + }; + public getcpf = (): string => { + return this.cpf; + }; + public getidade = (): number => { + return this.age; + }; } -const cachorroDoPh = new Dog("Cacau", 7, 8) -const cachorroDaPatricia = new Dog("Zeus", 10, 8) -cachorroDoPh.mudarNome("Vasco") +// C. Criando métodos públicos +const cadastroCliente = new UserAccount("876980860", "Fulana", 45); +console.log( + cadastroCliente.getNome(), + cadastroCliente.getcpf(), + cadastroCliente.getidade() +); + +// EXERCÍCIO 2 + +type Transaction = { + description: string; + value: number; + date: string; +}; + +// class Dog { +// private nome: string +// private peso: number +// private idade: number + +// constructor(nome: string, peso: number, idade: number){ +// this.nome = nome, +// this.peso = peso, +// this.idade = idade +// } +// public latir = () :void => { +// console.log(`Au Au, meu nome é ${this.nome}, au au!`) +// } +// public pegarNome = () :string => { +// return this.nome +// } -console.log(cachorroDoPh.pegarNome()) +// public pegarIdade = () :number => { +// return this.idade +// } +// public mudarNome = (novoNome:string) => { +// this.nome = novoNome +// } +// public comer = (quantidade: number) :void => { +// const novoPeso = this.peso + quantidade +// console.log(`Estou comendo, au au! E meu peso agora é ${novoPeso}`) +// } +// } +// const cachorroDoPh = new Dog("Cacau", 7, 8) +// const cachorroDaPatricia = new Dog("Zeus", 10, 8) +// cachorroDoPh.mudarNome("Vasco") +// console.log(cachorroDoPh.pegarNome()) From b2b906eea82e6bf8ae706ed632080c809674d524 Mon Sep 17 00:00:00 2001 From: Ana Carolina Kazue Inada Date: Wed, 13 Jul 2022 11:13:34 -0300 Subject: [PATCH 3/3] =?UTF-8?q?limpando=20o=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aula-classes-encapsulamento/package.json | 3 +- .../src/exemplo.ts | 83 -------------- .../aula-classes-encapsulamento/src/index.ts | 106 +++++++++--------- 3 files changed, 56 insertions(+), 136 deletions(-) delete mode 100644 modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/exemplo.ts diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/package.json b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/package.json index 6712e14..9960b48 100644 --- a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/package.json +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/package.json @@ -5,8 +5,7 @@ "main": "index.js", "scripts": { "dev": "ts-node-dev ./src/index.ts", - "start": "tsc && node ./build/index.js", - "exemplo": "ts-node-dev ./src/exemplo.ts" + "start": "tsc && node ./build/index.js" }, "keywords": [], "author": "", diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/exemplo.ts b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/exemplo.ts deleted file mode 100644 index 7774cec..0000000 --- a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/exemplo.ts +++ /dev/null @@ -1,83 +0,0 @@ -// EXERCÍCIO 1 - -// A. O construtuctor permite para parâmetros a uma classe quando instanciada. - -// B. Nunhuma vez foi impressa no terminal, não tem o type transsaction e não foi passado parâmetros -class UserAccount { - private cpf: string; - private name: string; - private age: number; - private balance: number = 0; - private transactions: Transaction[] = []; - - constructor(cpf: string, name: string, age: number) { - console.log("Chamando o construtor da classe UserAccount"); - this.cpf = cpf; - this.name = name; - this.age = age; - } - public getNome = (): string => { - return this.name; - }; - public getcpf = (): string => { - return this.cpf; - }; - public getidade = (): number => { - return this.age; - }; -} - -// C. Criando métodos públicos -const cadastroCliente = new UserAccount("876980860", "Fulana", 45); -console.log( - cadastroCliente.getNome(), - cadastroCliente.getcpf(), - cadastroCliente.getidade() -); - -// EXERCÍCIO 2 - -type Transaction = { - description: string; - value: number; - date: string; -}; - -// class Dog { -// private nome: string -// private peso: number -// private idade: number - -// constructor(nome: string, peso: number, idade: number){ -// this.nome = nome, -// this.peso = peso, -// this.idade = idade -// } - -// public latir = () :void => { -// console.log(`Au Au, meu nome é ${this.nome}, au au!`) -// } - -// public pegarNome = () :string => { -// return this.nome -// } - -// public pegarIdade = () :number => { -// return this.idade -// } - -// public mudarNome = (novoNome:string) => { -// this.nome = novoNome -// } - -// public comer = (quantidade: number) :void => { -// const novoPeso = this.peso + quantidade -// console.log(`Estou comendo, au au! E meu peso agora é ${novoPeso}`) -// } -// } - -// const cachorroDoPh = new Dog("Cacau", 7, 8) -// const cachorroDaPatricia = new Dog("Zeus", 10, 8) -// cachorroDoPh.mudarNome("Vasco") - -// console.log(cachorroDoPh.pegarNome()) diff --git a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/index.ts b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/index.ts index 0526414..9123a03 100644 --- a/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/index.ts +++ b/modulo05/classes-encapsulamento/aula-classes-encapsulamento/src/index.ts @@ -1,51 +1,55 @@ -import { Request, Response } from "express"; -import { app } from "./app"; -import { Character } from "./data/Character"; -import { CharacterDataBase } from "./data/CharacterDataBase"; -import { connection } from "./data/connection"; - - -app.get('/character', async (req: Request, res: Response) => { - try { - const characterDB = new CharacterDataBase() - const result = await characterDB.getAll() - - res.status(200).send(result) - - } catch (error:any) { - res.status(400).send(error.sqlMessage || error.message) - } -}) - -app.post('/character', async (req: Request, res: Response) => { - try { - const {name, team, age} = req.body - const id = Math.random().toString() - - const newCharacter :Character = new Character(id, name, team, age) - const characterDB = new CharacterDataBase() - - await characterDB.create(newCharacter) - - res.status(200).send("Usuário Criado!") - - } catch (error:any) { - res.status(400).send(error.sqlMessage || error.message) - - } -}) - - - - - - - - - - - - - - - +// EXERCÍCIO 1 + +// A. O construtuctor permite para parâmetros a uma classe quando instanciada. + +// B. Nunhuma vez foi impressa no terminal, não tem o type transsaction e não foi passado parâmetros +class UserAccount { + private cpf: string; + private name: string; + private age: number; + private balance: number = 0; + private transactions: Transaction[] = []; + + constructor(cpf: string, name: string, age: number) { + console.log("Chamando o construtor da classe UserAccount"); + this.cpf = cpf; + this.name = name; + this.age = age; + } + // EXERCÍCIO 2 + public getNome = (): string => { + return this.name; + }; + public getcpf = (): string => { + return this.cpf; + }; + public getidade = (): number => { + return this.age; + }; +} + +// C. Criando métodos públicos +const cadastroCliente = new UserAccount("876980860", "Fulana", 45); +console.log( + cadastroCliente.getNome(), + cadastroCliente.getcpf(), + cadastroCliente.getidade() +); + +// EXERCÍCIO 2 + +type Transaction = { + description: string; + value: number; + date: string; +}; + +// EXERCÍCIO 3 + +class Bank { + private accounts: UserAccount[]; + + constructor(accounts: UserAccount[]) { + this.accounts = accounts; + } +}