Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

22
“Programación orientada a Objetos II” SESION 02: Diseño de Clases. Constructores y Destructores Ing. Elmer Raúl Aro Valderrama 1

Transcript of Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

Page 1: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

1

“Programación orientada a Objetos

II”SESION 02: Diseño de Clases.

Constructores y DestructoresI ng . E lmer Raú l A ro

Va lder rama

Page 2: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

2

¿Qué es una clase?

• Una clase es simplemente una representación de un tipo de objeto; piense en ella como un plano que describe el objeto. Así como un plano puede utilizarse para construir varios edificios, una clase puede utilizarse para crear varias copias de un objeto.

• Aunque puede que no se haya dado cuenta, ya ha utilizado las clases. Por ejemplo, el control TextBox lo define una clase TextBox, que define su aspecto y sus funciones. Cada vez que arrastra un control TextBox a un formulario, realmente está creando una nueva instancia de la clase TextBox.

• Cada control TextBox es una copia exacta, aunque distinta, de la clase que lo define, la clase TextBox. Puesto que cada objeto es una "instancia" independiente de una clase, la acción de crear una clase se denomina creación de instancias.

• Hasta ahora ha agregado los controles TextBox a su formulario arrastrándolos desde el Cuadro de herramientas, pero también puede crear instancias de un objeto TextBox en su código si utiliza la palabra clave New.

Page 3: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

3

¿Qué es una clase?

Page 4: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

4

¿Qué es un Objeto?

Page 5: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

5

EJEMPLOS

Page 6: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

6

EJEMPLOS

Page 7: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

7

¿QUE ES UN ¿METODO?

Page 8: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

8

• El constructor de una clase es un método estándar para inicializar los objetos de esa clase. Es una función que se ejecuta siempre al crear un objeto. Los constructores de una clase tienen siempre el nombre de la clase y no tiene ningún valor devuelto (ni siquiera void). Si el usuario no declara un constructor el sistema (En este caso Java) siempre crea un constructor por defecto sin argumentos. En el momento en el que el usuario define un constructor el constructor del sistema se elimina y es sustituido por el, o los, constructores definidos (al tratarse de un método más el constructor puede sobrecargarse).

• Para inicializar un objeto basta con llamar a su constructor después de la palabra reservada new y asignarlo a una referencia declarada previamente. Un constructor es un método que se ejecuta cada vez que se crea un objeto, el propósito de este procedimiento es el de inicializar los datos del objeto. El nombre del constructor siempre es igual al nombre de la clase.

• Se invoca automáticamente cuando new crea un objeto de esa clase.• Los constructores se declaran en el momento de definir la clase. Un constructor puede

llamar a otro definido por medio de la palabra this

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE

Page 9: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

9

• El constructor puede tener parámetros. En este caso, se deben colocar los argumentos respectivos al crear el objeto:

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE

Se pueden colocar varios constructores. Durante la creación de un objeto, se invoca aquel que calza con los argumentos dados:

Page 10: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

10

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE

Page 11: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

11

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE

Page 12: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

12

• Un destructor es un método que se invoca automáticamente cuando el objeto se destruye. JAVA no posee destructores, porque tiene recolección de basuras. C++ posee destructores. Un destructor es un método que es ejecutado cada vez que se destruye (se elimina de RAM) un objeto, el objetivo de este método es el de eliminar toda la memoria que ocupó un objeto. En JAVA no es necesaria la definición de destructores (es más no existen), pues el mismo lenguaje se encarga de la eliminación y liberación de la memoria ocupada por un objeto, esto se realiza cada vez que un objeto pierde todas sus referencias.

• En resumen es un método de clase que sirve para realizar ciertas operaciones necesarias al dejar de existir un objeto, por ejemplo, cerrar conexiones de una comunicación, cerrar ficheros, etc.

• Java dispone de un elemento denominado recolector de basura (garbage collector) que se encarga de liberar memoria asignada a objetos que ya no se utilizan, aún así en ocasiones será necesario disponer de una función que realice operaciones adicionales a la mera liberación de memoria. Para este fin se crea un método, denominado finalize, con las siguientes características:

protected void finalize() throws throwable { … cuerpo del destructor }

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE

Page 13: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

13

Hola Mundo Java con NetBeans 6• El IDE NetBeans es un entorno de desarrollo Open Source escrito en Java. Como

este será el entorno de desarrollo utilizado durante el curso, es conveniente realizar el ya célebre programa Hola Mundo para saber como:crear un nuevo proyectocrear un nuevo paquete crear una nueva Clase compilar una Claseejecutar una Clase

Crear un nuevo proyecto NetBeans al igual que la mayoría de los entornos de desarrollo, aloja sus aplicaciones en proyectos. Estos proyectos sólo tienen sentido Cuando estamos desarrollando.Cuando una aplicación pasa a producción, el concepto de proyecto del entorno de desarrollo se pierdeEn nuestro caso, crearemos un proyecto llamado proholamundo siguiendo los siguientes pasoselegimos File | New Project...

Page 14: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

14

• en el cuadro de dialogo New Project elegimos Java y Java Application y seguidamente hacemos clic sobre el botón

Hola Mundo Java con NetBeans 6

En el cuadro de diálogo New Java Application tenemos que rellenar los siguientes camposProject Name: proholamundo

