M1 Lab2
M1 Lab2
M1 Lab2
Tecsup Objetos
LABORATORIO Objetivos:
Escribir clases en Java. Instanciar objetos. Identificar las Clases participantes en un sistema.
Equipos, Materiales, Programas y Recursos: PC con Sistema Operativo con soporte a Java. IDE para Java
Introduccin: En la presente sesin se detalla los fundamentos del lenguaje Java para la creacin de Clases y objetos. Seguridad: Ubicar maletines y/o mochilas en el gabinete al final de aula de laboratorio. No ingresar con lquidos ni comida al aula de laboratorio. Al culminar la sesin de laboratorio, apagar correctamente la computadora y el monitor.
Preparacin: Durante el desarrollo de los temas de clase se tendrn ejercicios explicativos en cada uno de los puntos, ello le dar a la sesin una interaccin de la teora y la parte prctica, ya que en todo el momento el alumno podr comprobar en su propia PC, todos los tems del manual. Procedimiento y Resultados:
Pg. 1
Tecsup Objetos
MEDIATECA Una institucin educativa desea realizar una aplicacin que facilite la gestin de su mediateca y permita a sus socios la consulta (en su local) y el prstamo de diferentes tipos de soporte: libros, cintas de vdeo y cintas de audio y CD. Los datos asociados a cada tipo de soporte son: Para los libros: ttulo, autor, nmero de pginas, nmero de isbn. Para las cintas de vdeo (documentales, pelcula, etc.): ttulo, director, actores, duracin. Para las cintas y CD audio (discursos, entrevistas, etc.): ttulo, autor, lugar, duracin. Cada socio puede poseer hasta tres prstamos simultneos de cualquier soporte, pero los tiempos y precios de los prstamos son independientes. Los libros pueden ser consultados durante un periodo de hasta 15 das, a un precio de S./ 5.0 diarios. Las cintas de video pueden ser prestadas hasta 3 das con un precio de S./10.0 diarios. Las cintas y CDs pueden estar en prstamo 5 das y el precio es de S./ 20.0 (pago nico). Se desea disear una aplicacin que permita registrar el prstamo a un socio, el cual puede contener hasta tres ejemplares de cualquier soporte y permita calcular su precio.
Pg. 2
Tecsup Objetos
CLASES Y OBJETOS Bicicleta.java package laboratorio2; public class Bicicleta { int velocidadActual; int velocidadMaxima; int engranajeActual; String nroAro; String marca; String modelo; void cambiarLlantas(){ System.out.println("Cambiando llantas"); } void frenar() { System.out.println("Frenando"); } void cambiarVelocidad(int engranajeActual){ this.engranajeActual = engranajeActual; System.out.println("Cambiando velocidad a " + engranajeActual); } } BicicletaCarrera.java package laboratorio2; public class BicicletaCarrera extends Bicicleta { String materialAro; void correr(){ } }
Principal.java package laboratorio2; public class Principal { public static void main(String args[]){ Bicicleta b = new Bicicleta(); b.cambiarVelocidad(3); } }
Dpto. de Informtica David Rodrguez drodriguez@tecsup.edu.pe Pg. 3
Tecsup Objetos
ACCEDIENDO A UN MTODO DE UNA CLASE package laboratorio2; public class Debug { public boolean debuggingOn = false; public final int LEVEL = 1; public Debug(boolean estado){ this.debuggingOn = estado; } public void print(String msg) { if (this.debuggingOn) { System.out.print(msg); } } }
package laboratorio2; public class Test { public static void main(String args[]){ Debug d = new Debug(true); d.print("Curso de Java"); } }
METODOS QUE RETORNAN RESULTADOS package laboratorio2; public class OperacionesAritmeticas { public OperacionesAritmeticas() { } public double suma(double a, double b){ double resultado = a + b; return resultado; } }
Pg. 4
Tecsup Objetos
package laboratorio2; public class Test { public static void main(String args[]){ OperacionesAritmeticas op = new OperacionesAritmeticas(); op.suma(13.3, 15.2); double res = op.suma(13.3, 15.2); System.out.println(res); } }
SOBRE CARGA DE METODOS package laboratorio2; public class OperacionesAritmeticas { public OperacionesAritmeticas() { } public double suma(double a, double b){ double resultado = a + b; return resultado; } int max(int a, int b) { int mayor = a; if (a > b) { mayor = a; } else if (a == b) { mayor = 0; //por ser iguales } else { mayor = b; } return mayor; } float max(float a, float b) { float mayor = a; if (a > b) { mayor = a; } else if (a == b) { mayor = 0; //por ser iguales } else { mayor = b; } return mayor; } }
Pg. 5
Tecsup Objetos
ACCESO A ATRIBUTOS package laboratorio2; public class Persona { public String nombre; public String apellidos; public byte edad; public Persona(String n, String a, byte e) { this.nombre = n; this.apellidos = a; this.edad = e; } }
package laboratorio2; public class Test { public static void main(String args[]){ byte edad = 60; Persona p = new Persona("James","Gosling", edad); System.out.println("Accediendo a sus atributos:"); System.out.println("Nombre: " + p.nombre); System.out.println("Apellido: " + p.apellidos); System.out.println("Edad: " + p.edad); } }
EJERCICIO VARIABLE DE CLASE package laboratorio2; public class Ej_varclase1 { static int contador; public Ej_varclase1() { contador++; } }
Pg. 6
Tecsup Objetos
package laboratorio2; public class Ej_ver_varclase { public static void main(String args[]) { // Accediendo a un atributo esttico System.out.println(Ej_varclase1.contador); // Todos los objetos manipulan al atributo esttico Ej_varclase1 ex1 = new Ej_varclase1(); Ej_varclase1 ex2 = new Ej_varclase1(); Ej_varclase1 ex3 = new Ej_varclase1(); Ej_varclase1 ex4 = new Ej_varclase1(); Ej_varclase1 ex5 = new Ej_varclase1(); System.out.println(ex1.contador); } } METODOS ESTTICOS package laboratorio2; public class Ej_conversion { public static void main(String args[]) { double cantidad = 150; double conv = Ej_conversion.dolaraEuro(cantidad); System.out.println("Conversion de Moneda:"); System.out.println(cantidad + " dolares es " + conv + " euros"); } public static double dolaraEuro(double a) { double euro = a * 0.81559; return euro; } }
Pg. 7
Tecsup Objetos
FINALIZE package laboratorio2; public class Ej_varclase1 { static int contador; public Ej_varclase1() { contador++; } public void finalize() { contador=0; System.out.println("Clase Finalizada"); } }
package laboratorio2; public class Ej_ver_varclase { public static void main(String args[]) { Ej_varclase1 ex = new Ej_varclase1(); ex ex ex ex = = = = new new new new Ej_varclase1(); Ej_varclase1(); Ej_varclase1(); Ej_varclase1();
IMPORTANDO CLASES package laboratorio2; import java.util.Date; public class Ej_import { public static void main(String[] args) { Date fecha = new Date(); System.out.println("Fecha Actual:\t"+fecha); } }
Pg. 8
Tecsup Objetos
EJERCICIO CLASE ABSTRACTA package laboratorio2; public abstract class Figura { private int x,y; public Figura(int nx,int ny){ x=nx; y=ny; } public int getX(){ return x; } public int getY(){ return y; } public abstract double getArea(); /* cada figura debera tener un mtodo getArea() para obtener el area de la figura */ }
package laboratorio2; public class Rectangulo extends Figura { private int w,h; public Rectangulo(int x, int y, int w, int h) { super(x,y); this.w=w; this.h=h; } //implementando el mtodo abstracto public double getArea() { return w*h; } }
Pg. 9
Tecsup Objetos
package laboratorio2; public class Graficador { public static void main(String[] args) { Figura[] fgs = { new Rectangulo(56,78,3,4), new Rectangulo(12,34,5,7)}; System.out.println("Area " + 1 + ": " + fgs[0].getArea()); System.out.println("Posicion X: " + fgs[0].getX()); System.out.println("Posicion Y: " + fgs[0].getY()); System.out.println("Area " + 2 + ": " + fgs[1].getArea()); System.out.println("Posicion X: " + fgs[1].getX()); System.out.println("Posicion Y: " + fgs[1].getY()); } }
Pg. 10
Tecsup Objetos
Ejercicio: Grupo empresarial Un grupo empresarial est formado por diferentes empresas y en cada una laboran varios empleados. Un empleado trabaja en ms de una empresa. En cada empresa donde trabaja, el empleado ocupa un cargo diferente. Un cargo puede tener subordinados otros cargos. De cada empresa se conoce el cdigo, nombre, razn social, telfono, nmero de RUC y direccin si es nacional y tipo de permiso de operacin y pas donde est ubicada, si es extranjera. De cada empleado se conoce el DNI, nombre, apellidos, edad y fecha de ingreso al grupo empresarial. De cada cargo se conoce el nombre y el sueldo bsico. De cada pas se conoce el nombre y la descripcin.
CONCLUSIONES: En la presente sesin, se detall la implementacin de clases y objetos en Java. Se crearon clases con sus respectivos mtodos y se aplic los principios de la programacin orientada a objetos.
Pg. 11