You are on page 1of 15

1

2
3
4
5
6
7
8
9
10
Concepto de Clase
11
Una clase es una agrupacin de datos (variables o campos) y de funciones (mtodos) que
operan sobre esos datos.

public class Classname


{ ... // definicin de variables y mtodos
}

Un objeto (instance) es un ejemplar concreto de una clase.


Las caractersticas de una clase son las siguientes:

1) Todas las variables y funciones de Java deben pertenecer a una clase.

Si una clase deriva de otra (extends), hereda todas sus variables y mtodos.

Java tiene una jerarqua de clases estndar de la que pueden derivar las clases que crean los
usuarios.

En Java no hay herencia mltiple.

En un fichero se pueden definir varias clases, pero en un fichero no puede haber ms que una
clase public.

Si una clase contenida en un fichero no es public, no es necesario que el fichero se llame


como la clase.

7) Los mtodos de una clase pueden referirse de modo global al objeto de esa clase al que
se aplican por medio de la referencia this.

Las clases se pueden agrupar en packages, introduciendo una lnea al comienzo del fichero
(package packageName;).

Variables miembro

Variables miembro de objeto


Variables miembro de clase (static). Son aquellas variables propias de la clase. Se crean
anteponiendo la palabra static a su declaracin, y se suelen utilizar para definir constantes
comunes para todos los objetos de la clase.
Las variables de clase son lo ms parecido que Java tiene a las variables globales de C/C++.

Variables finales

Variables que no pueden cambiar su valor a lo largo de la ejecucin del programa. Puede
ser considerada como una constante, y equivale a la palabra const de C/C++.
Java permite separar la definicin de la inicializacin de una variable final; es decir, la
inicializacin puede hacerse ms tarde, en tiempo de ejecucin, llamando a mtodos o en
funcin de otros datos.
Mtodos (funciones miembro)

Los mtodos son funciones definidas dentro de una clase.

12
La primera lnea de la definicin de un mtodo se llama declaracin o header; el cdigo
comprendido entre las llaves { ... } es el cuerpo o body del mtodo.
public returnValue functionName(arg1,arg2,...)
{ // comienzo del mtodo
... // cuerpo de la funcin
} // final del mtodo
El header consta del cualificador de acceso (public, en este caso), del tipo del valor de
retorno, del nombre de la funcin y de una lista de argumentos explcitos entre parntesis,
separados por comas.

MTODOS DE OBJETO

SE APLICAN SIEMPRE A UN OBJETO DE LA CLASE POR MEDIO DEL OPERADOR PUNTO


(.). DICHO OBJETO ES SU ARGUMENTO IMPLCITO.

Mtodos de clase (static).

Mtodos que no actan sobre objetos concretos a travs del operador punto. Los mtodos
de clase pueden recibir objetos de su clase como argumentos explcitos, pero no tienen
argumento implcito ni pueden utilizar la referencia this.

Mtodos sobrecargados (overloaded).

Mtodos que tienen el mismo nombre, pero que se diferencian por el nmero y/o tipo de los
argumentos.

Constructores

Un constructor es un mtodo que se llama automticamente cada vez que se crea un objeto
de una clase. La principal misin del constructor es reservar memoria e inicializar las
variables miembro de la clase.
Los constructores no tienen valor de retorno (ni siquiera void) y su nombre es el mismo que
el de la clase. Su argumento implcito es el objeto que se est creando.
Una clase tiene varios constructores, que se diferencian por el tipo y nmero de sus
argumentos (mtodos sobrecargados). Se llama constructor por defecto al constructor que
no tiene argumentos.

Inicializadores

Lnea de actuacin para evitar que haya variables sin inicializar correctamente, y estos
pueden ser static (para la clase) o de objeto.

Inicializadores de clase (static).

Es un algo parecido a un mtodo que se llama automticamente al crear la clase. Se


diferencia del constructor en que no es llamado para cada objeto, sino una sola vez para
toda la clase.

13
Los tipos primitivos pueden inicializarse directamente con asignaciones en la clase o en el
constructor, pero para inicializar objetos o elementos ms complicados es bueno utilizar un
inicializador, ya que permite gestionar excepciones (situaciones de error) con try... catch.
Los inicializadores static se crean dentro de la clase, como mtodos sin nombre, sin
argumentos y sin valor de retorno; tan solo es la palabra static y el cdigo entre llaves { ... }.

