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
Related documents