Programacin orientada a Objetos II SESION 02 Diseo

  • Slides: 22
Download presentation
“Programación orientada a Objetos II” SESION 02: Diseño de Clases. Constructores y Destructores 1

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

¿Qué es una clase? • Una clase es simplemente una representación de un tipo

¿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 Text. Box lo define una clase Text. Box, que define su aspecto y sus funciones. Cada vez que arrastra un control Text. Box a un formulario, realmente está creando una nueva instancia de la clase Text. Box. • Cada control Text. Box es una copia exacta, aunque distinta, de la clase que lo define, la clase Text. Box. 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 Text. Box a su formulario arrastrándolos desde el Cuadro de herramientas, pero también puede crear instancias de un objeto Text. Box en su código si utiliza la palabra clave New. 2

¿Qué es una clase? 3

¿Qué es una clase? 3

¿Qué es un Objeto? 4

¿Qué es un Objeto? 4

EJEMPLOS 5

EJEMPLOS 5

EJEMPLOS 6

EJEMPLOS 6

¿QUE ES UN ¿METODO? 7

¿QUE ES UN ¿METODO? 7

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE • • El constructor de una

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE • • 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

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE • El constructor puede tener parámetros.

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE • 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

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE 10

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE 10

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE 11

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE 11

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE • Un destructor es un método

DEFINICIÓN DE CONSTRUCTORES Y DESTRUCTORES DE UNA CLASE • 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

Hola Mundo Java con Net. Beans 6 • El IDE Net. Beans es un

Hola Mundo Java con Net. Beans 6 • El IDE Net. Beans 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 Net. Beans 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

Hola Mundo Java con Net. Beans 6 • en el cuadro de dialogo New

Hola Mundo Java con Net. Beans 6 • 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: isgj 2 seprosjava vamos a hacer clic sobre el botón para indicar queremos que nuestro proyecto se aloje por debajo de los directorios C: isgj 2 seprosjava 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 14

Hola Mundo Java con Net. Beans 6 • • Crear un nuevo paquete Cuando

Hola Mundo Java con Net. Beans 6 • • 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

Hola Mundo Java con Net. Beans 6 • Crear una nueva Clase • En

Hola Mundo Java con Net. Beans 6 • 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 Hola. Mundo 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

Hola Mundo Java con Net. Beans 6 • En el cuadro de diálogo New

Hola Mundo Java con Net. Beans 6 • 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 Hola. Mundo y hacemos clic sobre el botón Este es el código generado por el Asistente de Net. Beans package paqholamundo; en esta primera línea de código, estamos indicando que la clase Hola. Mundo pertenece al paquete paqholamundo public static void main(String[] args) { } aquí estamos declarando el método public class Hola. Mundo { } aquí estamos declarando el nombre de la Clase, es muy main(. . . ) importante mencionar que todo código Java que se escriba de momento saber que la MVJ tiene que estar obligatoriamente incluido dentro de una Clase (Máquina virtual Java) cuando tiene es decir el código java siempre estará dentro del bloque ejecutar la aplicación (indicado entre llaves {}) de esa Clase Hola. Mundo, lo primero que hace es 17 buscar este método como punto de

Hola Mundo Java con Net. Beans 6 Y para que nos muestre el mensaje

Hola Mundo Java con Net. Beans 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 18

Hola Mundo – Compilar una Clase • • En Java, las Clases compiladas se

Hola Mundo – Compilar una Clase • • 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 Net. Beans tendríamos que ejecutar el comando javac En nuestro caso, compilaremos la Clase Hola. Mundo situándonos en la ventana Projects. Seguidamente seleccionamos con el botón derecho del ratón la Clase Hola. Mundo. java y elegimos Compile F 9. Esta acción hace que Netbeans ejecute de forma transparente para nosotros el comando javac Hola Mundo – Ejecutar una Clase 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 Net. Beans tendríamos que ejecutar el comando java, cuya utilización ya veremos más adelante Para ejecutar la Clase Hola. Mundo nos vamos a situar en la ventana Projects. Seguidamente seleccionamos con el botón derecho del ratón la Clase Hola. Mundo. java y elegimos Run File Mayúsculas+F 6 19

Hola Mundo – Ejecutar una Clase • Y finalmente ya vemos el mensaje "Hola

Hola Mundo – Ejecutar una Clase • 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

“Programación orientada a Objetos II” SESION 03: Programación Orientada a Objetos: Setter y Getter 21

Programación Orientada a Objetos: Setter y Getter • Definicion de Setter y Getter •

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 22