Está en la página 1de 41

PROGRAMACION TEMA 3.

OBJETOS

CENTRO:

WEB: ACADEMICO ANO : PROFESOR: EMAIL: MODULO: CICLO FORMATIVO: DEPARTAMENTO: CURSO:

A DISFICO DE EDUCACION CENTRO ESPECI TANCIA DE LA COMUNIDAD VALENCIANA (CEEDCV) http: // www. ceedcv. es 2013/2014 FRANCISCO ALDARIAS RAYA paco. aldarias@ ceedcv. es PROGRAMACION CFGS: DESARROLLO DE APLICACIONES WEB INFORMATICA 1o

TEMA 3. OBJETOS

Licencia de Creative Commons. PROGRAMACION TEMA 3. OBJETOS por Francisco Aldarias Raya es licencia bajo http://creativecommons.org/licenses/by-nc-sa/3.0/es/ License. Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espana Creado a partir de la obra en http://www.ceedcv.es Bajo las condiciones siguientes:

Reconocimiento - Debe reconocer los creditos de la obra de la manera especicada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra). No comercial - No puede utilizar esta obra para nes comerciales. Compartir bajo la misma licencia - Si altera o transforma esta obra, o puede distribuir la obra generada bajo genera una obra derivada, solo una licencia identica a esta.

1. 2011-2012 Version 2. 2013-2014 Version Changeset: 13:ec4c89790bdf 21 de noviembre de 2013 Ultima actualizacion FRANCISCO ALDARIAS RAYA paco.aldarias@ceedcv.es Departamento de Informatica. a Distancia de la Comunidad Valenciana. (CEED) Centro Espec co de Educacion http://www.ceedcv.es En Valencia (Espana).
A Documento realizado con software libre: linux debian, L TEX.

3.2

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

INDICE

TEMA 3. OBJETOS

Indice
ORIENTADA A OBJETOS 1. PROGRAMACION 1.1. Ventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Abstraccion 1.4. Encapsulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5. Herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6. Polimorsmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. OBJETO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. Denicion 2.2. Caracter sticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. CLASES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. Denicion 3.2. Caracter sticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Clases en java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. ENTRADA Y SALIDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. Introduccion 4.2. System.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. System.in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4. Ejemplo: Lectura de un caracter . . . . . . . . . . . . . . . . . . . . 4.5. Ejemplo: Lectura de un numero . . . . . . . . . . . . . . . . . . . . . 4.6. Ejemplo: Lectura de una linea . . . . . . . . . . . . . . . . . . . . . . 4.7. System.err . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. PARAMETROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1. Denicion 5.2. Caracter sticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. CONSTRUCTORES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1. Denicion 6.2. Caracter sticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3. Constructores sin parametros . . . . . . . . . . . . . . . . . . . . . . 6.4. Creando objetos con el constructor . . . . . . . . . . . . . . . . . . .
FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

5 5 5 6 6 7 8 10 10 10 11 11 11 11 14 14 14 14 14 15 16 17 17 17 19 19 19 20 21 21

3.3

TEMA 3. OBJETOS

INDICE

7. DESTRUCTORES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1. Denicion 7.2. Caracter sticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8. STATIC 8.1. Variables Static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2. Funciones static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9. PAQUETES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1. Denicion 9.2. Caracter sticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3. Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4. Application Programming Interface (API) . . . . . . . . . . . . . . . . 9.5. Classpath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10. MODELO VISTA CONTROLADOR(MVC) 11. NETBEANS 11.1.Paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.Personalizar la plantilla 12. ORIENTACIONES 12.1.Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2.Criterios de evaluacion 12.3.Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13. EJERCICIOS PROPUESTOS 13.1.Ejercicio0301. Pajaro12 . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.Ejercicio0302. Pajaro13. . . . . . . . . . . . . . . . . . . . . . . . . . 13.3.Ejercicio0303. Pajaro16. . . . . . . . . . . . . . . . . . . . . . . . . . 13.4.Ejercicio0304. LeeNumero1. . . . . . . . . . . . . . . . . . . . . . . 13.5.Ejercicio0305. ErrorDivision1. . . . . . . . . . . . . . . . . . . . . . 13.6.Ejercicio0306. Finanzas . . . . . . . . . . . . . . . . . . . . . . . . . 13.7.Ejercicio0307. MiNumero . . . . . . . . . . . . . . . . . . . . . . . . 13.8.Ejercicio0308. Empareja . . . . . . . . . . . . . . . . . . . . . . . . . 13.9.Ejercicio0309. satelite . . . . . . . . . . . . . . . . . . . . . . . . . . 13.10. Ejercicio0310. peso . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.11. Ejercicio0311. millas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21 21 22 22 22 22 23 24 24 24 25 25 26 27 27 28 29 29 31 31 31 31 33 33 33 34 34 34 35 35 36 37

3.4

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

ORIENTADA A OBJETOS PROGRAMACION

TEMA 3. OBJETOS

13.12. Ejercicio0312. coche . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.13. Ejercicio0313. consumo . . . . . . . . . . . . . . . . . . . . . . . . . 13.14. Ejercicio0314. consumo1 . . . . . . . . . . . . . . . . . . . . . . . . 14. EJERCICIOS OBLIGATORIOS 14.1.prgt3e1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.prgt3e2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3.prgt3e3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37 37 38 38 39 40 40

1.
1.1.

ORIENTADA A OBJETOS PROGRAMACION


Ventajas

Orientada a Objetos (POO), tiene las siguientes ventajas: La Programacion 1.- Modularidad. carga las funciones necesarias para ese A nivel de codigo del lenguaje: Solo programa. Ejemplo: Librer as de java. del programa en modulos A nivel de codigo de programa: Descomposicion problemas. o funciones. Permitiendo descomponer el problema en pequenos de una clase (modulo), habra que Si hay un problema en una funcion solo modicar y compilar esa clase. . 2.- Reutilizacion El codigo de las clases se pueden reutilizar en otros programas o clases. 3.- Pruebas. sencillas, ya que se pueden Las prueba o testeo de programas, son mas probar clases de forma independiente, pudiendo reprogramar esa clase solo o bien reemplazarla por otra que sabemos que funciona. . 4.- Ocultacion de la informacion, oculta los detalles de implementacion o La ocultacion y lo importante es el interface ( o parametros). programacion,

1.2.

Propiedades

Las propiedades fundamentales en la POO son: 1.- Abstraccion 2.- Encapsulacion 3.- Herencia 4.- Polimorsmo
FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.5

TEMA 3. OBJETOS

ORIENTADA A OBJETOS PROGRAMACION

1.3.

Abstraccion
de Abstraccion : Denicion Sintetizar las propiedades y funciones de la realidad en una clase de objetos.