Inicializadores de objeto.

No llevan la palabra static y se utilizan para las clases annimas, que por no tener nombre
no pueden tener constructor. En este caso, los inicializadores de objeto se llaman cada vez
que se crea un objeto de la clase annima.

Destruccin de objetos (liberacin de memoria)

En Java no hay destructores como en C++. El sistema se ocupa automticamente de liberar


memoria de los objetos que ya han perdido la referencia, esto es, objetos que ya no tienen
ningn nombre que permita acceder a ellos, por ejemplo por haber llegado al final del
bloque en el que haban sido definidos, porque a la referencia se le ha asignado el valor null
o porque a la referencia se le ha asignado la direccin de otro objeto. A esta caracterstica
se le llama recogida de basura (garbage collection).

Finalizadores

Son mtodos que vienen a complementar la labor del garbage collector. Un finalizador es
un mtodo de objeto (no static), sin valor de retorno (void), sin argumentos, con nombre de
funcinfinalize(), y que se llama automticamente cuando se va a destruir un objeto (antes
de que la memoria sea liberada de modo automtico por el sistema). Se utilizan para ciertas
operaciones de terminacin distintas de liberar memoria (por ejemplo: cerrar ficheros, cerrar
conexiones de red, etc.)

Packages

Un package es una agrupacin de clases.


Para que una clase pase a formar parte de un package llamado pkgName, hay que introducir
en ella la sentencia: package pkgName; que debe ser la primera sentencia del
fichero sin contar comentarios y lneas en blanco.
Los nombres de los packages se suelen escribir con minsculas para distinguirlos de las
clases.
Todas las clases que forman parte de un package deben estar en el mismo directorio. Los
nombres compuestos de los packages estn relacionados con la jerarqua de directorios en
que se guardan las clases. Package permite que los nombres de las clases de Java sean
nicos en Internet y as evitar conflictos.
Las clases de un package se almacenan en un directorio con el mismo nombre largo (path)
que el package. Por ejemplo, la
clase es.ceir.jgjalon.infor2.ordenar.QuickSort.class debera estar en el directorio
CLASSPATH\es\ceir\jgjalon\infor2\ordenar\QuickSort.class, donde CLASSPATH es una
variable de entorno del PC que establece la posicin absoluta de los directorios en los que
hay clases de Java (clases del sistema o de usuario), en este caso la posicin del directorio
es en los discos locales del ordenador.

Los packages se utilizan con las finalidades siguientes:


Para agrupar clases relacionadas.
P2) Para evitar conflictos de nombres ya que el dominio de nombres de Java es la Internet.
P3) Para ayudar en el control de la accesibilidad de clases y miembros.
14
Concepto de Herencia

Construir una clase a partir de otra. Para indicar que una clase deriva de otra se utiliza la
palabra extends, como por ejemplo: class CirculoGrafico extends Circulo { ... }
Cuando una clase deriva de otra, hereda todas sus variables y mtodos. Estas funciones y
variables miembro pueden ser redefinidas (overridden) en la clase derivada, que puede
tambin definir o aadir nuevas variables y mtodos.

La clase Object

Es la raz de toda la jerarqua de clases de Java. Como consecuencia, todas las clases
tienen algunos mtodos que han heredado de Object.

Clases y mtodos abstractos

Una clase abstracta (abstract) es una clase de la que no se pueden crear objetos. Su
utilidad es permitir que otras clases deriven de ella, proporcionndoles un marco o modelo
que deben seguir y algunos mtodos de utilidad general. Las clases abstractas se declaran
anteponindoles la palabra abstract, como por ejemplo public abstract class Geometria
{ ... }
Una clase abstract puede tener mtodos que no son abstract, pero si una clase tiene algn
mtodo abstract es obligatorio que la clase sea abstract.

Clases y mtodos finales

Una clase declarada final no puede tener clases derivadas. Esto se puede hacer por
motivos de seguridad y tambin por motivos de eficiencia, porque cuando el compilador
sabe que los mtodos no van a ser redefinidos puede hacer optimizaciones adicionales.
Anlogamente, un mtodo declarado como final no puede ser redefinido por una clase que
derive de su propia clase.

Interfaces

Una interface es un conjunto de declaraciones de mtodos (sin definicin).

http://facilenjava.blogspot.com/p/documentos.html

15

You might also like