1. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Programación orientada a objetos (I)
Presentación en diapositivas (PRE09)
2. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Las clases en Java (I)
En Java, todo el código está incluido en clases
cómo crear una clase:
clase
class ejemploClase
{
declaración de atributos variables miembro
...
declaración de métodos funciones miembro
} aquí no es preciso el ;
fichero con el nombre ejemploClase.java
sensible a mayúsculas (EjemploClase es diferente a ejemploClase)
3. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Las clases en Java (y II)
Es posible:
class clase1 {} Restricciones en este caso:
class clase2 {} ● Sólo puede haber 1 clase pública
● La clase pública será la que dé el nombre al archivo
class clase3 {}
fichero clase3.java
Aunque lo habitual es:
class clase1 {} class clase2 {} class clase3 {}
fichero clase1.java fichero clase2.java fichero clase3.java
4. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Declaración de objetos (I)
Un objeto se declara de la misma manera que una variable:
Alumno juan;
nombre de la clase
nombre del objeto
juan es una referencia a un objeto de la clase Alumno
La declaración no crea espacio en memoria, es decir:
juan
null
Hay que reservar memoria si queremos utilizar el objeto (new):
juan = new Alumno(“Juan Pérez”, “Castellón”, true);
5. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Declaración de objetos (y II)
Profundicemos en su funcionamiento. Con el siguiente código:
● Línea 1. Alumno juan;
● Línea 2. juan = new Alumno (“Juan Pérez”, “Castellón”, true);
● Línea 3. Alumno alfredo;
● Línea 4. alfredo = juan;
Gráficamente.
Línea 1. juan
null
Línea 2. juan
Alumno (“Juan Pérez”, “Castellón”, true)
Línea 3. alfredo
null
Línea 4. juan alfredo
Alumno (“Juan Pérez”, “Castellón”, true)
6. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Acceso a los objetos
● El acceso se realiza a través del operador . (punto)
● Sirve para sus atributos y para sus métodos
Ejemplos:
int edad;
boolean trabaja;
trabaja = juan.ocupado; // acceso al atributo ocupado
edad = juan.calculaEdad(); // acceso al método calculaEdad()
●
Permite el uso del objeto this (objeto dentro del método)
Ejemplo:
int calculaEdad() {
GregorianCalendar hoy = new GregorianCalendar();
hoy.getTime();
return (this.fechaNacimiento – hoy) // acceso al atributo fechaNacimiento
}
7. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Destrucción de objetos
●
Un objeto se debe eliminar cuando se deja de utilizar.
● Es un proceso automático realizado por el garbage collector.
●
Si se utilizan otros recursos (por ejemplo ficheros) se debe:
●
Añadir método finalize(). Uso:
static void finalize() // siempre de tipo static void
{
… // instrucciones para liberar los recursos
}
●
El método finalize() se llamará automáticamente por el recolector.
8. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Constructores de copia
● recordemos que...
… la asignación entre objetos NO IMPLICA copia.
● por tanto...
… siempre se accede al mismo contenido.
●
y eso significa que...
NO EXISTEN CONSTRUCTORES DE COPIA
9. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Programación orientada a objetos (I)
Presentación en diapositivas (PRE09)
Esta obra de Cristian Jorge Garcia Marcos está bajo una licencia Reconocimiento-Compartir bajo la misma licencia 3.0 España de Creative Commons.
Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/3.0/es/ o envíe una carta a Creative Commons, 171
SecondStreet, Suite 300, San Francisco, California 94105, USA
Basado en el documento:
López, J. A. P., Xirgo, L. R. (2008, February 18). Introducción al desarrollo de software. Retrieved February 25, 2010, from UOCOpenCourseWare Web site: http://ocw.uoc.edu/informatica-
tecnologia-y-multimedia/introduccion-al-desarrollo-de-software, publicado bajo una licencia GNU Free Document License.