se centra en las caracter del La abstraccion sticas del objeto en funcion observador Es una de las v as fundamentales por la que los humanos combatimos la complejidad. surge del reconocimiento de las similitudes entre ciertos objetos, La abstraccion de concentrarse en esas situaciones o procesos del mundo real, y en la decision similitudes e ignorar por el momento las diferencias. Ver la gura 1 de la pagina 6

Figura 1: La abstraccion Cualquier programa en Java cumplir a la abstraccion.

1.4.

Encapsulacion
de Encapsulacion : Denicion Propiedad de ocultar los detalles de los objetos.

No se requiere saber como un objeto realiza las operaciones o metodos. Las interesa saber como llamar a sus clases se ven como cajas negras, donde solo funciones. De modo predeterminado, los valores de atributos de un objeto se encapsulan objetos. en el objeto y no pueden ser manipulados directamente por los demas

3.6

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

ORIENTADA A OBJETOS PROGRAMACION

TEMA 3. OBJETOS

de la informacion o Ocultamiento de la informacion: Encapsulacion Hace de metodos referencia a la declaracion y atributos como parte privada de una clase, al ser privado no se puede acceder directamente a ellos desde otras clases. Ver la gura 2 de la pagina 7

Figura 2: La encapsulacion y el encapsulamiento son conceptos complementarios: la La abstraccion primera se centra en el comportamiento observable de un objeto, mientras que da lugar a este el encapsulamiento se centra en la implementacion comportamiento. funcione la implementacion debe estar encapsulada. Para que la abstraccion

1.5.

Herencia
de Herencia: Denicion Propiedad de poder heredar propiedades y metodos entre clases.

para construir una clase a Es una tecnica de los lenguajes de programacion partir de una o varias clases, compartiendo atributos, operaciones y, en ocasiones, restricciones, dentro de una jerarqu a de clases. Las clases hijos heredan las caracter sticas de sus clases antecesoras; los atributos y las operaciones declaradas en la clase padre son accesibles en la clase hijo, como si se hubieran declarado localmente. De esta forma las clases se estructura como una Jerarquica. Las jerarqu as o clasicaciones permiten gestionar la complejidad ordenando creciente. los objetos dentro de arboles de clases de abstraccion Ver la gura 3 de la pagina 8

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.7

TEMA 3. OBJETOS

ORIENTADA A OBJETOS PROGRAMACION

Figura 3: La jerarqu a puede heredar de otra clase (superclase). Pero de Eh java, una clase solo una clase pueden heredar muchas clases (subclases), Ejemplo, coche, camion heredan de la superclase veh culo. Cuando la clase hereda de la superclase, hereda todas las propiedades y podra tener sus propias funciones. metodos. Ademas La herencia es que una clase, hereda de otra los atributos y funciones, cosa que aun no hemos visto en clase. Ejemplo herencia en java: La clase cuadrado herada de la superclase gura.
public class cuadrado extends figura { ... }

1.6.

Polimorsmo
de Polimorsmo: Denicion Permite denir un metodo de varias formas, para que pueda comportarse de forma diferente.

Tipos Polimorsmo de sobrecarga El polimorsmo de sobrecarga ocurre cuando las funciones del mismo nombre existen, con funcionalidad similar, en clases que son completamente independientes una de otra (estas no tienen que ser

3.8

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

ORIENTADA A OBJETOS PROGRAMACION

TEMA 3. OBJETOS

clases secundarias de la clase objeto). Por ejemplo, la clase complex, display. la clase image y la clase link pueden todas tener la funcion Esto signica que no necesitamos preocuparnos sobre el tipo de objeto con el que estamos trabajando si todo lo que deseamos es verlo en la pantalla. Por lo tanto, el polimorsmo de sobrecarga nos permite denir operadores cuyos comportamientos var an de acuerdo a los parametros que se les aplican. As es posible, por ejemplo, agregar el operador haciendo + y hacer que se comporte de manera distinta cuando esta entre dos numeros referencia a una operacion enteros (suma) o bien cuando se encuentra entre dos cadenas de caracteres (concatenacion). Polimorsmo parametrico El polimorsmo parametrico es la capacidad para denir varias funcio nes utilizando el mismo nombre, pero usando parametros diferentes (nombre y/o tipo). El polimorsmo parametrico selecciona automatica del tipo de datos pasados mente el metodo correcto a aplicar en funcion en el parametro. Por lo tanto, podemos por ejemplo, denir varios metodos homonimos de addition() efectuando una suma de valores. El metodo int addition(int,int) devolver a la suma de dos numeros enteros. oat addition(oat, oat) devolver a la suma de dos otantes. char addition(char, char) dar a por resultado la suma de dos caracteres denidos por el autor. Una signature es el nombre y tipo (estatico) que se da a los argumentos Por esto, una rma de metodo elemento de una funcion. determina que se va a llamar. Polimorsmo de subtipado La habilidad para redenir un metodo en clases que se hereda de una Por lo tanto, se puede llamar un clase base se llama especializacion. metodo de objeto sin tener que conocer su tipo intr nseco: esto es polimorsmo de subtipado. Permite no tomar en cuenta detalles de las clases especializadas de una familia de objetos, enmascarandolos con una interfaz comun (siendo esta la clase basica). Imagine un juego de ajedrez con los objetos rey, reina, all, caballo, to cada uno heredando el objeto pieza. El metodo rre y peon, movimiento podr a, usando polimorsmo de subtipado, hacer el movimiento correspondiente de acuerdo a la clase objeto que se llama. Esto permite al programa realizar el movimiento-de-pieza sin tener que verse conectado con cada tipo de pieza en particular. Hay autores que utilizan la palabra sobrecarga para todo tipo de Aclaracion: polimorsmo.
FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.9

TEMA 3. OBJETOS

OBJETO

2.
2.1.

OBJETO
Denicion
de objeto: Denicion Un objeto es un caso particular de una clase. Ejemplo: El objeto Juan, es un caso concreto de la clase Persona. de Objeto: Denicion Grady Booch 91 Un objeto tiene estado, comportamiento, e identidad; la estructura y comportamiento de objetos similares son denidos en su clase comun; los terminos instancia y objeto son intercambiables. James Martin 92 Un objeto es cualquier cosa a la que se le aplica un concepto, el que que nosotros compartimos y aplicable a representa una idea o nocion ciertos objetos en nuestro conocimiento. Rumbaugh 91 o cosa Nosotros denimos un objeto como un concepto, abstraccion con un signicado y l mites bien denidos para el problema a manejar.

2.2.

Caracter sticas

Caracter sticas de un Objeto: OBJETO = ESTADO + COMPORTAMIENTO + IDENTIDAD Siendo: El Estado Agrupa los valores instantaneos de todos los atributos de un objeto que cualica al objeto que sabiendo que un atributo es una informacion la contiene. El estado evoluciona con el tiempo, es variable y puede verse como la consecuencia de sus comportamientos pasados. El Comportamiento. Agrupa todas las competencias de un objeto y describe sus acciones y reacciones. Cada atomo de comportamiento se llama operacion. Las operaciones de un objeto se desencadenan a consecuencia de un est mulo externo, representando en forma de un mensaje enviado por otro objeto.

