-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQuarto.java
85 lines (75 loc) · 2.14 KB
/
Quarto.java
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
76
77
78
79
80
81
82
83
84
85
/**
* Classe abstrata que representa
* um quarto default do Hotel
* @author Hugo Gabriel
*
*/
public abstract class Quarto {
private int numeroDoQuarto;
private String hospede;
/**
* Cria um quarto
* @param hospede
* O nome completo do hospede deste quarto
* @param numeroDoQuarto
* O numero relativo ao quarto
* @throws Exception
* O hospede deve ser identificado no minimo com nome e sobrenome
* O numero do quarto deve ser sempre inteiro positivo
*/
public Quarto(String hospede, int numeroDoQuarto) throws Exception{
if (numeroDoQuarto <= 0)
throw new Exception("Numero do Quarto invalido");
if (hospede == null || hospede.split(" ").length < 2)
throw new Exception("Hospede invalido");
this.hospede = hospede;
this.numeroDoQuarto = numeroDoQuarto;
}
/**
* Busca o numero associado ao quarto
* @return
* O numero do quarto
*/
public int getNumeroDoQuarto(){ return numeroDoQuarto; }
/**
* Busca o nome do hospede associado ao quarto
* @return
* O nome do cliente
*/
public String getHospede(){ return hospede; }
/**
* Verifica se o quarto comporta um dado numero de pessoas
* @param numeroDePessoas
* Quantidade de pessoas que se deseja hospedar no quarto
* @return
* false, se a capacidade maxima do quarto for excedida
* true, se o quarto suportar o numero de pessoas desejado
*/
public abstract boolean isCapacidadeValida(int numeroDePessoas);
public abstract double valor();
/**
* Fornece uma representacao do quarto como String
*/
@Override
public String toString() {
return "[Numero do Quarto = " + numeroDoQuarto + ", Hospede = "
+ hospede + "]";
}
/**
* Verifica se o quarto e um objeto dado como parametro sao iguais
*
* Dois objetos da classe Quarto sao iguais se possuem
* mesmo numero do quarto e mesmo hospede
* @param obj
* O objeto a ser comparado
* @return
* true, se os objetos forem iguais
*/
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Quarto))
return false;
Quarto q = (Quarto) obj;
return getNumeroDoQuarto()== q.getNumeroDoQuarto() && getHospede().equals(q.getHospede());
}
}