This repository has been archived by the owner on Aug 23, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
VeiculosTipo.py
75 lines (54 loc) · 3.8 KB
/
VeiculosTipo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# -*- coding: utf-8 -*-
from VeiculoAbstrato import Veiculo
'''
Descrição: Classe que guarda os objetos do tipo Carro e é uma classe derivada da Super Classe Veiculo (Classe abstrata)
Utilização: funciona para diferenciar os tipos de veículos de acordo com suas peculiaridades
Parâmetros:
Ela recebe todos os parâmetros que veículo recebe, mais a quantidade de portas que possui, podendo ser 2 ou 4.
'''
class Carro(Veiculo):
def __init__(self, fabricante, modelo, quantidadePortas, autonomia, ano, placa, renavam, chassi, reservado = False):
Veiculo.__init__(self, fabricante, modelo, autonomia, ano, placa, renavam, chassi, reservado)
self.__quantidadePortas = self.__validaQuantPortas(quantidadePortas)
def __repr__(self):
return "carro\t{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}".format(self.getFabricante(), self.getModelo(), self.getAno(), self.__quantidadePortas, self.getAutonomia(), self.getPlaca(), self.getRenavam(), self.getChassi(), self.getReservado())
# Descrição: O método realiza a validação da quantidade de portas, analisando se possui 2 ou 4, se não aciona um erro
def __validaQuantPortas(self, quantidadePortas):
if int(quantidadePortas) != 2 and int(quantidadePortas) != 4:
raise ValueError("Quantidade inválida, o carro deve possuir 2 ou 4 portas")
return int(quantidadePortas)
'''
Descrição: Classe que guarda os objetos do tipo Van e é uma classe derivada da Super Classe Veiculo (Classe abstrata)
Utilização: funciona para diferenciar os tipos de veículos de acordo com suas peculiaridades
Parâmetros:
Ela recebe todos os parâmetros que veículo recebe, mais a capacidade de pessoas.
'''
class Van(Veiculo):
def __init__(self, fabricante, modelo, capacidadePessoas, autonomia, ano, placa, renavam, chassi, reservado = False):
Veiculo.__init__(self, fabricante, modelo, autonomia, ano, placa, renavam, chassi, reservado)
self.__capacidadePessoas = self.__validaCapacidadePessoas(capacidadePessoas)
def __repr__(self):
return "van\t{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}".format(self.getFabricante(), self.getModelo(), self.getAno(), self.__capacidadePessoas, self.getAutonomia(), self.getPlaca(), self.getRenavam(), self.getChassi(), self.getReservado())
#Descrição: realiza a validação da capacidade de pessoas, analisando se é um número
def __validaCapacidadePessoas(self, capacidade):
if capacidade.isdigit():
return int(capacidade)
raise ValueError("A capacidade de pessoas deve ser um número")
'''
Descrição: Classe que guarda os objetos do tipo Utilitario e é uma classe derivada da
Super Classe Veiculo (Classe abstrata)
Utilização: funciona para diferenciar os tipos de veículos de acordo com suas peculiaridades
Parâmetros:
Ela recebe todos os parâmetros que veículo recebe, mais a capacidade da Caçamba
'''
class Utilitario(Veiculo):
def __init__(self, fabricante, modelo, capacidadeCacamba, autonomia, ano, placa, renavam, chassi, reservado = False):
Veiculo.__init__(self, fabricante, modelo, autonomia, ano, placa, renavam, chassi, reservado)
self.__capacidadeCacamba = self.__validaCapacidadeCacamba(capacidadeCacamba)
def __repr__(self):
return "ute\t{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}".format(self.getFabricante(), self.getModelo(), self.getAno(),self.__capacidadeCacamba, self.getAutonomia(), self.getPlaca(), self.getRenavam(), self.getChassi(), self.getReservado())
#Descrição: realiza a validação da capacidade da Caçamba, analisando se é um número
def __validaCapacidadeCacamba(self, capacidade):
if capacidade.isdigit():
return int(capacidade)
raise ValueError("Capacidade da caçamba deve ser um número")