3.10

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

CLASES

TEMA 3. OBJETOS

Estado y Comportamiento relacionados: el comportamiento El estado y el comportamiento estan en un instante dado depende del estado actual, y el estado puede ser modicado por el comportamiento. es posible hacer aterrizar un avion si este esta volando. Ejemplo: Solo La Identidad Distingue los objetos de forma no ambigua, independientemente de su estado. Distingue dos objetos en los que todos los valores de atributos son identicos. La identidad es un concepto, no se representa de manera espec ca en el modelado. Cada objeto posee una identidad de manera impl cita.

3.
3.1.

CLASES
Denicion
de clase: Denicion los objetos. Una clase permite denir como va a seran

3.2.

Caracter sticas
de un conjunto de objetos. La clase describe el ambito de denicion Cada objeto pertenece a una clase. contenidas en la clase y las particularidades Las generalidades estan contenidas en los objetos. estan

3.3.

Clases en java

Las clases en java: Nombre de la clase: debe llamarse igual que el archivo mas adelante. Propiedades: Opcional. Se estudiara Por ejemplo: public class MiClase(), con esto se indica que la clase puede ser accedida por otras clases. mas adelante. Parametros: Opcional. Se estudiara Por ejemplo: public class MiClase(int Miparametro)

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.11

TEMA 3. OBJETOS

CLASES

Atributos: Son propiedades de la clases propiedades o datos de la clase, y Los atributos se llaman tambien referencia a variables de la clase. Todas las las variables y las funciones en java deben estar dentro de una clase. Por ejemplo:
public class MiClase { int MiAtributo ; }

Metodos o Funciones: Son funciones o procedimientos que puede realizar un objeto, cuando recibe una llamada Por ejemplo:
public class MiClase { int MiAtributo ; void MiMetodo (){ } }

Esquematicamente los elementos quedar an as :


