main.dart
import 'viagem.dart';
import 'transporte.dart';
void main() {
Viagem viagemFerias = Viagem(locomocao: Transporte.aviao, dinheiro: 1200);
viagemFerias.escolherMeioTransporte(viagemFerias.locomocao);
print('Código de desconto: ${viagemFerias.returnCodigo()}');
print(
'O valor final da viagem é: R\$${Viagem.codigoDescontoViagem(viagemFerias.dinheiro)}');
viagemFerias.visitar('Porto Alegre');
viagemFerias.registrarPrecosVisitas('Porto Alegre', 1500);
viagemFerias.visitar('Rio de Janeiro');
viagemFerias.registrarPrecosVisitas('Rio de Janeiro', 2200);
print(viagemFerias.registrosVisitados);
print(viagemFerias.registrarPreco);
print(viagemFerias.consultarLocaisVisitados);
viagemFerias.visitar('São Paulo');
viagemFerias.visitar('Salvador');
viagemFerias.alterarLocaisVisitados = 15;
print(viagemFerias.consultarLocaisVisitados);
}
viagem.dart
import 'transporte.dart';
class Viagem {
static String codigoViagem = 'JD23JDF';
double dinheiro = 0;
Transporte locomocao;
Set<String> registrosVisitados = <String>{};
Map<String, dynamic> registrarPreco = {};
int _totalLocaisVisitados = 0;
Viagem({required this.locomocao, required this.dinheiro});
returnCodigo() {
return codigoViagem;
}
void escolherMeioTransporte(Transporte locomocao) {
switch (locomocao) {
case Transporte.carro:
print('Vou de carro.');
break;
case Transporte.bike:
print('Vou de bike.');
break;
case Transporte.moto:
print('Vou de moto.');
break;
case Transporte.aviao:
print('Vou de avião.');
break;
case Transporte.andando:
print('Vou andando.');
break;
default:
print('Inválido!');
}
}
void visitar(String localVisita) {
registrosVisitados.add(localVisita);
_totalLocaisVisitados++;
}
void registrarPrecosVisitas(String local, dynamic valor) {
registrarPreco[local] = valor;
}
static double codigoDescontoViagem(double dinheiro) {
double taxa = 0.25;
return dinheiro * taxa;
}
int get consultarLocaisVisitados {
return _totalLocaisVisitados;
}
set alterarLocaisVisitados(int novaQnt) {
if (novaQnt < 10) {
_totalLocaisVisitados = novaQnt;
} else {
print('Não é possível visitar tantos locais em tão pouco tempo.');
}
}
}
transporte.dart
enum Transporte { carro, bike, moto, aviao, andando }