SlideShare una empresa de Scribd logo
Curso de JAVA Diciembre 1999 Javier Pardo jpardo@upmdie.upm.es
Introducción ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Web Curso ,[object Object],[object Object],[object Object],[object Object],[object Object],Libros ,[object Object],[object Object],Lista de correo ,[object Object],[object Object],[object Object],[object Object],Clases ,[object Object],[object Object],Programas
Introducción: Libros ,[object Object],[object Object],[object Object],Aprenda Java como si estuviera en primero ,[object Object],[object Object],Thinking in Java
Introducción: Web del curso
Introducción: Listas de correo ,[object Object],[object Object],[object Object],[email_address] [email_address]
Índice del curso Día 1 :  Programación en Java Introducción Sintaxis Objetos Documentación Día 4: Tecnologías Java I Applets Beans JDBC Servlets JSP Java Server Pages Día 5: Tecnologías Java II:  Aplicaciones Distribuidas Introducción RMI Remote Method Invocation CORBA Java IDL EJB Enterprise Java Beans Día 3: Programación UI Introducción AWT Abstract Window Toolkit Swing Java Foundation Classes Día 2: Programación avanzada Excepciones I/O Streams Threads JNI Java Native Interface Programación en red
Día 1: Programación en Java ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción: Historia Java ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción: Programación Orientada a objetos Directores proyecto Diseñadores y analistas Programadores Inconvenientes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción: Programación Orientada a objetos II ,[object Object],[object Object],[object Object],Características ,[object Object],[object Object],[object Object],[object Object],[object Object],Java ,[object Object],[object Object],Lenguajes
Introducción: Plataforma java
Introducción: Java: Tecnologías Applets JavaBeans Servlets Enterprise JavaBeans JDBC RMI Java Server Pages AWT Servidor Bases de datos Programación distribuida WWW JNI Programación Java3D Java2D Programación gráfica Programación UI CORBA Swing java.* JINI Sistemas embebidos JavaSpaces
Introducción: Herramientas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JDK Java Development Kit ,[object Object],[object Object],[object Object],Entornos RAD ,[object Object],[object Object],[object Object],[object Object]
Introducción: Hola Mundo (Ejemplo 1) Class  HolaMundo { public static void  main ( String [] argv) { System.out.println(“Hola Mundo”) } } javac HolaMundo.java java HolaMundo Hola Mundo Compilar Ejecutar HolaMundo.java
Introducción: Ejemplo1
Introducción: Geometria.java // fichero Geometria.java public abstract class  Geometria { // clase abstracta que no puede tener objetos public abstract double  area(); public abstract double  perimetro(); }
Introducción: Rectangulo.java // fichero Rectangulo.java class  Rectangulo  extends  Geometria { // definición de las variables miembro private static int  numRectangulos = 0; protected double  x1, y1, x2, y2; // constructor por defecto (sin argumentos) // se define mediante una llamada al constructor general public  Rectangulo(){ this(0, 0, 1.0, 1.0); } // constructor de la clase public  Rectangulo(double p1x, double p1y, double p2x, double p2y) { x1 = p1x; x2 = p2x; y1 = p1y; y2 = p2y; numRectangulos++; } public  double area() { return (x1-x2)*(y1-y2); } public  double perimetro() { return 2.0 * ((x1-x2)+(y1-y2)); } }  // fin de la clase Rectangulo
Introducción: Circulo.java // fichero Circulo.java public class  Circulo  extends  Geometria { static  int numCirculos=0; public static final  double PI=3.14159265358979323846; public  double x, y, r; public  Circulo() {  this (0.0, 0.0, 1.0); } public  Circulo( double  r) {  this (0.0, 0.0, r); } public  Circulo (double  x,  double  y,  double  r) { this .x=x;  this .y=y;  this .r=r; numCirculos++; } public  Circulo(Circulo c) { this(c.x, c.y, c.r); } // método de objeto para comparar círculos public  Circulo elMayor(Circulo c) { if ( this .r>=c.r)  return this; else return  c; }  // método de clase para comparar círculos public static  Circulo elMayor(Circulo c, Circulo d) { if  (c.r>=d.r)  return  c;  else return  d; } public   double  area() {  return  PI * r * r; }  public double  perimetro() {  return  2.0 * PI * r; } } // fin de la clase Circulo
Introducción: Dibujable.java // fichero Dibujable.java import  java.awt.Graphics; public interface  Dibujable { public void  dibujar( Graphics  dw); public void  setPosicion( double  x,  double  y); }
Introducción: RectanguloGrafico.java // Fichero RectanguloGrafico.java import  java.awt.Graphics; import  java.awt.Color; class  RectanguloGrafico  extends  Rectangulo  implements  Dibujable { Color color; // constructor public  RectanguloGrafico( double  x1,  double  y1,  double  x2, double  y2, Color unColor) { // llamada al constructor de Rectangulo super (x1, y1, x2, y2); this .color = unColor; } // métodos de la interface Dibujable public   void  dibujar(Graphics dw) { dw.setColor(color); dw.drawRect(( int )x1, ( int )y1, ( int )(x2-x1), ( int )(y2-y1)); } public   void  setPosicion( double  x,  double  y) { ; } }  // fin de la clase RectanguloGrafico
Introducción: CirculoGrafico.java // fichero CirculoGrafico.java import  java.awt.Graphics; import  java.awt.Color; public class  CirculoGrafico  extends  Circulo  implements  Dibujable { // se heredan las variables y métodos de la clase Circulo Color color; // constructor public  CirculoGrafico( double  x,  double  y,  double  r, Color unColor) { // llamada al constructor de Circulo super (x, y, r); this .color = unColor; } // métodos de la interface Dibujable public void  dibujar(Graphics dw) { dw.setColor(color); dw.drawOval((int)(x-r), (int)(y-r), (int)(2.0*r), (int)(2.0*r)); } public void  setPosicion( double  x,  double  y) { ; } }  // fin de la clase CirculoGrafico
Introducción: PanelDibujo.java // fichero PanelDibujo.java import  java.awt.*; import  java.util.Vector; import  java.util.Enumeration; public class  PanelDibujo  extends  Panel { private Vector  v; // constructor public  PanelDibujo( Vector  vect) {  super (new FlowLayout());  this .v = vect; } public   void  paint(Graphics g) { Dibujable dib; Enumeration e; e = v.elements(); while (e.hasMoreElements()){ dib=(Dibujable)e.nextElement(); dib.dibujar(g);   } }  }  // Fin de la clase DrawWindow
Introducción: VentanaCerrable.java // Fichero VentanaCerrable.java import  java.awt.*; import  java.awt.event.*; class  VentanaCerrable  extends  Frame  implements  WindowListener { public  VentanaCerrable() { super(); } public  VentanaCerrable( String  title) { supe r(title); setSize(500,500); addWindowListener(this); } public void  windowActivated(WindowEvent e) {;} public void  windowClosed(WindowEvent e) {;} public void  windowClosing(WindowEvent e) {System.exit(0);} public void  windowDeactivated(WindowEvent e) {;} public void  windowDeiconified(WindowEvent e) {;} public void  windowIconified(WindowEvent e) {;} public void  windowOpened(WindowEvent e) {;} }
Introducción: Ejemplo1.java // fichero Ejemplo1.java import  java.util.Vector; import  java.awt.*; class  Ejemplo1 { public static void  main( String  arg[])  throws  InterruptedException {  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.x + "," + 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.r = 0.0; c = Circulo.elMayor(c1, c2); System.out.println("El mayor radio es " + c.r + "."); System.out.println("Termina main()...");  …  Continuación...
Introducción: Ejemplo1.java (cont) VentanaCerrable ventana =  new  VentanaCerrable("Ventana abierta al mundo..."); Vector v= new  Vector(); 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.addElement(cg1); v.addElement(cg2); v.addElement(rg); PanelDibujo mipanel =  new  PanelDibujo(v); ventana.add(mipanel); ventana.setSize(500, 400); ventana.setVisible( true ); }  // fin de main() }  // fin de class Ejemplo1...
Introducción: Ejemplo1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Ejemplo: Alquiler de vehículos Una agencia de alquiler de vehículos sin conductor  dispone de camiones y de turismos.  A su vez los turismos pueden ser utilitarios y familiares.
Ejemplo: Vehiculo.java // fichero Vehiculo.java public   abstract   class  Vehiculo { protected   String  matricula; protected   boolean  alquilado; public  Vehiculo( String  mat,  boolean  alq) {  matricula=mat; alquilado=alq; } public   abstract   void  alquilar(int dia); public   abstract   void  devolver(int dia); public abstract void  showInfo(); }  // fin de clase Vehiculo
Ejemplo: Turismo.java // fichero Turismo.java public class  Turismo  extends  Vehiculo { protected double  precioKm; protected int  kmAlquiler, kmDevolucion; protected   static   int  numTurismos, numTurAlquilados; public Turismo (String mat, boolean alq, double prKm) {  // llamada constructor de la superclase. Debe ser  //  la primera sentencia del constructor super (mat, alq); precioKm = prKm; kmAlquiler = 0; kmDevolucion = 0; numTurismos++; } public void  alquilar(int kmAlq) { if  (alquilado == true)  System.out.println("El turismo " + matricula + " esta ya alquilado."); else  { kmAlquiler = kmAlq; System.out.println("Se alquila un turismo con " + kmAlquiler + "km."); numTurAlquilados++; alquilado = true; } }
Ejemplo: Turismo.java II public void  devolver(int kmDev) { if  (alquilado ==  true ) { kmDevolucion = kmDev; System.out.print("Se devuelve un turismo con " + kmDevolucion + "km. "); System.out.println("Precio a abonar: " +  (kmDevolucion-kmAlquiler)*precioKm + " Euros"); numTurAlquilados--; alquilado =  false ; }  else System.out.println("El turismo " + matricula + " no esta alquilado."); } public void  showInfo() { System.out.println("Datos de un Turismo:"); System.out.println("Matricula: " + matricula); System.out.println("Alquilado: " + ((alquilado==true)? "Si": "No")); System.out.println("Precio por km: " + precioKm + " Euros"); System.out.println("Numero total de turismos: " + numTurismos); System.out.println("Numero de turismos alquilados: " + numTurAlquilados); } }  // fin de clase Turismo
Ejemplo: Camion.java // fichero Camion.java public class Camion extends Vehiculo { protected double precioDia; protected int diaAlquiler, diaDevolucion; protected static int numCamiones, numCamAlquilados; public Camion(String mat, boolean alq, double prD) {  // llamada constructor de la superclase. Debe ser  //  la primera sentencia del constructor super(mat, alq); precioDia = prD; diaAlquiler = 0; diaDevolucion = 0; numCamiones++; }
Ejemplo: Camion.java II public void alquilar(int diaAlq) { if (alquilado==true) { System.out.println("El camion " + matricula + " esta ya alquilado."); } else { diaAlquiler = diaAlq; System.out.println("Se alquila un camion el dia " + diaAlquiler + "."); numCamAlquilados++; alquilado = true; } } public void devolver(int diaDev) { if (alquilado==true) { diaDevolucion = diaDev; System.out.print("Se devuelve un camion el dia " + diaDevolucion + ". "); System.out.println("Precio a abonar: " +  (diaDevolucion-diaAlquiler)*precioDia + " Euros"); numCamAlquilados--; alquilado = false; } else System.out.println("El camion " + matricula + " no esta alquilado."); }
Ejemplo: Camion.java III public void showInfo() { System.out.println("Datos de un Camion:"); System.out.println("Matricula: " + matricula); System.out.println("Alquilado: " + ((alquilado==true)? "Si": "No")); System.out.println("Precio por dia: " + precioDia + " Euros"); System.out.println("Numero total de camiones: " + numCamiones); System.out.println("Numero de camiones alquilados: " + numCamAlquilados); } } // fin de clase Camion
Ejemplo: AgenciaAlquiler.java // fichero AgenciaAlquiler.java class AgenciaAlquiler { public static void main(String [] arg) { Vehiculo [] avis = new Vehiculo[4]; avis[0] = new Camion("SS-4386-AN", false, 100); avis[1] = new Turismo("BI-6666-ZZ", false, 0.3); avis[2] = new Turismo("HU-1976-A", false, 0.4); avis[3] = new Camion("VI-1234-HL", false, 120); System.out.println("SE ALQUILAN DOS VEHICULOS:"); avis[2].alquilar(23000);  // alquilar turismo con 23000 km avis[3].alquilar(5);  // alquilar camion el dia 5 // intento de volver a alquilar avis[2].alquilar(23000); avis[3].alquilar(5);
Ejemplo: AgenciaAlquiler.java II System.out.println(&quot;SE IMPRIMEN LOS DATOS &quot; + &quot;DE LOS VEHICULOS:&quot;); for (int i=0; i<avis.length; i++) avis[i].showInfo(); System.out.println(&quot;SE DEVUELVEN DOS VEHICULOS:&quot;); avis[2].devolver(25000);  // devolver turismo con 25000 km avis[3].devolver(9);  // devolver camion el dia 9 // intento de devolver de nuevo avis[2].devolver(25000);  avis[3].devolver(9); System.out.println(&quot;Ya he terminado&quot;); } // fin de main() } // fin de la clase AgenciaAlquiler
Resultado Ejemplo 2 SE ALQUILAN DOS VEHICULOS: Se alquila un turismo con 23000km. Se alquila un camion el dia 5. El turismo HU-1976-A esta ya alquilado. El camion VI-1234-HL esta ya alquilado. SE IMPRIMEN LOS DATOS DE LOS VEHICULOS: Datos de un Camion: Matricula: SS-4386-AN Alquilado: No Precio por dia: 100.0 Euros Numero total de camiones: 2 Numero de camiones alquilados: 1 Datos de un Turismo: Matricula: BI-6666-ZZ Alquilado: No Precio por km: 0.3 Euros Numero total de turismos: 2 Numero de turismos alquilados: 1 Datos de un Turismo: Matricula: HU-1976-A Alquilado: Si Precio por km: 0.4 Euros Numero total de turismos: 2 Numero de turismos alquilados: 1 Datos de un Camion: Matricula: VI-1234-HL Alquilado: Si Precio por dia: 120.0 Euros Numero total de camiones: 2 Numero de camiones alquilados: 1 SE DEVUELVEN DOS VEHICULOS: Se devuelve un turismo con 25000km. Precio a abonar: 800.0 Euros Se devuelve un camion el dia 9. Precio a abonar: 480.0 Euros El turismo HU-1976-A no esta alquilado. El camion VI-1234-HL no esta alquilado. Ya he terminado

