Está en la página 1de 10

Práctica 5a

Práctica 5a

José M. Ordax
chemi@javahispano.org

1
Práctica 5a

Copyright © 2004
José M. Ordax

Este documento puede ser distribuido solo bajo los términos y condiciones de la
Licencia de Documentación de javaHispano v1.0 o posterior.

La última versión de dicha licencia se encuentra en


http://www.javahispano.org/licencias/

2
Práctica 5a

Enunciado:

Desarrollar una clase llamada Punto que:

• Tenga dos atributos private de tipo double.


• Tenga un constructor con dos parámetros de tipo double que inicialice los
dos atributos.
• Tenga un constructor por defecto (sin parámetros) que inicialice los dos
atributos al valor que se quiera.
• Tenga un getter para cada uno de los atributos.
• Tenga un método calcularDistanciaDesde que recibe un parámetro de
tipo Punto y que devuelve un double.

Desarrollar una clase llamada Circulo que:

• Tenga dos atributos private de tipo Punto y double.


• Tenga un constructor con dos parámetros de tipo Punto y double que
inicialice los dos atributos.
• Tenga un constructor por defecto (sin parámetros) que inicialice los dos
atributos al valor que se quiera.
• Tenga un constructor con tres parámetros de tipo double que inicialice los
dos atributos.
• Tenga un getter para cada uno de los atributos.
• Tenga un método calcularDistanciaDesde que recibe un parámetro de
tipo Punto y que devuelve un double.
• Tenga un método calcularArea que no recibe ningún parámetro y
devuelve un double.
• Tenga un método calcularPerimetro que no recibe ningún parámetro y
devuelve un double.

Desarrollar una clase llamada Triangulo que:

• Tenga tres atributos private de tipo Punto.


• Tenga un constructor con tres parámetros de tipo Punto que inicialice los
dos atributos.
• Tenga un constructor por defecto (sin parámetros) que inicialice los tres
atributos al valor que se quiera.
• Tenga un constructor con seis parámetros de tipo double que inicialice los
tres atributos.
• Tenga un getter para cada uno de los atributos.
• Tenga un método calcularDistanciaDesde que recibe un parámetro de
tipo Punto y que devuelve un double.
• Tenga un método calcularArea que no recibe ningún parámetro y
devuelve un double.

3
Práctica 5a

• Tenga un método calcularPerimetro que no recibe ningún parámetro y


devuelve un double.

Desarrollar una clase llamada Practica5a que en su método main:

• Cree e inicialice dos objetos de la clase Punto y muestre la distancia entre


ambos.
• Cree un objeto de la clase Circulo y muestre su área, perímetro y
distancia a uno de los dos puntos creados al comienzo.
• Cree un objeto de la clase Triangulo y muestre su área, perímetro y
distancia a un nuevo punto.

Nota 1: No seremos rigurosos con las matemáticas y supondremos que los


triángulos siempre son rectángulos.

Nota 2: Para calcular la raíz cuadrada de un número usaremos Math.sqrt(¿?)


siendo ¿? el número.

4
Práctica 5a

Resolución:

public class Punto


{
//Atributos
private double x = 0.0;
private double y;

//Constructores
public Punto()
{
x = 2.2;
y = 0.0;
}

public Punto(double param1, double param2)


{
x = param1;
y = param2;
}

//Getters
public double getX()
{
return x;
}

public double getY()


{
return y;
}

//Resto de Métodos
public double calcularDistanciaDesde(Punto param)
{
double cateto1 = x - param.getX();
double cateto2 = y - param.getY();
double hipotenusa = Math.sqrt(cateto1 * cateto1 + cateto2 * cateto2);
return hipotenusa;
}
}

public class Circulo


{
//Atributos
private Punto centro = null;
private double radio = 0.0;

//Constructores
public Circulo()
{
centro = new Punto();
radio = 3.1;
}

5
Práctica 5a

public Circulo(Punto param1, double param2)


{
centro = param1;
radio = param2;
}

public Circulo(double param1, double param2, double param3)


{
centro = new Punto(param1, param2);
radio = param3;
}

//Getters
public Punto getCentro()
{
return centro;
}

public double getRadio()


{
return radio;
}

//Resto de Métodos
public double calcularArea()
{
return Math.PI * radio * radio;
}

public double calcularPerimetro()


{
return 2 * Math.PI * radio;
}

public double calcularDistanciaDesde(Punto param)


{
return centro.calcularDistanciaDesde(param);
}
}

public class Triangulo


{
//Atributos
private Punto p1, p2;
private Punto p3 = null;

//Constructores
public Triangulo()
{
p1 = new Punto();
p2 = new Punto(1.2,10.7);
p3 = new Punto(5.5,5.5);
}

6
Práctica 5a

public Triangulo(Punto param1, Punto param2, Punto param3)


{
p1 = param1;
p2 = param2;
p3 = param3;
}

public Triangulo(double x1, double y1, double x2, double y2, double x3, double y3)
{
p1 = new Punto(x1,y1);
p2 = new Punto(x2,y2);
p3 = new Punto(x3,y3);
}

//Getters
public Punto getP1()
{
return p1;
}

public Punto getP2()


{
return p2;
}

public Punto getP3()


{
return p3;
}

//Resto de Métodos
public double calcularArea()
{
double base = p1.calcularDistanciaDesde(p2);
double altura = p1.calcularDistanciaDesde(p3);
return base * altura / 2;
}

public double calcularPerimetro()


{
double lado1 = p1.calcularDistanciaDesde(p2);
double lado2 = p2.calcularDistanciaDesde(p3);
double lado3 = p3.calcularDistanciaDesde(p1);
return lado1 + lado2 + lado3;
}

public double calcularDistanciaDesde(Punto param)


{
return p1.calcularDistanciaDesde(param);
}
}

7
Práctica 5a

public class Practica5a


{
public static void main(String[] args)
{
Punto a = new Punto();
Punto b = new Punto(1.1,42.3);
double distancia = a.calcularDistanciaDesde(b);
System.out.println("La distancia es: " + distancia);

Circulo c = new Circulo(a,5.0);


System.out.println("El área es: " + c.calcularArea());
System.out.println("El perímetro es:" + c.calcularPerimetro());
System.out.println("La distancia es:" + b.calcularDistanciaDesde(c.getCentro()));

Triangulo t = new Triangulo(a,b,new Punto(7.3,1.9));


System.out.println("El área es: " + t.calcularArea());
System.out.println("El perímetro es:" + t.calcularPerimetro());
System.out.println("La distancia es:" + t.calcularDistanciaDesde(new Punto(8.0,9.0)));
}
}

8
Práctica 5a

Salida por consola:

9
Práctica 5a

Diagrama de Clases (UML):

10

También podría gustarte