-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOrientacao.java
executable file
·170 lines (135 loc) · 4.66 KB
/
Orientacao.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
package novo_tp_poo;
/**
* Classe Orientacao.
*
* @author Grupo22
* @version 1.0
*/
import java.util.*;
public class Orientacao extends Actividade implements Altimetria, Meteorologia, Distancia, Tempo
{
private String desporto;
private String meteorologia;
private double distancia;
private double velocidade;
private double calorias;
private double duracao; //minutos
private double subiu;
private double desceu;
private double altitudeMax;
private double altitudeMin;
/**
* Construtores
* 1 - Parametrizado
*/
public Orientacao(String desp, double d, double km, double min, double amax, double des, double sub, String m)
{
this.desporto = desp;
this.duracao = d;
this.calorias = calculaCalorias();
this.distancia = km;
this.altitudeMin = min;
this.altitudeMax = amax;
this.velocidade = calculaVelocidade();
this.desceu = des;
this.subiu = sub;
this.meteorologia = m;
}
/**
* 2 - Copia
*/
public Orientacao(Orientacao a) {
this.desporto = a.getDesporto();
this.meteorologia = a.getMeteorologia();
this.distancia = a.getDistancia();
this.velocidade = a.getVelocidade();
this.duracao = a.getDuracao();
this.calorias = a.getCalorias();
this.subiu = a.getSubiu();
this.desceu = a.getDesceu();
this.altitudeMax = a.getAltitudeMax();
this.altitudeMin = a.getAltitudeMin();
}
/**
* Metodos
* 1 - Gets
*/
public String getDesporto() {return this.desporto;}
public String getMeteorologia() {return this.meteorologia;}
public double getDistancia() {return this.distancia;}
public double getVelocidade() {return this.velocidade;}
public double getDuracao() {return this.duracao;}
public double getCalorias() {return this.calorias;}
public double getSubiu() {return this.subiu;}
public double getDesceu() {return this.desceu;}
public double getAltitudeMax() {return this.altitudeMax;}
public double getAltitudeMin() {return this.altitudeMin;}
/**
* 2 - Sets
*/
public void setDesporto(String d) {this.desporto = d;}
public void setMeteorologia(String m) {this.meteorologia = m;}
public void setDistancia(double d) {this.distancia = d;}
public void setVelocidade(double v) {this.velocidade = v;}
public void setDuracao(double d) {this.duracao = d;}
public void setCalorias(double c) {this.calorias = c;}
public void setSubiu(double s) {this.subiu = s;}
public void setDesceu(double d) {this.desceu = d;}
public void setAltitudeMax(double a) {this.altitudeMax = a;}
public void setAltitudeMin(double a) {this.altitudeMin = a;}
/**
* 3 - Outros
*/
public double calculaCalorias(){
if (this.velocidade <= 6.5) {this.calorias = 0.083 * this.duracao/** * (Peso)*/; return this.calorias;}
else {this.calorias = 0.111 * this.duracao /*** (Peso)*/; return this.calorias;}
}
public double calculaVelocidade(){
this.velocidade = this.distancia/this.duracao;
return this.velocidade*60;
}
public String minToHoras(){
int hora = 0, min = 0;
hora = (int)this.duracao/60;
min = (int)this.duracao % 60;
return String.format("%d:%dh", hora, min);
}
/**
* Funcao que se actividades sao do mesmo desporto
*/
public boolean mesmoDesporto(Actividade a) {
return (a instanceof Orientacao);
}
/**
* 4 - Equals
*/
public boolean equals (Object o) {
if(this == o) {
return true;
}
if((o == null) || (this.getClass() != o.getClass())) {
return false;
} else {
Orientacao c = (Orientacao) o;
return (super.getInicio().equals(c.getInicio()));
}
}
/**
* 5 - Clone
*/
public Orientacao clone() {
return new Orientacao(this);
}
/**
* 6 - toString
*/
public String toString() {
return new String ("Desporto: " + this.getDesporto() + "" + ".");
}
/**
* toString mais detalhado
*/
public String toStringD() {
return new String("Desporto: " + this.getDesporto() + "\nMeteo: " + this.getMeteorologia() + "\nDuracao: " + this.getDuracao() + "\nDistancia: " + this.getDistancia() + "\nCalorias: " + this.getCalorias() + "\nVelocidade média: " + this.getVelocidade());
}
}