Más contenido relacionado

La actualidad más candente

Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4
Andres Garcia Garcia
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
Richard Eliseo Mendoza Gafaro
 
Java
JavaJava
Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4
Robert Wolf
 
Definición de clases en POO
Definición de clases en POODefinición de clases en POO
Definición de clases en POO
Gloria Isabel Bautista Lasprilla
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfaz
Robert Wolf
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
Renny Batista
 
8.Clases y objetos Java
8.Clases y objetos Java8.Clases y objetos Java
8.Clases y objetos Java
Ramiro Estigarribia Canese
 
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓNJAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
Eric Gustavo Coronel Castillo
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
Angel Vázquez Patiño
 
Recolección de basura
Recolección de basuraRecolección de basura
Recolección de basura
Manuel Alejandro Hernandez Sanchez
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
Jose Emilio Labra Gayo
 
Introducción a la programación en Python (día 2)
Introducción a la programación en Python (día 2)Introducción a la programación en Python (día 2)
Introducción a la programación en Python (día 2)
CodeSyntax
 
4 Introducción al lenguaje Scala
4 Introducción al lenguaje Scala4 Introducción al lenguaje Scala
4 Introducción al lenguaje Scala
Jose Emilio Labra Gayo
 
Semana 6 Módulos Clases y Objetos
Semana 6   Módulos Clases y ObjetosSemana 6   Módulos Clases y Objetos
Semana 6 Módulos Clases y Objetos
Richard Eliseo Mendoza Gafaro
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
Octavio Perez Siliceo
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetos
BelenMonse
 
