Download INF 473 Desarrollo de Aplicaciones en Java
Document related concepts
no text concepts found
Transcript
INF 473 Desarrollo de Aplicaciones en Java Sección IV Clases y Objetos en Java Prof. José Miguel Rubio [email protected] [email protected] PUCV Marzo 2008 1 Clases y Objetos Clases En Java, una clase es un tipo de dato definido por el programador que sirve para representar elementos del mundo real. Esta compuesta de: Atributos Métodos Constructores Los cuales se denominan “miembros de la clase”. 2 Clases y Objetos Definición de una clase 3 Clases y Objetos La definición de una clase no reserva espacio en memoria. El almacenamiento se asigna cuando se crea un objeto de una clase (instancia). Las variables se pueden inicializar directamente en la clase, sino por omisión se inicializan en 0 , null o false. 4 Clases y Objetos Métodos Los métodos son funciones definidas dentro de una clase. Pueden retornar un valor (int, long, double, String …) o no retornar valor (void). Los métodos pueden referenciar directamente a las variables de la clase. Los métodos pueden invocar otros métodos de la clase. Se utiliza el operador . para llamar a un método. Sintaxis: nombre_objeto.metodo(parametros); 5 Clases y Objetos Objetos Una vez que una clase esta definida, un programa puede contener una instancia de una clase, denominada objeto. Se crea con el operador new, el cual permite reservar espacio en memoria. Sintaxis nombre_clase nombre_objeto = new nombre_clase(parametros) Se pueden crear de dos formas: Establecer referencia y luego utilizar operador new, o Establecer referencia y utilizar operador new en misma línea. 6 Clases y Objetos Ejemplo: o 7 Constructores Un constructor es un método de la clase de propósito especifico que se ejecuta cuando se crea un objeto de una clase. Un constructor tiene el mismo nombre que la clase y pueden recibir parámetros. A un constructor no se le puede especificar un valor de retorno, ni siquiera void. Sirve para inicializar los atributos de una clase. 8 Constructores Ejemplo de clase sin constructor 9 Constructores Ejemplo de clase con constructor 10 Constructores Constructores por defecto Si no se especifica un constructor, Java proporciona uno por defecto. Si se especifica un constructor, el constructor por defecto no es definido y se debe utilizar ese constructor con la misma cantidad de parámetros, de lo contrario se produce un error. 11 Acceso a miembros de la clase Un principio fundamental de la O.O. es el ocultamiento de la información (Encapsulamiento). A determinados datos del interior de una clase no se pueden acceder por métodos externos a la clase. clase datos o metodos públicos datos o metodos privados accesibles desde exterior de la clase NO accesibles desde exterior de la clase 12 Acceso a miembros de la clase Se utilizan 3 tipos de especificadores (modificadores) de acceso para controlar los miembros de la clase. public, acceso desde cualquier método, dentro o fuera de la clase. private, acceso por métodos miembros de la misma clase. protected, acceso por métodos miembros de la misma clase o clase derivadas. Pueden estar en cualquier orden. En caso de no especificar, el acceso al miembro de la clase es para cualquier método de la misma clase o cualquier método del paquete. 13 Acceso a miembros de la clase 14 Miembros estáticos de la clase Atributo estático: Existe un único atributo para todos los objetos de una misma clase. Se declaran igual que cualquier atributo, añadiendo la palabra reservada static. Su llamada se realiza a través de: NombreClase.atributo; Método estático: son métodos que se pueden utilizar sin necesariamente crear objetos. Su llamada se realiza a través de : NombreClase.metodo(); un método estático solo puede acceder directamente a atributos y métodos estáticos. 15 Miembros estáticos de la clase 16 Polimorfismo En Java una de las formas de implementarlo es a través de: Sobrecarga de métodos Sobrecarga de constructores 17 Polimorfismo Sobrecarga de Métodos Se produce cuando, dentro de una misma clase es posible definir dos o mas métodos que tengan el mismo nombre y que las declaraciones de sus parámetros sea diferente. Al llamar a un método sobrecargado, el compilador determina cual es el método invocado basándose en el numero o tipo de parámetros. 18 Polimorfismo Sobrecarga de Métodos (EJEMPLO) 19 Polimorfismo Sobrecarga de Constructores Al igual que los métodos, los constructores también se pueden sobrecargar. Al sobrecargar los constructores, es posible crear objetos con diferentes inicializaciones, dependiendo de la cantidad de parámetros que se envíen al momento de crear el objeto. Ventaja: crear objetos inicializados de diferente forma, dependiendo de lo que el programador necesite. 20 Polimorfismo Sobrecarga de Constructores (EJEMPLO) 21 Herencia La Herencia o Jerarquía es la relación que existe entre dos clases, en la que una clase denominada subclase se crea a partir de otra ya existente, denominada superclase. PERSONA SUPER-CLASE EMPLEADO SUB-CLASE La clase Empleado hereda atributos y metodos de la clase Persona, siempre y cuando estos no sean privados. 22 Herencia La Herencia permite el ahorro de código. La sub-clase hereda los atributos y métodos de la superclase. Para crear clases derivadas se utiliza la palabra reservada extends , la cual permite que todos los miembros no privados de la super-clase base sean heredados en la sub-clase La sintaxis es la siguiente: class nombre_clase extends nombre_clase_base 23 Herencia EJEMPLO (Super clase) 24 Herencia EJEMPLO (Sub clase y creación de objeto) 25 Herencia Los constructores no se heredan, solo se utilizan. Para acceder al constructor de la superclase en la subclase se utiliza la palabra reservada super con la cantidad y tipo de parámetros definidos en el constructor de la super-clase. Estos constructores deben llamarse antes del código del constructor de la clase derivada. Ejemplo: 26 Herencia Métodos Los métodos de la super-clase se pueden utilizar en la subclase escribiendo simplemente su nombre y la lista de parámetros del método. Por ejemplo dentro de un método de la clase Empleado que es derivada de la clase Persona se puede realizar: mostrar(); Lo mismo ocurre en los atributos estos se llaman directamente con el nombre del atributo. 27 Herencia Métodos En la sub-clase si existen métodos con un mismo nombre, misma cantidad de parámetros y mismo tipo de retorno de un método de la super-clase, el método de la sub-clase anula al método de la super-clase. Esto se conoce como ocultamiento de métodos. 28 Modificadores de la clase Los modificadores de clase pueden ser: public: accesible por cualquier clase. Debe estar en su propio archivo. abstract: la clase no puede ser instanciada (no se pueden crear directamente objetos a partir de esa clase). final: la clase no puede ser derivada. Si no se especifica, es accesible por clases del mismo paquete. Sintaxis: [modificador] class NombreClase {…} ejemplo 29