[ Propiedades ] class N o mb re De L aC la se [ Atributos ] [ M e todos ] } {

Nota: Los corchetes indican opcionalidad. Cuando un objeto quiere interactuar con otro, env a un Mensaje o llamada a un metodo de la clase. de objetos de otra clase. Ejemplo: Creacion Tenemos que crear dos archivos: Pajaro10.java, Pajaro11.java, que contienen dos clases diferentes. ../prgcodigo/prgcod03/Pajaro10.java
// eliminados acentos . class Pajaro10 { //*** atributos o propiedades **** private char color ; // propiedad o atributo color private int edad ; // propiedad o atributo edad //*** metodos de la clase **** public void setedad ( int e ) { edad = e ; } public void printedad () { System . out . println ( edad ); } public void setcolor ( char c ) { color = c ; }

3.12

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

CLASES

TEMA 3. OBJETOS

public void printcolor () { switch ( color ) { // Los pajaros son verdes , amarillos , grises , negros o blancos // No existen p ~ A jaros de otros colores case v : System . out . println (" verde "); break ; case a : System . out . println (" amarillo "); break ; case g : System . out . println (" gris "); break ; case n : System . out . println (" negro "); break ; case b : System . out . println (" blanco "); break ; default : System . out . println (" color no establecido "); } } }

../prgcodigo/prgcod03/Pajaro11.java
class Pajaro11 { public static void main ( String [] args ) { Pajaro10 p = new Pajaro10 (); // p . edad =5; // Error ; p . setedad (5); p . printedad (); } } /* EJECUCION : 5 */

Consideraciones: Tenemos que crear y compilar primero Pajaro10.java. Pajaro11.java, el cual usa la clase Tenemos que crear despues Pajaro10.java. ejecutaremos Pajaro11, ya que la clase principal es Pajaro10 ( ya Solo que tiene el main() ). En la clase Pajaro11 se crea un objeto de la clase Pajaro10, en la orden: Pajaro10 p=new Pajaro10(); La clase Pajaro11 no puede cambiar las variables de la clase Pajaro10 a traves de las funciones publicas. denidas como privado. Lo hara Por ejemplo para cambiar la edad no podemos poner p.edad=5, ya que con una , y se hara edad es privado, es gracias a la encapsulacion publica llamada setedad(). funcion

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.13

TEMA 3. OBJETOS

ENTRADA Y SALIDA

4.
4.1.

ENTRADA Y SALIDA
Introduccion

de la consola o terminal, introducir datos por teclado Java permite a traves y mostrarlos por pantalla. Para ello dispone dentro paquete llamado java.lang la clase System. En temas posteriores veremos los ujos de entrada y salida en general (no solo por consola). La clase System dispone de objetos static asociados a los ujos standard de entrada y salida, estos se pueden abrir con instrucciones para su uso, pero no hace falta cerrarlos ya que se cierran solos. Los objetos asociados a la entrada salida de consola son: OBJETO System.out System.in System.err DESCRIPCION Salida Standard o Pantalla Entrada Standard o Teclado Salida Standard o de Error

4.2.

System.out

lo vimos en el ejemplo HolaMundo, usando las Mostrar en pantalla informacion, funciones print o println:
System . out . println (" Hola Mundo ");

4.3.

System.in

Para poder leer datos de teclado por terminal deberemos importar la librer a java.io la cual permite utilizar la clase InputStreamReader, y su clase derivada las funciones para poder leer read() para leer un BufferReader que es la que usara caracter, o readLine() para leer una l nea.

4.4.

Ejemplo: Lectura de un caracter

../prgcodigo/prgcod03/LeeCaracter.java
/* Importamos libreria para I n p u t S t r e a m R e a d e r */ import java . io .*; class LeeCaracter { public static void main ( String [] args ) { I n p u t S tr e a m R e a d e r input = new I n p u t S t r e a m R e a d e r ( System . in ); Buffe redRead er buffer = new Buf feredRea der ( input );

3.14

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

ENTRADA Y SALIDA

TEMA 3. OBJETOS

char caracter ; try { System . out . print (" Introduce caracter : "); caracter = ( char ) buffer . read (); System . out . println (" Caracter leida : "+ caracter ); } catch ( Exception e ) { e . pr i nt St ac k Tr ac e (); } } } /* EJECUCION : Introduce caracter : a Caracter leida : a */

Explicacion: El objeto System.in pertenece a la Clase InputStreamReader, por ello importamos java.io que es donde se encuentra la clase denida:
I n p u t S t r e a m R e a d e r input = new I n p u t S t r e a m R e a d e r ( System . in );

Nos creamos una zona de memoria donde operar:


Buff eredRead er buffer = new Buf feredRe ader ( input );

Leemos un caracter.
caracter = ( char ) buffer . read ();

Con try-catch le indicamos que haga lo de dentro del try y si hay error muestre lo que devuelve la funcion
e . p ri nt St a ck Tr ac e ();

4.5.

Ejemplo: Lectura de un numero

Este programa lee un numero y luego la imprime en pantalla. ../prgcodigo/prgcod03/LeeNumero.java


import java . io . Buffere dReader ; import java . io . IOException ; import java . io . I n p u t S t r e a m R e a d e r ; /** * Fichero : LeeNumero . java * @author Paco Aldarias < paco . a ld ar i as @c ee d cv . es > * @date 28 - oct -2013 */

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.15

TEMA 3. OBJETOS

ENTRADA Y SALIDA

public class LeeNumero { public static void main ( String [] args ) { I n p u t S t r e a m R e a d e r input = new I n p u t S t r e a m R e a d e r ( System . in ); Buffe redRead er buffer = new Buf feredRea der ( input ); int numero ; String linea ; try { System . out . print (" Introduce Numero : "); linea = buffer . readLine (); numero = Integer . parseInt ( linea ); System . out . println (" Numero leido : "+ numero ); } catch ( IOException | N u m b e r F o r m a t E x c e p t i o n e ) { } } } /* EJECUCION : Introduce Numero : 1 Numero leido : 1 */

Explicacion: Leemos una linea.


linea = buffer . readLine ();

Se convierte la linea de tipo String en un numero con la orden parseInt:


numero = Integer . parseInt ( linea );

4.6.

Ejemplo: Lectura de una linea

Este programa lee una linea de teclado y luego la imprime en pantalla. ../prgcodigo/prgcod03/Linea.java
/* Programa que lee una linea por teclado * y la imprime en pantalla */ // import java . io .*; class Linea { public static void main ( String [] args ) { I n p u t S tr e a m R e a d e r input = new I n p u t S t r e a m R e a d e r ( System . in ); Buffe redRead er buffer = new Buf feredRea der ( input ); try { System . out . print (" Introduce Linea : "); String linea = buffer . readLine (); System . out . println (" Linea leida : "+ linea ); } catch ( Exception e ) {

3.16

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

PARAMETROS

TEMA 3. OBJETOS

e . pr i nt St ac k Tr ac e (); } } } /* EJECUCION : Introduce Linea : aaaaaaaaaaaa Linea leida : aaaaaaaaaaaa */

Se puede apreciar que aqu usamos la orden readLine(), en lugar de read().

4.7.

System.err

Representa la salida de error standard, por defecto es la pantalla. Se utiliza para mostrar los mensajes de error.

4.7.1.

Ejemplo: Error Aritmetico

Este programa lee un numero y luego la imprime en pantalla. ../prgcodigo/prgcod03/ErrorDivision.java

class Err orDivisi on1 { public static void main ( String [] args ) { int num1 =2 , num2 =0 , cociente =0; String linea ; try { cociente = num1 / num2 ; } catch ( A r i t h m e t i c E x c e p t i o n ae ) { System . err . println (" Error Aritmetico : "+ ae . getMessage ()); return ; } System . out . println (" El cociente es : "+ cociente ); } } /* EJECUCION : Error Aritmetico : / by zero */

Se puede apreciar que se produce un error aritmetico por dividir por 0, muestra el mensaje de error y termina (return).

5.
5.1.

PARAMETROS
Denicion

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.17

TEMA 3. OBJETOS

PARAMETROS

de parametro Denicion de un metodo: Los valores que se les pasa a las funciones.

Ejemplo: Clase pajaro Utilizaremos esta clase para estudiar las funciones con sus parametros, y valores de retorno. ../prgcodigo/prgcod03/Pajaro21.java
// Acentos quitados . class Pajaro21 { private static int numpajaros =0; private char color ; public void setColor ( char c ){ color = c ; } public char getColor () { return color ; }; public static void main ( String [] args ) { Pajaro21 p1 ; char color ; p1 = new Pajaro21 (); p1 . setColor ( c ); color = p1 . getColor (); System . out . println ( color ); } } /* EJECUCION : c */

Ejemplos de funciones: sin valor de retorno (void): 1.- Ejemplo de funcion


public void setColor ( char c ){ color = c ; }

En este ejemplo el parametro es c, y es de tipo char. La llamada a la funcion:


p1 . setColor ( c );

setColor con parametro En este ejemplo se llama a la funcion c. El valor cse copiara en el parametro c. con valor de retorno. 2.- Ejemplo de funcion
FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.18

CONSTRUCTORES

TEMA 3. OBJETOS

public char getColor (){ return c ; }

En este ejemplo el valor devuelto es c y es de tipo char. La llamada a la funcion:


char color = p1 . getColor ();

getColor sin parametros. En este ejemplo se llama a la funcion El valor en la variable color devuelto se copiara

5.2.

Caracter sticas
de los Las funciones o metodos permiten pasarle valores a traves parametros. Los parametros deben declararse su tipo que puede ser basico o una clase. Las funciones o metodos puede devolver valores o no. Las funciones que son constructoras no devuelven valores. Las funciones que no devuelven nada se les pone void. por parte de un objeto es poniendo el nombre La llamada a la funcion y entre parentesis del objeto punto nombre de la funcion los parametros.

6.
6.1.

CONSTRUCTORES
Denicion
de constructor Denicion Metodo que se llama siempre para crear un objeto de una clase. Ejemplo: Clase con constructor. ../prgcodigo/prgcod03/Pajaro20.java

// Acentos quitados . class Pajaro20 { //*** atributos o propiedades **** private static int numpajaros =0; private char color ; // propiedad o atributo color private int edad ; // propiedad o atributo edad //*** metodos de la clase **** static void nuevopajaro () { numpajaros ++; }; Pajaro20 () { FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.19

TEMA 3. OBJETOS

CONSTRUCTORES

color = v ; edad = 0; nuevopajaro (); } Pajaro20 ( char c , int e ) { color = c ; edad = e ; nuevopajaro (); } static void mu estrapaj aros () { System . out . println ( numpajaros ); }; public static void main ( String [] args ) { Pajaro20 p1 , p2 ; p1 = new Pajaro20 (); p2 = new Pajaro20 ( a ,3); p1 . muest rapajar os (); p2 . muest rapajar os (); } } /* EJECUCION : 2 2 */

6.2.

Caracter sticas
Un constructor de un objeto, permite crear un objeto tomando como base una clase. Si no se declara el constructor de un clase, utiliza uno por defecto. El constructor se llama igual que la clase. Al constructor no hay que ponerle valor de retorno. El constructor permite inicializar las variables miembro de la clase para ese objeto. En Java existen unos metodos opcionales que son constructores y destructores de objetos de una clase.

Ejemplo: Constructor
Pajaro20 () { color = v ; edad = 0; nuevopajaro (); }

El constructor inicializa los atributos del objeto que lo llama con valor de color y nuevopajaro(). edad, y llama a la funcion SobreSi un constructor se dene varias veces se dice que el constructor esta cargado.

3.20

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