Unidad 2 clases y objetos
Unidad 2 clases y objetosUnidad 2 clases y objetos
Unidad 2 clases y objetos
Kimuro Vissaseus
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
Luiggi Inga Barboza
 
Programación Orientada a Objetos para Python
Programación Orientada a Objetos para PythonProgramación Orientada a Objetos para Python
Programación Orientada a Objetos para Python
José Luis Chiquete Valdivieso
 

La actualidad más candente (20)

Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
 
Java
JavaJava
Java
 
Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4
 
Definición de clases en POO
Definición de clases en POODefinición de clases en POO
Definición de clases en POO
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfaz
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
8.Clases y objetos Java
8.Clases y objetos Java8.Clases y objetos Java
8.Clases y objetos Java
 
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓNJAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Recolección de basura
Recolección de basuraRecolección de basura
Recolección de basura
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
 
Introducción a la programación en Python (día 2)
Introducción a la programación en Python (día 2)Introducción a la programación en Python (día 2)
Introducción a la programación en Python (día 2)
 
4 Introducción al lenguaje Scala
4 Introducción al lenguaje Scala4 Introducción al lenguaje Scala
4 Introducción al lenguaje Scala
 
Semana 6 Módulos Clases y Objetos
Semana 6   Módulos Clases y ObjetosSemana 6   Módulos Clases y Objetos
Semana 6 Módulos Clases y Objetos
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetos
 
