diff --git a/modulo4/classes-encapsulamento/classes-encapsulamento-template/.gitignore b/modulo4/classes-encapsulamento/classes-encapsulamento-template/.gitignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/modulo4/classes-encapsulamento/classes-encapsulamento-template/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/modulo4/classes-encapsulamento/classes-encapsulamento-template/package-lock.json b/modulo4/classes-encapsulamento/classes-encapsulamento-template/package-lock.json new file mode 100644 index 0000000..860abff --- /dev/null +++ b/modulo4/classes-encapsulamento/classes-encapsulamento-template/package-lock.json @@ -0,0 +1,35 @@ +{ + "name": "template", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "template", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "typescript": "^4.5.2" + } + }, + "node_modules/typescript": { + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + } + }, + "dependencies": { + "typescript": { + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==" + } + } +} diff --git a/modulo4/classes-encapsulamento/classes-encapsulamento-template/package.json b/modulo4/classes-encapsulamento/classes-encapsulamento-template/package.json new file mode 100644 index 0000000..0e287f0 --- /dev/null +++ b/modulo4/classes-encapsulamento/classes-encapsulamento-template/package.json @@ -0,0 +1,15 @@ +{ + "name": "template", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "start": "tsc && node ./build/index.js", + "build": "tsc" + }, + "author": "", + "license": "ISC", + "dependencies": { + "typescript": "^4.5.2" + } +} diff --git a/modulo4/classes-encapsulamento/classes-encapsulamento-template/src/index.ts b/modulo4/classes-encapsulamento/classes-encapsulamento-template/src/index.ts new file mode 100644 index 0000000..823e6b0 --- /dev/null +++ b/modulo4/classes-encapsulamento/classes-encapsulamento-template/src/index.ts @@ -0,0 +1,58 @@ +import { UserAccountType, TransactionType} from "./type"; + +//Exercício 1-a) Para que serve o construtor +// dentro de uma classe e como fazemos para chamá-lo? +// R: É um tipo de função que recebe paramentros. + + +//Exercício 1-b) Copie o código abaixo para o seu exercício de hoje; +// crie uma instância dessa classe (dê o nome, cpf e idade que você quiser). +// Quantas vezes a mensagem "Chamando o construtor da classe User" foi impressa no terminal? +// R: + +class UserAccount { + private cpf: string; + private name: string; + private age: number; + private balance: number = 0; + private transactions: TransactionType[] = []; + + 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 getCpf(){ + console.log(this.cpf) + } +} + const gabriel = new UserAccount('245.666.239-12', 'Gabriel', 28) + + + +//Exercício 1-c) Como conseguimos ter acesso às propriedades privadas de uma classe? +//R: criando um metodo get + +// Exercício 2 - + +class Transaction { + private date: string; + private value: number; + private description: string; + + constructor(date: string, value: number, description: string) { + this.date = date; + this.value = value; + this.description = description + } + } + + diff --git a/modulo4/classes-encapsulamento/classes-encapsulamento-template/src/type.ts b/modulo4/classes-encapsulamento/classes-encapsulamento-template/src/type.ts new file mode 100644 index 0000000..1208bd5 --- /dev/null +++ b/modulo4/classes-encapsulamento/classes-encapsulamento-template/src/type.ts @@ -0,0 +1,13 @@ +export type UserAccountType = { + cpf: string, + name: string, + age: number, + balance: number, + transactions: TransactionType[] + } + +export type TransactionType = { + description: string, + value: number, + date: string + } \ No newline at end of file diff --git a/modulo4/classes-encapsulamento/classes-encapsulamento-template/tsconfig.json b/modulo4/classes-encapsulamento/classes-encapsulamento-template/tsconfig.json new file mode 100644 index 0000000..2912a22 --- /dev/null +++ b/modulo4/classes-encapsulamento/classes-encapsulamento-template/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "target": "es6", + "sourceMap": true, + "outDir": "./build", + "removeComments": true + } +}