Éste es el código del Ejemplo1 del magnífico manual de Java
Aprenda Java como si estuviera en primero
Yo, que ya había programado en Java, he repasado todo y la verdad es que es BASTANTE BUENO. Tiene su poquito de cada cosa y está muy bien explicado.
Lo he programado en Eclipse bajo Guadalinex. Eclipse permite crear el proyecto y las clases desde la interfaz gráfica, así como asignar las interfaces y las superclases a las clases.
Aquí dejo un enlace a los archivos:
Ejemplo 1 de Java
public abstract class Geometria {
//clase abstracta, no puede tener objetos
public abstract double perimetro();
public abstract double area();
}
public class Rectangulo extends Geometria {
private static int numRectangulos=0;
protected double x1,y1,x2,y2;
public Rectangulo(double p1x,double p1y,double p2x,double p2y) {
x1=p1x;
y1=p1y;
x2=p2x;
y2=p2y;
numRectangulos++;
}
public Rectangulo() {
this(0,0,1.0,1.0);
}
@Override
public double area() {
// TODO Auto-generated method stub
return (x1-x2)*(y1-y2);
}
@Override
public double perimetro() {
// TODO Auto-generated method stub
return 2.0*((x1-x2)+(y1-y2));
}
}
public class Circulo extends Geometria {
static int numCirculos=0;
public static final double PI=3.14159;
public double x,y,r;
public Circulo(double x, double y, double r) {
this.x=x;this.y=y;this.r=r;
numCirculos++;
}
public Circulo(double r) {this(0.0,0.0,r);}
public Circulo(Circulo c) {this(c.x,c.y,c.r);}
public Circulo() {this(0.0,0.0,1.0);}
@Override
public double area() {
// TODO Auto-generated method stub
return PI*r*r;
}
@Override
public double perimetro() {
return 2.0*PI*r;
// TODO Auto-generated method stub
}
public Circulo elMayor(Circulo c) {
if (this.r>=c.r) return this; else return c;
}
public static Circulo elMayor(Circulo c, Circulo d){
if (c.r>=d.r) return c; else return d;
}
}
import java.awt.Graphics;
public interface Dibujable {
public void setPosicion(double x,double y);
public void dibujar(Graphics dw);
}
import java.awt.Graphics;
import java.awt.Color;
class RectanguloGrafico extends Rectangulo implements Dibujable {
Color color;
public RectanguloGrafico(double x1,double y1,double x2,double y2, Color unColor){
super(x1,y1,x2,y2);
this.color=unColor;
}
public void dibujar(Graphics dw) {
dw.setColor(color);
dw.drawRect((int)x1, (int)y1, (int)(x2-x1), (int)(y2-y1));
}
@Override
public void setPosicion(double x, double y) {
// TODO Auto-generated method stub
}
}
import java.awt.Graphics;
import java.awt.Color;
public class CirculoGrafico extends Circulo implements Dibujable {
Color color;
public CirculoGrafico(double x,double y, double r, Color unColor){
super(x,y,r);
this.color=unColor;
}
@Override
public void dibujar(Graphics dw) {
// TODO Auto-generated method stub
dw.setColor(color);
dw.drawOval((int)(x-r), (int)(y-r), (int)(2*r), (int)(2*r));
}
@Override
public void setPosicion(double x, double y) {
// TODO Auto-generated method stub
}
}
import java.awt.*;
import java.util.ArrayList;
import java.util.Iterator;
public class PanelDibujo extends Panel {
private ArrayList v;
public PanelDibujo(ArrayList va){
super(new FlowLayout());
this.v=va;
}
public void paint(Graphics g){
Dibujable dib;
Iterator it;
it=v.iterator();
while(it.hasNext()){
dib=(Dibujable)it.next();
dib.dibujar(g);
}
}
}
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class VentanaCerrable extends Frame implements WindowListener {
public VentanaCerrable() {
super();
}
public VentanaCerrable(String title) {
super(title);
setSize(500,500);
addWindowListener(this);
}
@Override
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}import java.util.ArrayList;
import java.util.Vector;
import java.awt.*;
public class MGeometria {
/**
* @param args
*/
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
System.out.println("Comienza main...");
Circulo c= new Circulo(2.0,2.0,4.0);
System.out.println("Radio="+c.r+" unidades.");
System.out.println("Centro=("+c.r+","+c.y+") unidades.");
Circulo c1=new Circulo(1.0,1.0,2.0);
Circulo c2=new Circulo(0.0,0.0,3.0);
c=c1.elMayor(c2);
System.out.println("El mayor radio es "+c.r+".");
c=new Circulo();
c=Circulo.elMayor(c1, c2);
System.out.println("El mayor radio es "+c.r+".");
VentanaCerrable ventana=new VentanaCerrable("Ventana abierta al mundo...");
ArrayList<Geometria> v=new ArrayList<Geometria>();
CirculoGrafico cg1=new CirculoGrafico(200,200,100,Color.red);
CirculoGrafico cg2=new CirculoGrafico(300,200,100,Color.blue);
RectanguloGrafico rg=new RectanguloGrafico(50,50,450,350,Color.green);
v.add(cg1);
v.add(cg2);
v.add(rg);
PanelDibujo mipanel=new PanelDibujo(v);
ventana.add(mipanel);
ventana.setSize(500,400);
ventana.setVisible(true);
System.out.println("Termina main...");
}
}
@Override
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
@Override
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub
}
}
import java.util.ArrayList;
import java.util.Vector;
import java.awt.*;
public class MGeometria {
/**
* @param args
*/
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
System.out.println("Comienza main...");
Circulo c= new Circulo(2.0,2.0,4.0);
System.out.println("Radio="+c.r+" unidades.");
System.out.println("Centro=("+c.r+","+c.y+") unidades.");
Circulo c1=new Circulo(1.0,1.0,2.0);
Circulo c2=new Circulo(0.0,0.0,3.0);
c=c1.elMayor(c2);
System.out.println("El mayor radio es "+c.r+".");
c=new Circulo();
c=Circulo.elMayor(c1, c2);
System.out.println("El mayor radio es "+c.r+".");
VentanaCerrable ventana=new VentanaCerrable("Ventana abierta al mundo...");
ArrayList<Geometria> v=new ArrayList<Geometria>();
CirculoGrafico cg1=new CirculoGrafico(200,200,100,Color.red);
CirculoGrafico cg2=new CirculoGrafico(300,200,100,Color.blue);
RectanguloGrafico rg=new RectanguloGrafico(50,50,450,350,Color.green);
v.add(cg1);
v.add(cg2);
v.add(rg);
PanelDibujo mipanel=new PanelDibujo(v);
ventana.add(mipanel);
ventana.setSize(500,400);
ventana.setVisible(true);
System.out.println("Termina main...");
}
}
Aprenda Java como si estuviera en primero
Yo, que ya había programado en Java, he repasado todo y la verdad es que es BASTANTE BUENO. Tiene su poquito de cada cosa y está muy bien explicado.
Lo he programado en Eclipse bajo Guadalinex. Eclipse permite crear el proyecto y las clases desde la interfaz gráfica, así como asignar las interfaces y las superclases a las clases.
Aquí dejo un enlace a los archivos:
Ejemplo 1 de Java
public abstract class Geometria {
//clase abstracta, no puede tener objetos
public abstract double perimetro();
public abstract double area();
}
public class Rectangulo extends Geometria {
private static int numRectangulos=0;
protected double x1,y1,x2,y2;
public Rectangulo(double p1x,double p1y,double p2x,double p2y) {
x1=p1x;
y1=p1y;
x2=p2x;
y2=p2y;
numRectangulos++;
}
public Rectangulo() {
this(0,0,1.0,1.0);
}
@Override
public double area() {
// TODO Auto-generated method stub
return (x1-x2)*(y1-y2);
}
@Override
public double perimetro() {
// TODO Auto-generated method stub
return 2.0*((x1-x2)+(y1-y2));
}
}
public class Circulo extends Geometria {
static int numCirculos=0;
public static final double PI=3.14159;
public double x,y,r;
public Circulo(double x, double y, double r) {
this.x=x;this.y=y;this.r=r;
numCirculos++;
}
public Circulo(double r) {this(0.0,0.0,r);}
public Circulo(Circulo c) {this(c.x,c.y,c.r);}
public Circulo() {this(0.0,0.0,1.0);}
@Override
public double area() {
// TODO Auto-generated method stub
return PI*r*r;
}
@Override
public double perimetro() {
return 2.0*PI*r;
// TODO Auto-generated method stub
}
public Circulo elMayor(Circulo c) {
if (this.r>=c.r) return this; else return c;
}
public static Circulo elMayor(Circulo c, Circulo d){
if (c.r>=d.r) return c; else return d;
}
}
import java.awt.Graphics;
public interface Dibujable {
public void setPosicion(double x,double y);
public void dibujar(Graphics dw);
}
import java.awt.Graphics;
import java.awt.Color;
class RectanguloGrafico extends Rectangulo implements Dibujable {
Color color;
public RectanguloGrafico(double x1,double y1,double x2,double y2, Color unColor){
super(x1,y1,x2,y2);
this.color=unColor;
}
public void dibujar(Graphics dw) {
dw.setColor(color);
dw.drawRect((int)x1, (int)y1, (int)(x2-x1), (int)(y2-y1));
}
@Override
public void setPosicion(double x, double y) {
// TODO Auto-generated method stub
}
}
import java.awt.Graphics;
import java.awt.Color;
public class CirculoGrafico extends Circulo implements Dibujable {
Color color;
public CirculoGrafico(double x,double y, double r, Color unColor){
super(x,y,r);
this.color=unColor;
}
@Override
public void dibujar(Graphics dw) {
// TODO Auto-generated method stub
dw.setColor(color);
dw.drawOval((int)(x-r), (int)(y-r), (int)(2*r), (int)(2*r));
}
@Override
public void setPosicion(double x, double y) {
// TODO Auto-generated method stub
}
}
import java.awt.*;
import java.util.ArrayList;
import java.util.Iterator;
public class PanelDibujo extends Panel {
private ArrayList v;
public PanelDibujo(ArrayList va){
super(new FlowLayout());
this.v=va;
}
public void paint(Graphics g){
Dibujable dib;
Iterator it;
it=v.iterator();
while(it.hasNext()){
dib=(Dibujable)it.next();
dib.dibujar(g);
}
}
}
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class VentanaCerrable extends Frame implements WindowListener {
public VentanaCerrable() {
super();
}
public VentanaCerrable(String title) {
super(title);
setSize(500,500);
addWindowListener(this);
}
@Override
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}import java.util.ArrayList;
import java.util.Vector;
import java.awt.*;
public class MGeometria {
/**
* @param args
*/
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
System.out.println("Comienza main...");
Circulo c= new Circulo(2.0,2.0,4.0);
System.out.println("Radio="+c.r+" unidades.");
System.out.println("Centro=("+c.r+","+c.y+") unidades.");
Circulo c1=new Circulo(1.0,1.0,2.0);
Circulo c2=new Circulo(0.0,0.0,3.0);
c=c1.elMayor(c2);
System.out.println("El mayor radio es "+c.r+".");
c=new Circulo();
c=Circulo.elMayor(c1, c2);
System.out.println("El mayor radio es "+c.r+".");
VentanaCerrable ventana=new VentanaCerrable("Ventana abierta al mundo...");
ArrayList<Geometria> v=new ArrayList<Geometria>();
CirculoGrafico cg1=new CirculoGrafico(200,200,100,Color.red);
CirculoGrafico cg2=new CirculoGrafico(300,200,100,Color.blue);
RectanguloGrafico rg=new RectanguloGrafico(50,50,450,350,Color.green);
v.add(cg1);
v.add(cg2);
v.add(rg);
PanelDibujo mipanel=new PanelDibujo(v);
ventana.add(mipanel);
ventana.setSize(500,400);
ventana.setVisible(true);
System.out.println("Termina main...");
}
}
@Override
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
@Override
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub
}
}
import java.util.ArrayList;
import java.util.Vector;
import java.awt.*;
public class MGeometria {
/**
* @param args
*/
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
System.out.println("Comienza main...");
Circulo c= new Circulo(2.0,2.0,4.0);
System.out.println("Radio="+c.r+" unidades.");
System.out.println("Centro=("+c.r+","+c.y+") unidades.");
Circulo c1=new Circulo(1.0,1.0,2.0);
Circulo c2=new Circulo(0.0,0.0,3.0);
c=c1.elMayor(c2);
System.out.println("El mayor radio es "+c.r+".");
c=new Circulo();
c=Circulo.elMayor(c1, c2);
System.out.println("El mayor radio es "+c.r+".");
VentanaCerrable ventana=new VentanaCerrable("Ventana abierta al mundo...");
ArrayList<Geometria> v=new ArrayList<Geometria>();
CirculoGrafico cg1=new CirculoGrafico(200,200,100,Color.red);
CirculoGrafico cg2=new CirculoGrafico(300,200,100,Color.blue);
RectanguloGrafico rg=new RectanguloGrafico(50,50,450,350,Color.green);
v.add(cg1);
v.add(cg2);
v.add(rg);
PanelDibujo mipanel=new PanelDibujo(v);
ventana.add(mipanel);
ventana.setSize(500,400);
ventana.setVisible(true);
System.out.println("Termina main...");
}
}
No hay comentarios:
Publicar un comentario