Unidad 2 clases y objetos
Unidad 2 clases y objetosUnidad 2 clases y objetos
Unidad 2 clases y objetos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Programación Orientada a Objetos para Python
Programación Orientada a Objetos para PythonProgramación Orientada a Objetos para Python
Programación Orientada a Objetos para Python
 

Destacado

001.1 rup cap 1
001.1 rup cap 1001.1 rup cap 1
001.1 rup cap 1
Diego Hernan Sanchez
 
Uml
UmlUml
Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...
Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...
Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...
Camilo Lopez
 
490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon
490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon
490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon
sheikl
 
Libro analisis de sistemas
Libro analisis de sistemasLibro analisis de sistemas
Libro analisis de sistemas
Brayan Romero Calderon
 

Destacado (6)

001.1 rup cap 1
001.1 rup cap 1001.1 rup cap 1
001.1 rup cap 1
 
Uml
UmlUml
Uml
 
Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...
Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...
Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...
 
490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon
490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon
490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon
 
Libro analisis de sistemas
Libro analisis de sistemasLibro analisis de sistemas
Libro analisis de sistemas
 
Como usar scribd
Como usar scribdComo usar scribd
Como usar scribd
 

Similar a instrumentos de trabajo

Programando en java
Programando en javaProgramando en java
Programando en java
julianbm60
 
Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2
Andres Garcia Garcia
 
