Desarrollo de Funciones en el Sistema Informático
                                                        Curso 2009/2010




Programación orientada a objetos (I)
       Presentación en diapositivas (PRE09)
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)
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
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);
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)
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
      }
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.
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
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.

Programación orientada a objetos (I)

  • 1.
    Desarrollo de Funcionesen el Sistema Informático Curso 2009/2010 Programación orientada a objetos (I) Presentación en diapositivas (PRE09)
  • 2.
    Desarrollo de Funcionesen 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 Funcionesen 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 Funcionesen 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 Funcionesen 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 Funcionesen 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 Funcionesen 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 Funcionesen 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 Funcionesen 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.