Classe Circulo:
import static java.lang.Math.PI;
public class Circulo {
// Variáveis de Instância
private double raio;
// o raio do círculo
private Ponto2D centro; // ponto que define o centro do círculo
// Construtores de circulos
public Circulo() { raio = 1.0; centro = new Ponto2D(); }
c1
Circulo
1.0
0.0
0.0
Ponto
c1 = new Circulo();
public Circulo(double r, double cx, double cy) {
raio = r; centro = new Ponto2D(cx, cy);
}
c1
Circulo
5.0
7.0
2.5
Ponto
c1 = new Circulo(5.0, 7.0, 2.5);
© F. Mário Martins 2007
Classe Circulo correcta por imagens 1
public Circulo(double r, Ponto2D pc) {
raio = r; centro = pc.clone();
}
c1
Circulo
-2.0
3.0
6.0
Ponto
-2.0
6.0
Ponto
p1
c1 = new Circulo(3.0, p1);
© F. Mário Martins 2007
Classe Circulo correcta por imagens 2
public Circulo(Circulo cp) {
raio = cp.getRaio(); centro = cp.getCentro(); // getCentro() faz clone
}
c1
Circulo
10.0
c2
7.0
2.5
7.0
2.5
Ponto
Circulo
10.0
Ponto
c2 = new Circulo(c1);
// Métodos de Instância
public double getRaio() { return raio; }
public Ponto2D getCentro() { return centro.clone(); }
c1
Circulo
3.0
-2.7
6.1
-2.7
6.1
Ponto
Ponto
p1
Ponto2D p1 = c1.getCentro();
© F. Mário Martins 2007
Classe Circulo correcta por imagens 3
public void mudaCentro(Ponto2D nc) { centro = nc.clone(); }
c1
Circulo
3
-2.7
1.6
1.5
2.9
Ponto
-2.7
1.6
X
Ponto
Ponto
p1
c1.mudaCentro(p1);
public Circulo clone() { return new Circulo(this); }
Circulo
Circulo
12.5
12.5
c1
c2
-1.2
5.6
Ponto
-1.2
5.6
Ponto
c2 = c1.clone();
© F. Mário Martins 2007
Classe Circulo correcta por imagens 4
public double area() { return PI*raio*raio; }
Circulo
12.5
area()
c1
-1.2
5.6
Ponto
490.625
double area = c1.area();
public double perimetro() { return 2*PI*raio; }
Circulo
12.5
perimetro()
c1
-1.2
5.6
Ponto
78.5
double perim = c1.perimetro();
© F. Mário Martins 2007
Classe Circulo correcta por imagens 5
public void aumentaRaio(double rx) { raio += rx; }
Circulo
Circulo
12.5
30.0
c1
c1
-1.2
5.6
Ponto
-1.2
5.6
Ponto
c1.aumentaRaio(17.5);
© F. Mário Martins 2007
Classe Circulo correcta por imagens 6
Download

classe_circulo_final_por_imagens