Entornodedesarrollodejava
EntornodedesarrollodejavaEntornodedesarrollodejava
Entornodedesarrollodejava
Victor Zapata
 
Prog_BasicaJava.pdf
Prog_BasicaJava.pdfProg_BasicaJava.pdf
Prog_BasicaJava.pdf
RaulNieve0scco
 
HackDay Java 9 Spanish version
HackDay Java 9 Spanish versionHackDay Java 9 Spanish version
HackDay Java 9 Spanish version
HillmerC
 
Netbeans ide
Netbeans ideNetbeans ide
Netbeans ide
Proffesional
 
Java
JavaJava
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
Gloria Isabel Bautista Lasprilla
 
Guia4 java
Guia4 javaGuia4 java
Guia4 java
odelys2003
 
TUTORIAL JAVA
TUTORIAL JAVATUTORIAL JAVA
TUTORIAL JAVA
denis ticona condori
 
JAVA.PPT
JAVA.PPTJAVA.PPT
JAVA.PPT
GalvanGR
 
JAVA (1).PPT
JAVA (1).PPTJAVA (1).PPT
JAVA (1).PPT
miguel checa
 
JAVA (1).PPT
JAVA (1).PPTJAVA (1).PPT
JAVA (1).PPT
DanielHidalgo92
 
Prog_BasicaJava (1).pptx
Prog_BasicaJava (1).pptxProg_BasicaJava (1).pptx
Prog_BasicaJava (1).pptx
SANTOS400018
 
Presentación Java Evolution - GlobalLogic Club
Presentación Java Evolution - GlobalLogic ClubPresentación Java Evolution - GlobalLogic Club
Presentación Java Evolution - GlobalLogic Club
GlobalLogic Latinoamérica
 
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
Jano González
 
Semana9 Vbr
Semana9 VbrSemana9 Vbr
Semana9 Vbr
Carlos Luna
 
Java
JavaJava
Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en Java
Manuel Antonio
 
Patrones de diseño de software facade e iterator
Patrones de diseño de software facade e iteratorPatrones de diseño de software facade e iterator
Patrones de diseño de software facade e iterator
Pietro Doninelli
 

Similar a instrumentos de trabajo (20)

Programando en java
Programando en javaProgramando en java
Programando en java
 
Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2
 
Entornodedesarrollodejava
EntornodedesarrollodejavaEntornodedesarrollodejava
Entornodedesarrollodejava
 
Prog_BasicaJava.pdf
Prog_BasicaJava.pdfProg_BasicaJava.pdf
Prog_BasicaJava.pdf
 
HackDay Java 9 Spanish version
HackDay Java 9 Spanish versionHackDay Java 9 Spanish version
HackDay Java 9 Spanish version
 
Netbeans ide
Netbeans ideNetbeans ide
Netbeans ide
 
Java
JavaJava
Java
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Guia4 java
Guia4 javaGuia4 java
Guia4 java
 
TUTORIAL JAVA
TUTORIAL JAVATUTORIAL JAVA
TUTORIAL JAVA
 
JAVA.PPT
JAVA.PPTJAVA.PPT
JAVA.PPT
 
JAVA (1).PPT
JAVA (1).PPTJAVA (1).PPT
JAVA (1).PPT
 
JAVA (1).PPT
JAVA (1).PPTJAVA (1).PPT
JAVA (1).PPT
 
Prog_BasicaJava (1).pptx
Prog_BasicaJava (1).pptxProg_BasicaJava (1).pptx
Prog_BasicaJava (1).pptx
 
Presentación Java Evolution - GlobalLogic Club
Presentación Java Evolution - GlobalLogic ClubPresentación Java Evolution - GlobalLogic Club
Presentación Java Evolution - GlobalLogic Club
 
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
 
Semana9 Vbr
Semana9 VbrSemana9 Vbr
Semana9 Vbr
 
Java
JavaJava
Java
 
Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en Java
 
Patrones de diseño de software facade e iterator
Patrones de diseño de software facade e iteratorPatrones de diseño de software facade e iterator
Patrones de diseño de software facade e iterator
 

Último

Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
Manuel Diaz
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
ranierglez
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
codesiret
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
yuberpalma
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
70244530
 

Último (20)

Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
 

