class Punto
{
private double abscisa, ordenada;
public Punto() // Constructor por defecto
{
abscisa = 0.0;
ordenada = 0.0;
}
public Punto(double x, double y)
{
abscisa = x;
ordenada = y;
}
public Punto(Punto unPunto) // Constructor de copia
{ // Llama a Punto(x,y)
this (unPunto.abscisa,unPunto.ordenada);
}
public String toString() // Conversi¢n a String
{
return "Punto(" + abscisa + "," + ordenada + ")";
}
public void trasladar(double x,double y)
{
abscisa += x;
ordenada += y;
}
public double distancia(Punto unPunto)
{
double dx = abscisa - unPunto.abscisa;
double dy = ordenada - unPunto.ordenada;
return Math.sqrt(dx*dx + dy*dy);
}
}
//______________________________________________
import java.io.*;
class PuntoMain
{
public static void main(String argv[])
{
Punto p, q;
p = new Punto(12, 37);
q = new Punto();
q.trasladar(1.0, 3.0);
System.out.println("La distancia entre"+ p +" y" +
q +"es"+ p.distancia(q));
}
}
//_______________________________________________
import java.io.*;
class PuntoMain
{
public static void main(String argv[])
{
Punto p, q;
p = new Punto(12, 37);
q = new Punto();
q.trasladar(1.0, 3.0);
System.out.println("La distancia entre"+ p +" y" +
q +"es"+ p.distancia(q));
}
}
//_______________________________________________
class Particula extends Punto
{
private double masa;
public Particula ()
{
super(); // Llamada al constructor Punto() (por defecto)
masa = 0.0;
}
public Particula(double x,double y,double m)
{
super(x,y); // Llamada a Punto(x,y)
masa = m;
}
public String toString() // Llama a toStringO en Punto
{
return "Particula["+ super.toString() + ","+ masa
+ "]";
}
public double atraccion(Particula unaParticula)
{
double dist = distancia(unaParticula);
return (masa - unaParticula.masa) * 6.67 - 11/(dist*dist);
}
}
//_______________________________________________
import java.io. *;
class ParticulaMain
{
public static void main(String argv[])
{
Particula p, q;
p = new Particula(12.0, 37.0, 10.0);
q = new Particula(0.0, 0.0, 20.0);
q.trasladar(1.0, 3.0);
System.out.println("La atraccion entre"+ p +" y "+
q +" es "+p.atraccion(q));
Punto r = p; // Polimorfismo: restringido por herencia
System.out.println( "Punto r' es ahora "+ r);
// Vinculacion dinamica, Llamada a toString() de Particuia
}
}
//_______________________________________________
import java.io.*;
class Figura
{
protected Punto puntos[];
protected int vertices;
public Figura()
{
vertices = 0;
}
public void trasladar(double x, double y)
{
for (int i = 0; i<vertices; i++)
puntos[i] .trasladar(x,y);
}
}
//_______________________________________________
interface Superficie
{
public double perimetro();
public double area();
}
//_______________________________________________
class Prisma
{
private Superficie base; //referencia de tipo interfaz
private double altura;
public Prisma(Superficie b, double h)
{
base = b;
altura = h;
}
public String toString()
{
return "Prisma{" + base + ", " + altura + " }";
}
public double volumen()
{
return base.area() * altura;
}
}
//_______________________________________________
abstract class Poligono extends Figura implements Superficie
{
public double perimetro()
{
double prmtr = 0.0;
for (int i=1; i<vertices; i++)
prmtr += puntos[i-1] .distancia(puntos[i]);
prmtr+= puntos [vertices-1] .distancia (puntos [0]);
return prmtr;
}
public abstract double area();
}
//_______________________________________________
class Rectangulo extends Poligono
{
public Rectangulo(Punto origen, double a, double b)
{
vertices = 4;
puntos = new Punto[vertices];
puntos[0] = new Punto(origen);
puntos[1] = new Punto(origen);
puntos[2] = new Punto(origen);
puntos[3] = new Punto(origen);
puntos[1].trasladar(a, 0.0);
puntos[2].trasladar(a,b);
puntos[3].trasladar(0.0, b);
}
public String toString()
{
return "Rectangulo[" + puntos[0] + "," + puntos[1]
+ ","+ puntos[2] + "," + puntos[3] + "]";
}
public double a()
{ return puntos[0] .distancia(puntos[1]); }
public double b()
{ return puntos[0] .distancia(puntos[3]); }
public double area()
{ return a() * b(); }
}
//_______________________________________________
import java.io.*;
class AbstractasMain
{
public static void main(String argv[])
{
Poligono p;
p = new Rectangulo(new Punto(2.0, 2.0), 3.0, 5.0);
System.out.println(p);
System.out.println("Area: " + p.area());
System.out.println("Perimetro: " + p.perimetro());
Prisma pr = new Prisma(p, 3.0);
System.out.println(pr);
System.out.println( "Volumen: " + pr.volumen());
}
}
//_____________________F I N _____________________