DESTRUCTORES

TEMA 3. OBJETOS

6.3.

Constructores sin parametros

Las variables de la clases se inicializan segun ; char: \0; el tipo: numericas:0 String, Objeto: null. Las variables locales de las funciones no se inicializan. Es bueno de inicializar el constructor sin parametros, porque aunque se inicialicen es bueno ponerles un valor. Ejemplo: Constructor sin parametros.
coche () { marca =" ford "; modelo =" fiesta "; }

6.4.

Creando objetos con el constructor

Cuando se crea un objeto con: new Clase() se llama al constructor de la clase. Ejemplo: Constructor Se puede ver que se llama al constructor cada vez que se crea un objeto ../prgcodigo/prgcod03/constructor.java
/* * * * Ejemplo que permite ver que se llama al constructor cada vez que se crea un objeto */

public class ejemplo { private int atributo ; ejemplo () { System . out . println (" Constructor sin "); } ejemplo ( int parametro ) { System . out . println (" Constructor con "); } public static void main ( String args []) { ejemplo e1 = new ejemplo (); ejemplo e2 = new ejemplo (1); } } /* EJECUCION : Constructor sin Constructor con */

Se aprecia que cuando se crea un objeto se llama al constructor segun los parametros.

7.
7.1.

DESTRUCTORES
Denicion
FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.21

TEMA 3. OBJETOS

STATIC

de destructor Denicion Los destructores se ejecutan de forma automatica, cuando se destruye un objeto.

7.2.

Caracter sticas
Permite liberar recursos. En Java no hay destructores. Es decir, no permite denirnos un metodo que destruya un objeto. Al nal del programa se llama a todos los destructores relacionados con los objetos creados, para liberar memoria.

8.

STATIC
de static: Denicion se crea una Un metodo o atributo de una clase es static, si solo instancia para todos los objetos de esa clase.

8.1.

Variables Static

Caracter sticas: Se necesita tener un atributo static cuando necesitamos que una propiedad de la clase sea comun a todas los objetos de esa clase. nada, y en cada objeto de la Si un atributo no es static no se pondra su propio valor. clase tendra Ejemplo: Ver Pajaro20.java del apartado 6.1, de la pagina 19
private static int numpajaros =0;

0, pero cada vez La variable numPajaros de la clase Pajaro inicialmente valdra ya que es una variable comun que se cree un pajaro nuevo se incrementara, a todos los objetos.

8.2.

Funciones static

y no Hace que los metodos se carguen en memoria en tiempo de compilacion a medida que se ejecutan las l neas de codigo del programa.

3.22

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

PAQUETES

TEMA 3. OBJETOS

