Transcript clase

“Programación orientada a
Objetos II”
SESION 02: Diseño de
Clases. Constructores y
Destructores
1
• 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.
2
3
4
5
6
7
•
•
•
•
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
8
• El constructor puede tener parámetros.
En este caso, se deben colocar los
argumentos respectivos al crear el
objeto:
Se pueden colocar varios constructores. Durante la
creación de un objeto, se invoca aquel que calza con los
argumentos dados:
9
10
11
• 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 }
12
• 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 proyecto
crear un nuevo paquete
crear una nueva Clase
compilar una Clase
ejecutar 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 pierde
En nuestro caso, crearemos un proyecto llamado proholamundo siguiendo los siguientes pasos
elegimos File | New Project...
13
• en el cuadro de dialogo New
Project elegimos Java y Java
Application y seguidamente
hacemos clic sobre el botón
En el cuadro de diálogo New Java Application tenemos que
rellenar los siguientes campos
Project 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\prosjava
vamos a hacer clic sobre el botón
para indicar que
queremos que nuestro proyecto se aloje por debajo de
los directorios C:\isg\j2se\prosjava
durante 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
14
•
•
•
•
•
•
•
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...
y en el cuadro de diálogo New Java
Package introducimos el nombre del
paquete paqholamundo y hacemos clic
sobre el botón
15
•
•
•
•
•
•
•
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...
16
• 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
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 static void main(String[] args) { }
public class HolaMundo { }
aquí estamos declarando el método
aquí estamos declarando el nombre de la Clase, es muy importante
main(...)
mencionar que todo código Java que se escriba tiene que estar
de momento saber que la MVJ (Máquina
obligatoriamente incluido dentro de una Clase es decir el código java
virtual Java) cuando tiene que ejecutar la
siempre estará dentro del bloque (indicado entre llaves {}) de esa
aplicación HolaMundo, lo primero que
Clase
hace es buscar este método como punto
17
de entrada a la aplicación
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
18
•
•
•
•
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
A diferencia de los lenguajes compilados que ejecutamos
ficheros con la extensión .exe, en java se ejecutan los ficheros
con extensión .class
si no tuviéramos un IDE como NetBeans tendríamos que
ejecutar el comando java, cuya utilización ya veremos más
adelante
Para 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
19
• Y finalmente ya vemos el
mensaje "Hola Mundo..." en la
ventana Output
20
“Programación orientada a
Objetos II”
SESION 03: Programación
Orientada a Objetos: Setter y Getter
21
• Definicion de Setter y Getter
• Ejemplos a nivel de Programación (4)
• Alcances: Públicos, Privados y Protegidos
22