durante el curso seguiremos una convención a nivel didáctico que va a consistir en poner el prefijo pro a todos los nombres de los proyectos que crearemos

Project Location: C:\isg\j2se\prosjavavamos a hacer clic sobre el botón para indicar que queremos que nuestro proyecto se aloje por debajo de los directorios C:\isg\j2se\prosjavadurante el curso iremos añadiendo todos los diferentes proyectos debajo de esta jerarquía de directorios

Set as main project: lo dejamos marcado

Create Main Class: lo desmarcamos

seguidamente hacemos clic sobre el botón

Page 15: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

15

• Crear un nuevo paquete • Cuando estamos realizando aplicaciones de cierta

envergadura, tenemos que incluir las Clases de nuestra aplicación en paquetes (packages) para poder obtener una serie de ventajas que ya veremos más adelante

• Estos paquetes tienen sentido tanto en el proceso de desarrollo como en el de producción

• Los paquetes no están ligados a un entrono de desarrollo, sino que es una parte integral y esencial del lenguaje Java

• En nuestro caso, crearemos un paquete llamado paqholamundo siguiendo los siguientes pasos

• Nos situamos en la ventana Projects y con el botón derecho del ratón seleccionamos la carpeta Source Packages correspondiente al proyecto proholamundo que acabamos de crear.

• Elegimos new | Java Package...

Hola Mundo Java con NetBeans 6

y en el cuadro de diálogo New Java Package introducimos el nombre del paquete paqholamundo y hacemos clic sobre el botón

Page 16: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

16

• Crear una nueva Clase • En Java los programas o aplicaciones se

escriben en ficheros que tienen la extensión .java

• una aplicación puede tener uno o más ficheros con extensión .java

• cada uno de estos ficheros .java contiene una Clase • cada vez que se crea una nueva Clase,

se crea su correspondiente fichero con el nombre de la Clase y con extensión .java

• En nuestro caso, vamos a crear una Clase que la vamos a llamar HolaMundo siguiendo los siguientes pasos

• nos situamos en la ventana Projects y con el botón derecho del ratón seleccionamos el paquete paqholamundo

• elegimos new | Other...

Hola Mundo Java con NetBeans 6

Page 17: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

17

• En el cuadro de diálogo New File elegimos la categoría Java y el tipo de fichero Java Main Class y hacemos clic sobre el botón

Hola Mundo Java con NetBeans 6

en el campo de Texto Class Name indicamos que la Clase se va a llamar HolaMundo y hacemos clic sobre el botón

Este es el código generado por el Asistente de NetBeans

package paqholamundo; en esta primera línea de código, estamos indicando que la clase HolaMundo pertenece al paquete paqholamundo

public class HolaMundo { } aquí estamos declarando el nombre de la Clase, es muy importante mencionar que todo código Java que se escriba tiene que estar obligatoriamente incluido dentro de una Clase es decir el código java siempre estará dentro del bloque (indicado entre llaves {}) de esa Clase

public static void main(String[] args) { }

aquí estamos declarando el método main(...)de momento saber que la MVJ (Máquina virtual Java) cuando tiene que ejecutar la aplicación HolaMundo, lo primero que hace es buscar este método como punto de entrada a la aplicación

Page 18: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

18

Hola Mundo Java con NetBeans 6

Y para que nos muestre el mensaje Hola Mundo..., tenemos que añadir el siguiente código al método main(...)Nota: Podemos ahorrarnos toda la escritura de la línea System.out.println(""); escribiendo sout y seguidamente presionando la tecla tabulador

Page 19: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

19

• En Java, las Clases compiladas se encuentran en ficheros que tienen la extensión .class

• al contenido de estas clases se le denomina código byte• si no tuviéramos un IDE como NetBeans tendríamos que

ejecutar el comando javac• En nuestro caso, compilaremos la Clase HolaMundo

situándonos en la ventana Projects. Seguidamente seleccionamos con el botón derecho del ratón la Clase HolaMundo.java y elegimos Compile File F9. Esta acción hace que Netbeans ejecute de forma transparente para nosotros el comando javac

Hola Mundo – Compilar una Clase

Hola Mundo – Ejecutar una ClaseA diferencia de los lenguajes compilados que ejecutamos ficheros con la extensión .exe, en java se ejecutan los ficheros con extensión .classsi no tuviéramos un IDE como NetBeans tendríamos que ejecutar el comando java, cuya utilización ya veremos más adelantePara ejecutar la Clase HolaMundo nos vamos a situar en la ventana Projects. Seguidamente seleccionamos con el botón derecho del ratón la Clase HolaMundo.java y elegimos Run File Mayúsculas+F6

Page 20: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

20

• Y finalmente ya vemos el mensaje "Hola Mundo..." en la ventana Output

Hola Mundo – Ejecutar una Clase

Page 21: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

21

“Programación orientada a Objetos

II”SESION 03: Programación Orientada a Objetos:

Setter y GetterI ng . E lmer Raú l A ro

Va lder rama

Page 22: Programación orientada a Objetos II SESION 02: Diseño de Clases. Constructores y Destructores 1.

22

Programación Orientada a Objetos: Setter y Getter

• Definicion de Setter y Getter• Ejemplos a nivel de Programación (4)• Alcances: Públicos, Privados y Protegidos