Cursos / Redes de Computadores / Programação Orientada a Objetos / Aula
{
"compilerOptions": {
"target": "es5",
"outDir": "app/js",
"noEmitOnError": true,
"strictNullChecks": true
},
"include": [
"app/ts/**/*"
]
}
import { Veiculo } from "./veiculo";
export class Carro extends Veiculo {
public constructor(
fabricante: string,
modelo: string,
cor: string,
potencia: number,
placa: string = "Sem placa",
private _numPortas: number = 2) {
super(fabricante,modelo,cor,placa,potencia);
if (_numPortas < 2) {
this._numPortas = 2
}
}
public ligar() {
console.log("Carro ligado ...")
}
public get numPortas(): number {
return this._numPortas;
}
public set numPortas(numPortas: number) {
if (numPortas < 2) {
this._numPortas = 2;
} else {
this._numPortas = numPortas;
}
}
public exibirInformacoes() {
console.log(`
INFORMAÇÕES:
Fabricante: ${this.fabricante},
Modelo: ${this.modelo},
Cor: ${this.cor},
Placa: ${this.placa},
Portas: ${this._numPortas},
Potência: ${this._motor.potencia}
`)
}
}
export class Moto extends Veiculo{
}
import { Direcao } from "./direcao";
import { Motor } from "./motor";
export class Veiculo{
protected _motor: Motor
protected _direcao: Direcao;
public constructor(
readonly fabricante:string,
private _modelo:string,
private _cor: string,
private _placa: string = "Sem placa",
potencia: number){
this._motor = new Motor(potencia);
this._direcao = new Direcao();
}
public get modelo(){
return this._modelo;
}
public set modelo(modelo: string){
this._modelo = modelo;
}
public get cor(){
return this._cor;
}
public set cor(cor: string){
this._cor = cor;
}
public get placa(){
return this._placa;
}
public set placa(placa: string){
this._placa = placa;
}
public ligar(){
console.log("Veiculo ligado ...")
}
public get motor() : Motor {
return this._motor
}
public set motor(motor : Motor) {
this._motor = motor;
}
public get direcao() : Direcao {
return this._direcao;
}
public set direcao(direcao : Direcao) {
this._direcao = direcao;
}
public exibirInformacoes() {
console.log(`
INFORMAÇÕES:
Fabricante: ${this.fabricante},
Modelo: ${this.modelo},
Cor: ${this.cor},
Placa: ${this.placa},
Potência: ${this._motor.potencia}
`)
}
}
Versão 5.3 - Todos os Direitos reservados