Van precedidos del modicador static. Para invocar a un metodo estatico no se necesita crear un objeto de la clase en la que se dene: Si se invoca desde la clase en la que se encuentra denido, basta con escribir su nombre. Si se le invoca desde una clase distinta, debe anteponerse a su nombre, el de la clase en la que se encuentra seguido del operador punto (.) <NombreClase>.metodoEstatico Suelen emplearse para realizar operaciones comunes a todos los objetos de la clase. No afectan a los estados de los mismos (a los valores de sus variables de instancia). Por ejemplo, si se necesita un metodo para contabilizar el numero de objetos creados de una clase, tiene sentido que sea estatico ya que su funcion (aumentar el valor de una variable entera) se realizar a independientemente del objeto empleado para invocarle. Ejemplo: ../prgcodigo/prgcod03/MetodoStatic.java
/** * Fichero : MetodoStatic . java * @author Paco Aldarias < paco . a ld ar i as @c ee d cv . es > * @date 04 - nov -2013 */ public class MetodoStatic { int a = 1; static int b = 2; static void funcionStatic () { System . out . println ( a ); System . out . println ( b ); } void funcion () { // System . out . println ( b ); // Error System . out . println ( a ); } public static void main ( String [] args ) { MetodoStatic p = new MetodoStatic (); funcionStatic (); p . funcion (); System . out . println ( b ); // System . out . println ( a ); // Error } } /* Ejecicion 2 2 1 2 */

9.

PAQUETES

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.23

TEMA 3. OBJETOS

PAQUETES

9.1.

Denicion
de paquete: Denicion Conjunto de clases relacionadas.

Librer a y Paquete (Package) signica lo mismo. Librer a = Conjunto de clases.

9.2.

Caracter sticas

Caracter sticas: Las clases que forman un paquete pueden derivar de varias clases. Permite organizar mejor las clases. en paquetes diferentes. Se pueden llamar dos clases igual se estan relacionadas Las clases del mismo package estan import. Para poder usar un paquete debemos usar la instruccion Tipos: Del Programador: Son los que crea el programador. Los llamaremos paquetes. Netbeans les llama paquetes de fuentes. mas adelante. Se veran Ejemplo: package Tipo1.Subtipo1.paquete; De Java: Son los paquetes que vienen con Java. Los llamaremos librer as. Ejemplo: import java.lang.System;

9.3.

Import

Analicemos como usar las librer as de java. Uso: Para usar una clase de una paquete. import java.lang.System; Usar todas las clases de la librer a. import java.lang.*; Se pueden crear objetos sin import, indicando directamente por la clase. Ejemplo: Las instruccion:

3.24

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

PAQUETES

TEMA 3. OBJETOS

import java . awt .*; Frame fr = new Frame (" Frame ");

Es equivalente a:
Frame fr = new java . awt . Frame (" Frame ");

9.4.

Application Programming Interface (API)

de Aplicaciones (del ingles Application El API es la Interfaz de Programacion Programming Interface) y contiene todas las clases agrupadas segun sus llamadas packages). funciones en librer as (tambien en Java porque permite que El API es la principal herramienta de programacion uno use dentro de sus programas las clases ya disenadas y existentes dentro del lenguaje. API = Conjunto de librer as. Cuando importamos, estamos cogiendo una librer a del API. Las librer as de java se encuentran con el nombre de Java Platform, Standard Edition API Specication (Java SE ) Esta es la web: http://download.oracle.com/javase/7/docs/api/ El API de java consta de: Librer as disponibles Clases disponibles en la librer a escogida. de la clase o interface. Especicacion Algunas librer as de java son: java.io java util java.lang

9.5.

Classpath

Para poder localizar un paquete en java, se necesita saber: El nombre La ruta o CLASSPATH.

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.25

TEMA 3. OBJETOS

10

MODELO VISTA CONTROLADOR(MVC)

CLASSPATH es una variable de entorno, al igual que la variable PATH denido en un ordenador, permiten denir las rutas donde encontrar las aplicaciones. Por defecto las librer as de Java ya sabe como encontrarlas. Pero tanto las creadas por el programador, como nuevas librer as hay que indicar donde se encuentran. Formas de indicar el CLASSPATH: 1.- Al ejecutar cualquier programa de java (java, javac, etc), es indicarle el parametro -classpath. Ejemplo:
java - classpath / java / paquete programa

Siendo /java/paquete donde se encuentra los paquetes que usa el programa java. 2.- Establecer la variable de entorno desde la terminal de linux. Ejemplo:
CLASSPATH =/ java / paquete1 :/ java / paquete2 :/ java / paquete3 export CLASSPATH

En Windows habr a que cambiar los : por ; y la / por \. mas sobre este punto. En temas siguientes se profundizara

10.

MODELO VISTA CONTROLADOR(MVC)

los programas que separa El modelo vista controlador es una forma de disenar aplicacion en las siguientes capas: de los datos Modelo. Es la representacion Controlador. Es la parte que controla la aplicacion. Vista. Es la parte que permite interactuar con el usuario. http://es.wikipedia.org/wiki/Modelo_Vista_Controlador java, el modelo seria las clases con los datos que se vaya En una aplicacion a trabajar, por ejemplo la clase persona. El controlador ser a el programa que contiene el main() y va realizar operaciones. Y la vista ser a las clases que realizan operaciones de entrada y salida de datos para comunicarse con el usuario. Ver la gura 4 de la pagina 27

3.26

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

11

NETBEANS

TEMA 3. OBJETOS

Figura 4: MVC

11.
11.1.

NETBEANS
Paquetes

En Netbeans podemos tener paquetes con nombre o predeterminado. Ver la gura 5 de la pagina 27

Figura 5: Paquetes en Netbeans Paquetes con nombre. Cuando creamos un proyecto, netbeans nos crea un paquete con el nombre del proyecto, y cada vez que creemos una clase dentro de este el nombre del paquete con un import. Esto es lo paquete le pondra recomendable.
FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.27

TEMA 3. OBJETOS

11

NETBEANS

Podemos de todas formas crear otros paquetes y ponerle el nombre que queramos. Paquete predeterminado. Puede pasar que creemos una clase dentro del proyecto, pero fuera del la clase en el paquete predeterminado. paquete. Entonces nos pondra las clases creadas dentro de ella no tendran el nombre Ademas de import. Por defecto todas las clases dentro pertenecen al mismo paquete. Esto no es lo recomendable.

11.2.

Personalizar la plantilla

Para que cada vez que creemos una clase en netbeans nos aparezcan nuestros datos y la fecha, debemos ir a Menu, Herramientas, Plantillas. Elegimos la plantilla que queremos personalizar que en nuestro caso es Java Class y Java Main Class. Ver la gura 7 de la pagina 29

Figura 6: Conguracion Personalizamos la plantilla del siguiente modo pulsando los botones: Deniremos el usuario Conguracion. Ver la gura 7 de la pagina 29 la plantilla de Java Class y Java Abrir editor. Deniremos como sera Main Class. quedar: Nos debera /**

3.28

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

12

ORIENTACIONES

TEMA 3. OBJETOS

Figura 7: Conguracion * Fichero: ${nameAndExt} * @author ${user} * @date ${date} */

Ver la gura 8 de la pagina 30 Resultado: Ver la gura 9 de la pagina 30

12.

ORIENTACIONES

En este tema se van a tener en cuenta los siguientes: Objetivos Criterio de Evaluacion.

12.1.

Objetivos

En este tema se pretender alcanzar los siguientes objetivos: Orientada a Conocer las ventajes y propiedades de la Programacion Objetos.
FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.29

TEMA 3. OBJETOS

12

ORIENTACIONES

Figura 8: Edicion

Figura 9: Resultado Estudio en profundidad del concepto de objeto. programas en los que se ven: Saber realizar pequenos por terminal. Entrada y salida de informacion Propiedades y metodos de los objetos.

3.30

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

13

EJERCICIOS PROPUESTOS

TEMA 3. OBJETOS

Constructores y Destructores de objetos. de librer Utilizacion as y paquetes. Conocer que es el API de Java.

12.2.

Criterios de evaluacion

En este tema se pretender alcanzar los siguientes objetivos: Escribir y probar programas sencillos, reconociendo y aplicando los orientada a objetos. e han identicado fundamentos de la programacion orientada a objetos. los fundamentos de la programacion Escribir programas basicos. Identicar objetos a partir de clases predenidas. Identicar metodos y propiedades de los objetos. Incorporar llamadas a metodos estaticos. Utilizar parametros en la llamada a metodos. Incorporar y utilizar librer as de objetos. Utilizar constructores. y compilacion Utilizar el entorno integrado de desarrollo en la creacion de programas simples.

12.3.

Recursos

En este tema se va a necesitar los siguientes recursos: Software: Sistema Operativo Llliurex/Ubuntu. Compilador de Java. JDK 1.7 IDE: Netbeans 7.3 Libro de consulta: [MP11] Tema 2

13.
13.1.

EJERCICIOS PROPUESTOS
Ejercicio0301. Pajaro12

Coge los cheros Pajaro10.java y Pajaro11.java, y metelos en el mismo chero haber dos clases dentro del chero. y llamalo Pajaro12.java. Deberan ../prgcodigo/prgcod03/Pajaro10.java
FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.31

TEMA 3. OBJETOS

13

EJERCICIOS PROPUESTOS

// eliminados acentos . class Pajaro10 { //*** atributos o propiedades **** private char color ; // propiedad o atributo color private int edad ; // propiedad o atributo edad //*** metodos de la clase **** public void setedad ( int e ) { edad = e ; } public void printedad () { System . out . println ( edad ); } public void setcolor ( char c ) { color = c ; } public void printcolor () { switch ( color ) { // Los pajaros son verdes , amarillos , grises , negros o blancos // No existen p ~ A jaros de otros colores case v : System . out . println (" verde "); break ; case a : System . out . println (" amarillo "); break ; case g : System . out . println (" gris "); break ; case n : System . out . println (" negro "); break ; case b : System . out . println (" blanco "); break ; default : System . out . println (" color no establecido "); } } }

../prgcodigo/prgcod03/Pajaro11.java
class Pajaro11 { public static void main ( String [] args ) { Pajaro10 p = new Pajaro10 (); // p . edad =5; // Error ; p . setedad (5); p . printedad (); } } /* EJECUCION : 5 */

1.- Que cambio hay que hacer para que funcione?. 2.- Cuantos cheros.class se generan?

3.32

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

13

EJERCICIOS PROPUESTOS

TEMA 3. OBJETOS

13.2.

Ejercicio0302. Pajaro13.

Partiendo de Pajaro12.java, crea un chero igual llamado Pajaro13.java. Arreglalo para que funcione. 1.- Dene un atributo nuevo y llamalo miAtributo de tipo int pero public, imprimelo en pantalla. Dale un valor a ese atributo a p de 2, en el main(). Funciona? 2.- Cumple la encapsulacion?

13.3.

Ejercicio0303. Pajaro16.

Borra el chero Pajaro10.class. Crea un chero llamado Pajaro16.java, igual al chero Pajaro11.java. Arreglalo para que funcione. 1.- Debemos volver a compilar Pajaro10.java? funciona si no hemos denido la clase Pajaro10.java? 2.- Por que orientada a objetos se esta viendo aqu 3.- Que ventaja de la programacion ?

13.4.

Ejercicio0304. LeeNumero1.

Modicar el chero LeeCaracter.java, y llamarlo LeerNumero1.java para que leer un numero en lugar de un caracter usando InputStreamReader. ../prgcodigo/prgcod03/LeeCaracter.java
/* Importamos libreria para I n p u t S t r e a m R e a d e r */ import java . io .*; class LeeCaracter { public static void main ( String [] args ) { I n p u t S t r e a m R e a d e r input = new I n p u t S t r e a m R e a d e r ( System . in ); Buffe redRead er buffer = new Buf feredRea der ( input ); char caracter ; try { System . out . print (" Introduce caracter : "); caracter = ( char ) buffer . read (); System . out . println (" Caracter leida : "+ caracter ); } catch ( Exception e ) { e . pr i nt St ac k Tr ac e (); } } } /* EJECUCION : Introduce caracter : a Caracter leida : a */

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.33

TEMA 3. OBJETOS

13

EJERCICIOS PROPUESTOS

13.5.

Ejercicio0305. ErrorDivision1.

Utilizando el ejercicio ErrorDivision.java, modicalo y llamalo ErrorDivision1.java, para que: Lee los numeros de entrada del dividendo y del divisor. si no hay error, y sin usar la orden Muestre el resultado (cociente) solo return. Muestre el error sin usar ArihtmeticException sino con Exception. ../prgcodigo/prgcod03/ErrorDivision.java

class Err orDivisi on1 { public static void main ( String [] args ) { int num1 =2 , num2 =0 , cociente =0; String linea ; try { cociente = num1 / num2 ; } catch ( A r i t h m e t i c E x c e p t i o n ae ) { System . err . println (" Error Aritmetico : "+ ae . getMessage ()); return ; } System . out . println (" El cociente es : "+ cociente ); } } /* EJECUCION : Error Aritmetico : / by zero */

13.6.

Ejercicio0306. Finanzas

Realiza una clase Finanzas que convierta dolares a euros y viceversa. Codica los metodos dolaresToEuros y eurosToDolares. Prueba que dicha clase funciona correctamente haciendo conversiones entre euros y dolares. La clase tiene que tener: el cambio Un constructor nanzas() por defecto, el cual establecera Dolar-Euro en 1.36. congurar el cambio Un constructor nanzas(double), el cual permitira dolar-euro.

13.7.

Ejercicio0307. MiNumero

Realiza una clase MiNumero que proporcione el doble, triple y cuadruple de un numero proporcionado en su constructor (realiza un metodo para doble, otro para triple y otro para cuadruple). Haz que la clase tenga un metodo main y comprueba los distintos metodos.

3.34

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

13

EJERCICIOS PROPUESTOS

TEMA 3. OBJETOS

13.8.

Ejercicio0308. Empareja

Empareja cada paquete con su correspondiente descripcion: Paquete o librer a java.security java.rmi java.beans java.applet java.math java.sql java.net java.swing java.io java.lang java.util Java.awt Descripcion

13.9.

Ejercicio0309. satelite

adele Modica la clase satelite y an los siguientes metodos: Metodo void variaAltura(double desplazamiento): Este metodo acepta positivo o negativo dependiendo de si el un parametro que sera satelite tiene que alejarse o acercarse a La Tierra. Debe pasarse como parametro el desplazamiento el cual debe sumarse a la distancia a la tierra del objeto. false si el satelite Metodo boolean enOrbita(): Este metodo devolvera en tierra, y true en caso contrario. esta Metodo void variaPosicion(double variap, double variam): Este metodo (meridiano y paralelo) permite modicar los atributos de posicion mediante los parametros variap y variam. Estos parametros seran al satelite valores positivos o negativos relativos que haran modicar su posicion. public class satelite { private double meridiano; private double paralelo; private double distancia_tierra; satelite (double m,double p,double d) { meridiano=m; paralelo=p; distancia_tierra=d; } satelite () {
FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.35

TEMA 3. OBJETOS

13

EJERCICIOS PROPUESTOS

meridiano=paralelo=distancia_tierra=0; } public void setPosicion(double m,double p,double d) { meridiano=m; paralelo=p; distancia_tierra=d; } public void printPosicion() { System.out.println("El satelite se encuentra en el paralelo " + paralelo + "Meridiano " + meridiano+ " a una distancia de la tierra de " + distancia_tierra+ " Kilometros"); } public static void main (String args[]) { satelite a=new satelite(); a.printPosicion(); } }

13.10.

Ejercicio0310. peso

las siguientes caracter Crea la clase peso, la cual tendra sticas: tener un atributo donde se almacene el peso de un objeto en Debera kilogramos. el peso y la medida en la que se ha tomado En el constructor se le pasara (Lbpara libras, Lipara lingotes, Ozpara onzas, Ppara peniques, Kpara kilos, Gpara gramos y Qpara quintales). de tener los siguientes metodos: Debera getLibras. Devuelve el peso en libras. getLingotes. Devuelve el peso en lingotes. getPeso. Devuelve el peso en la medida que se pase como parametro (Lbpara libras, Lipara lingotes, Ozpara onzas, Ppara peniques, Kpara kilos, Gpara gramos y Qpara quintales). del ejercicio toma como referencia los siguientes datos: Para la realizacion 1 Libra = 16 onzas = 453 gramos. 1 Lingote = 32,17 libras = 14,59 kg. 1 Onza = 0,0625 libras = 28,35 gramos. 1 Penique = 0,05 onzas = 1,55 gramos.

3.36

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

13

EJERCICIOS PROPUESTOS

TEMA 3. OBJETOS

1 Quintal = 100 libras = 43,3 kg. un metodo Crea ademas main para testear y vericar los metodos de esta clase.

13.11.

Ejercicio0311. millas

Crea una clase con un metodo millasAMetros() que toma como parametro de entrada un valor en millas marinas y las convierte a metros. Una vez tengas este metodo escribe otro millasAKilometros() que realice la pero esta vez exprese el resultado en kilometros. misma conversion, Nota: 1 milla marina equivale a 1852 metros.

13.12.

Ejercicio0312. coche

Crea la clase coche con dos constructores. Uno no toma parametros y el otro los atributos marca y modelo de la clase. s . Los dos constructores inicializaran Crea dos objetos (cada objeto llama a un constructor distinto) y verica que todo funciona correctamente.

13.13.

Ejercicio0313. consumo

Implementa una clase consumo, la cual forma parte de la centralita electronica de un coche y tiene las siguientes caracter sticas: Atributos: kms. Kilometros recorridos por el coche. litros. Litros de combustible consumido. vmed. Velocidad media. pgas. Precio de la gasolina. Metodos: el tiempo empleado en realizar el viaje. getTiempo. Indicara consumoMedio. Consumo medio del veh culo (en litros cada 100 kilometros). consumoEuros. Consumo medio del veh culo (en euros cada 100 kilometros). No olvides crear un constructor para la clase que establezca el valor de los apropiado para cada atributo. atributos. Elige el tipo de datos mas

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.37

TEMA 3. OBJETOS

14

EJERCICIOS OBLIGATORIOS

13.14.

Ejercicio0314. consumo1

Para la clase anterior implementa los siguientes metodos, los cuales podran modicar los valores de los atributos de la clase: setKms setLitros setVmed setPgas

14.

EJERCICIOS OBLIGATORIOS

y entrega: Realizacion 1.- Para cada ejercicio crear un proyecto en Netbeans y llamarlo prgtiejxxx, siendo i el tema, j el ejercicio, y xxx el nombre del usuario del cvs. Ejemplo: prgt3e1garcia ser a 3 el tema, 1 es el numero de ejercicio y garc a el usuario del cvs en bitbucket. 2.- Realizar el programa del enunciado. 3.- Formatear el codigo de todos los fuentes del proyecto 4.- Personalizar la plantilla de netbeans para que aparezcan vuestros datos en todos los cheros. 5.- Crear un repositorio en el cvs en bitbucket llamalo igual que el proyecto. del repositorio al usuario: ceeddaw 6.- Dar permisos de administracion 7.- Subir el proyecto al cvs bitbucket creado. Recordar que hay que: 1.- Guardar los cambios la primera vez). 2.- Menu Team, Inicialize (solo 3.- Crear un chero en la carpeta raiz del proyecto (en esa misma carpeta teneis el chero manifest.mf), que se llame Readme.md, y poner dentro el texto: Tema 3. Ejercicio prgt3e1 4.- Menu Team, Add (seleccionando el proyecto) 5.- Menu Team, Commit 6.- Menu Team, Push (sobre vuestro repositorio ya creado en bitbucket) del repositorio al aula virtual, de cada uno de los ejercicio. 8.- Subir la direccion Ejemplo para el usuario del cvs garc a ser a: https://bitbucket.org/garcia/prgt3e1garcia.git

3.38

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

14

EJERCICIOS OBLIGATORIOS

TEMA 3. OBJETOS

https://bitbucket.org/garcia/prgt3e2garcia.git https://bitbucket.org/garcia/prgt3e3garcia.git Todos los ejercicios deberan: Poner vuestro nombre y apellidos al inicio del chero. Estar formateados su codigo. de la informacion Cumplir el principio de encapsulacion El proyecto tiene que tener denida la clase principal, para que con darle a ejecutar proyecto funcione el programa. Si no se da permiso para descargar la practia del control de versiones un cero. No hay revision posterior. se tendra volver a corregir. Las dudas se Una vez puesta la nota, no se podra deben hacer antes de la entrega.

14.1.

prgt3e1

5 puntos. Dicultad: Baja. Valdra Realiza un proyecto en Java, que tenga la clase Numero que almacene un numero entero. ser una variable miembro de la clase. El valor entero (o numero interno) debera de la informacion. El clase debera respetar los principios de encapsulacion las siguientes caracter Tendra sticas: 1.- Constructor por defecto que inicializa a 0 el numero interno. 2.- Constructor que inicializa el numero interno con paso de parametro. 3.- Metodo suma que permite sumarle un numero pasado como parametro al valor interno. 4.- Metodo getNumero Devuelve el valor interno. 5.- Metodo getDoble. Devuelve el doble del valor interno. 6.- Metodo setNumero. Inicializa de nuevo el valor interno con un numero que se le pasa como parametro. Ejemplo de ejecucion: Clase numero. Contructor por defecto: 0 Contructor con parametro: 5 Funci on modifica valor miembro: 10 Funci on suma: 15 Funci on doble: 30
FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.39

TEMA 3. OBJETOS

14

EJERCICIOS OBLIGATORIOS

14.2.

prgt3e2

3 puntos. Dicultad: Media. Valdra Realizar un proyecto en Java, cuya clase principal se llame Restaurante. almacenar los kilos de papas. La clase permitira tener en cuenta los principios de modularidad y ocultacion de los Se debera datos. implementa al menos los siguientes metodos: Se deberan void leerPapas() Leer por teclado los kilos de papas. int getComensales() Devuelve el numero de comensales pueden haber, sabiendo que se necesitan 3 kilos de papas por cada comensal. Ejemplo ejecucion: Ejercicio restaurante Introducir kgs de papas: 9 Con 9kgs de papas tenemos 3 comensal(es)

14.3.

prgt3e3

2 puntos. Dicultad: Alta. Valdra Crear una clase llamada Persona. el valor nombre Paco y la Crear el constructor por defecto, el cual dara edad 25. Crear dos objetos de la clase persona, desde main. con el constructor por defecto. El primer objeto se creara un constructor, con parametros El segundo objeto usara nombre y edad. los valores Juan y 15. Y se le pasaran los datos por teclado. En el ejemplo el El tercer objeto se tomaran nombre es Paco y la edad 25. usando el diseno Modelo-Vista La estructura del proyecto sera Controlador (MVC). un paquete para el modelo, otro para la vista y otro para el Se creara controlador. de respetarse la propiedad de la encapsulacion, en donde un Debera atributo no puede ser accesible desde otro objeto directamente. las clases en el paquete correspondiente. Se anadir an

3.40

FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

BIBLIOGRAF IA

TEMA 3. OBJETOS

Los nombres de las clases seran: del control del programa. Estara la funcion principal. Main. Se encargara las clases de los paquetes de vista y modelo. Importara de denir una persona, y sus operaciones Persona. Se encargara basicas. de la toma de datos y visualizacion de datos en Vista. Se encargara pantalla. Diagrama de paquetes: Ver la gura 10 de la pagina 41

Figura 10: Diagrama de paquetes Ejemplo de ejecucion: TOMA DE DATOS Nombre: Pedro Edad: 10 MOSTRANDO DATOS Paco 25 Juan 15 Pedro 10

BIBLIOGRAF IA
. Ra-ma, 1 edition, 2011. [MP11] JUAN CARLOS MORENO PEREZ. Programacion ISBN: 978-84-9964-088-4. LIBRO ALUMNO CICLOS. PRECIO: 35 EUR. en Java 2. Serie Schaum. [SA05] JESUS SANCHEZ ALLENDE. Programacion McGrawhill, 1 edition, 2005. ISBN: 84-481-4591-7. LIBRO DE EJERCICIOS. JAVA 2. NIVEL BASICO.
FRANCISCO ALDARIAS RAYA. CFGS: DESARROLLO DE APLICACIONES WEB. PROGRAMACION 2013/2014.

3.41

También podría gustarte