instrumentos de trabajo

  • 1. Curso de JAVA Diciembre 1999 Javier Pardo jpardo@upmdie.upm.es
  • 2.
  • 3.
  • 5.
  • 6. Índice del curso Día 1 : Programación en Java Introducción Sintaxis Objetos Documentación Día 4: Tecnologías Java I Applets Beans JDBC Servlets JSP Java Server Pages Día 5: Tecnologías Java II: Aplicaciones Distribuidas Introducción RMI Remote Method Invocation CORBA Java IDL EJB Enterprise Java Beans Día 3: Programación UI Introducción AWT Abstract Window Toolkit Swing Java Foundation Classes Día 2: Programación avanzada Excepciones I/O Streams Threads JNI Java Native Interface Programación en red
  • 7.
  • 8.
  • 9.
  • 10.
  • 12. Introducción: Java: Tecnologías Applets JavaBeans Servlets Enterprise JavaBeans JDBC RMI Java Server Pages AWT Servidor Bases de datos Programación distribuida WWW JNI Programación Java3D Java2D Programación gráfica Programación UI CORBA Swing java.* JINI Sistemas embebidos JavaSpaces
  • 13.
  • 14. Introducción: Hola Mundo (Ejemplo 1) Class HolaMundo { public static void main ( String [] argv) { System.out.println(“Hola Mundo”) } } javac HolaMundo.java java HolaMundo Hola Mundo Compilar Ejecutar HolaMundo.java
  • 16. Introducción: Geometria.java // fichero Geometria.java public abstract class Geometria { // clase abstracta que no puede tener objetos public abstract double area(); public abstract double perimetro(); }
  • 17. Introducción: Rectangulo.java // fichero Rectangulo.java class Rectangulo extends Geometria { // definición de las variables miembro private static int numRectangulos = 0; protected double x1, y1, x2, y2; // constructor por defecto (sin argumentos) // se define mediante una llamada al constructor general public Rectangulo(){ this(0, 0, 1.0, 1.0); } // constructor de la clase public Rectangulo(double p1x, double p1y, double p2x, double p2y) { x1 = p1x; x2 = p2x; y1 = p1y; y2 = p2y; numRectangulos++; } public double area() { return (x1-x2)*(y1-y2); } public double perimetro() { return 2.0 * ((x1-x2)+(y1-y2)); } } // fin de la clase Rectangulo
  • 18. Introducción: Circulo.java // fichero Circulo.java public class Circulo extends Geometria { static int numCirculos=0; public static final double PI=3.14159265358979323846; public double x, y, r; public Circulo() { this (0.0, 0.0, 1.0); } public Circulo( double r) { this (0.0, 0.0, r); } public Circulo (double x, double y, double r) { this .x=x; this .y=y; this .r=r; numCirculos++; } public Circulo(Circulo c) { this(c.x, c.y, c.r); } // método de objeto para comparar círculos public Circulo elMayor(Circulo c) { if ( this .r>=c.r) return this; else return c; } // método de clase para comparar círculos public static Circulo elMayor(Circulo c, Circulo d) { if (c.r>=d.r) return c; else return d; } public double area() { return PI * r * r; } public double perimetro() { return 2.0 * PI * r; } } // fin de la clase Circulo
  • 19. Introducción: Dibujable.java // fichero Dibujable.java import java.awt.Graphics; public interface Dibujable { public void dibujar( Graphics dw); public void setPosicion( double x, double y); }
  • 20. Introducción: RectanguloGrafico.java // Fichero RectanguloGrafico.java import java.awt.Graphics; import java.awt.Color; class RectanguloGrafico extends Rectangulo implements Dibujable { Color color; // constructor public RectanguloGrafico( double x1, double y1, double x2, double y2, Color unColor) { // llamada al constructor de Rectangulo super (x1, y1, x2, y2); this .color = unColor; } // métodos de la interface Dibujable public void dibujar(Graphics dw) { dw.setColor(color); dw.drawRect(( int )x1, ( int )y1, ( int )(x2-x1), ( int )(y2-y1)); } public void setPosicion( double x, double y) { ; } } // fin de la clase RectanguloGrafico
  • 21. Introducción: CirculoGrafico.java // fichero CirculoGrafico.java import java.awt.Graphics; import java.awt.Color; public class CirculoGrafico extends Circulo implements Dibujable { // se heredan las variables y métodos de la clase Circulo Color color; // constructor public CirculoGrafico( double x, double y, double r, Color unColor) { // llamada al constructor de Circulo super (x, y, r); this .color = unColor; } // métodos de la interface Dibujable public void dibujar(Graphics dw) { dw.setColor(color); dw.drawOval((int)(x-r), (int)(y-r), (int)(2.0*r), (int)(2.0*r)); } public void setPosicion( double x, double y) { ; } } // fin de la clase CirculoGrafico
  • 22. Introducción: PanelDibujo.java // fichero PanelDibujo.java import java.awt.*; import java.util.Vector; import java.util.Enumeration; public class PanelDibujo extends Panel { private Vector v; // constructor public PanelDibujo( Vector vect) { super (new FlowLayout()); this .v = vect; } public void paint(Graphics g) { Dibujable dib; Enumeration e; e = v.elements(); while (e.hasMoreElements()){ dib=(Dibujable)e.nextElement(); dib.dibujar(g); } } } // Fin de la clase DrawWindow
  • 23. Introducción: VentanaCerrable.java // Fichero VentanaCerrable.java import java.awt.*; import java.awt.event.*; class VentanaCerrable extends Frame implements WindowListener { public VentanaCerrable() { super(); } public VentanaCerrable( String title) { supe r(title); setSize(500,500); addWindowListener(this); } public void windowActivated(WindowEvent e) {;} public void windowClosed(WindowEvent e) {;} public void windowClosing(WindowEvent e) {System.exit(0);} public void windowDeactivated(WindowEvent e) {;} public void windowDeiconified(WindowEvent e) {;} public void windowIconified(WindowEvent e) {;} public void windowOpened(WindowEvent e) {;} }
  • 24. Introducción: Ejemplo1.java // fichero Ejemplo1.java import java.util.Vector; import java.awt.*; class Ejemplo1 { public static void main( String arg[]) throws InterruptedException { System.out.println(&quot;Comienza main()...&quot;); Circulo c = new Circulo(2.0, 2.0, 4.0); System.out.println(&quot;Radio = &quot; + c.r + &quot; unidades.&quot;); System.out.println(&quot;Centro = (&quot; + c.x + &quot;,&quot; + c.y + &quot;) unidades.&quot;); 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(&quot;El mayor radio es &quot; + c.r + &quot;.&quot;); c = new Circulo(); // c.r = 0.0; c = Circulo.elMayor(c1, c2); System.out.println(&quot;El mayor radio es &quot; + c.r + &quot;.&quot;); System.out.println(&quot;Termina main()...&quot;); … Continuación...
  • 25. Introducción: Ejemplo1.java (cont) VentanaCerrable ventana = new VentanaCerrable(&quot;Ventana abierta al mundo...&quot;); Vector v= new Vector(); 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.addElement(cg1); v.addElement(cg2); v.addElement(rg); PanelDibujo mipanel = new PanelDibujo(v); ventana.add(mipanel); ventana.setSize(500, 400); ventana.setVisible( true ); } // fin de main() } // fin de class Ejemplo1...
  • 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. Ejemplo: Alquiler de vehículos Una agencia de alquiler de vehículos sin conductor dispone de camiones y de turismos. A su vez los turismos pueden ser utilitarios y familiares.
  • 73. Ejemplo: Vehiculo.java // fichero Vehiculo.java public abstract class Vehiculo { protected String matricula; protected boolean alquilado; public Vehiculo( String mat, boolean alq) { matricula=mat; alquilado=alq; } public abstract void alquilar(int dia); public abstract void devolver(int dia); public abstract void showInfo(); } // fin de clase Vehiculo
  • 74. Ejemplo: Turismo.java // fichero Turismo.java public class Turismo extends Vehiculo { protected double precioKm; protected int kmAlquiler, kmDevolucion; protected static int numTurismos, numTurAlquilados; public Turismo (String mat, boolean alq, double prKm) { // llamada constructor de la superclase. Debe ser // la primera sentencia del constructor super (mat, alq); precioKm = prKm; kmAlquiler = 0; kmDevolucion = 0; numTurismos++; } public void alquilar(int kmAlq) { if (alquilado == true) System.out.println(&quot;El turismo &quot; + matricula + &quot; esta ya alquilado.&quot;); else { kmAlquiler = kmAlq; System.out.println(&quot;Se alquila un turismo con &quot; + kmAlquiler + &quot;km.&quot;); numTurAlquilados++; alquilado = true; } }
  • 75. Ejemplo: Turismo.java II public void devolver(int kmDev) { if (alquilado == true ) { kmDevolucion = kmDev; System.out.print(&quot;Se devuelve un turismo con &quot; + kmDevolucion + &quot;km. &quot;); System.out.println(&quot;Precio a abonar: &quot; + (kmDevolucion-kmAlquiler)*precioKm + &quot; Euros&quot;); numTurAlquilados--; alquilado = false ; } else System.out.println(&quot;El turismo &quot; + matricula + &quot; no esta alquilado.&quot;); } public void showInfo() { System.out.println(&quot;Datos de un Turismo:&quot;); System.out.println(&quot;Matricula: &quot; + matricula); System.out.println(&quot;Alquilado: &quot; + ((alquilado==true)? &quot;Si&quot;: &quot;No&quot;)); System.out.println(&quot;Precio por km: &quot; + precioKm + &quot; Euros&quot;); System.out.println(&quot;Numero total de turismos: &quot; + numTurismos); System.out.println(&quot;Numero de turismos alquilados: &quot; + numTurAlquilados); } } // fin de clase Turismo
  • 76. Ejemplo: Camion.java // fichero Camion.java public class Camion extends Vehiculo { protected double precioDia; protected int diaAlquiler, diaDevolucion; protected static int numCamiones, numCamAlquilados; public Camion(String mat, boolean alq, double prD) { // llamada constructor de la superclase. Debe ser // la primera sentencia del constructor super(mat, alq); precioDia = prD; diaAlquiler = 0; diaDevolucion = 0; numCamiones++; }
  • 77. Ejemplo: Camion.java II public void alquilar(int diaAlq) { if (alquilado==true) { System.out.println(&quot;El camion &quot; + matricula + &quot; esta ya alquilado.&quot;); } else { diaAlquiler = diaAlq; System.out.println(&quot;Se alquila un camion el dia &quot; + diaAlquiler + &quot;.&quot;); numCamAlquilados++; alquilado = true; } } public void devolver(int diaDev) { if (alquilado==true) { diaDevolucion = diaDev; System.out.print(&quot;Se devuelve un camion el dia &quot; + diaDevolucion + &quot;. &quot;); System.out.println(&quot;Precio a abonar: &quot; + (diaDevolucion-diaAlquiler)*precioDia + &quot; Euros&quot;); numCamAlquilados--; alquilado = false; } else System.out.println(&quot;El camion &quot; + matricula + &quot; no esta alquilado.&quot;); }
  • 78. Ejemplo: Camion.java III public void showInfo() { System.out.println(&quot;Datos de un Camion:&quot;); System.out.println(&quot;Matricula: &quot; + matricula); System.out.println(&quot;Alquilado: &quot; + ((alquilado==true)? &quot;Si&quot;: &quot;No&quot;)); System.out.println(&quot;Precio por dia: &quot; + precioDia + &quot; Euros&quot;); System.out.println(&quot;Numero total de camiones: &quot; + numCamiones); System.out.println(&quot;Numero de camiones alquilados: &quot; + numCamAlquilados); } } // fin de clase Camion
  • 79. Ejemplo: AgenciaAlquiler.java // fichero AgenciaAlquiler.java class AgenciaAlquiler { public static void main(String [] arg) { Vehiculo [] avis = new Vehiculo[4]; avis[0] = new Camion(&quot;SS-4386-AN&quot;, false, 100); avis[1] = new Turismo(&quot;BI-6666-ZZ&quot;, false, 0.3); avis[2] = new Turismo(&quot;HU-1976-A&quot;, false, 0.4); avis[3] = new Camion(&quot;VI-1234-HL&quot;, false, 120); System.out.println(&quot;SE ALQUILAN DOS VEHICULOS:&quot;); avis[2].alquilar(23000); // alquilar turismo con 23000 km avis[3].alquilar(5); // alquilar camion el dia 5 // intento de volver a alquilar avis[2].alquilar(23000); avis[3].alquilar(5);
  • 80. Ejemplo: AgenciaAlquiler.java II System.out.println(&quot;SE IMPRIMEN LOS DATOS &quot; + &quot;DE LOS VEHICULOS:&quot;); for (int i=0; i<avis.length; i++) avis[i].showInfo(); System.out.println(&quot;SE DEVUELVEN DOS VEHICULOS:&quot;); avis[2].devolver(25000); // devolver turismo con 25000 km avis[3].devolver(9); // devolver camion el dia 9 // intento de devolver de nuevo avis[2].devolver(25000); avis[3].devolver(9); System.out.println(&quot;Ya he terminado&quot;); } // fin de main() } // fin de la clase AgenciaAlquiler
  • 81. Resultado Ejemplo 2 SE ALQUILAN DOS VEHICULOS: Se alquila un turismo con 23000km. Se alquila un camion el dia 5. El turismo HU-1976-A esta ya alquilado. El camion VI-1234-HL esta ya alquilado. SE IMPRIMEN LOS DATOS DE LOS VEHICULOS: Datos de un Camion: Matricula: SS-4386-AN Alquilado: No Precio por dia: 100.0 Euros Numero total de camiones: 2 Numero de camiones alquilados: 1 Datos de un Turismo: Matricula: BI-6666-ZZ Alquilado: No Precio por km: 0.3 Euros Numero total de turismos: 2 Numero de turismos alquilados: 1 Datos de un Turismo: Matricula: HU-1976-A Alquilado: Si Precio por km: 0.4 Euros Numero total de turismos: 2 Numero de turismos alquilados: 1 Datos de un Camion: Matricula: VI-1234-HL Alquilado: Si Precio por dia: 120.0 Euros Numero total de camiones: 2 Numero de camiones alquilados: 1 SE DEVUELVEN DOS VEHICULOS: Se devuelve un turismo con 25000km. Precio a abonar: 800.0 Euros Se devuelve un camion el dia 9. Precio a abonar: 480.0 Euros El turismo HU-1976-A no esta alquilado. El camion VI-1234-HL no esta alquilado. Ya he terminado