Você está na página 1de 4

QUE ES UNA CLASE

Una clase es una agrupacin de datos y de cdigo que acta sobre esos datos, a la que se le da un
nombre.
Una clase contiene:
Datos (se denominan Datos Miembro). Estos pueden ser de tipos primitivos o referencias.
Mtodos (se denominan Mtodos Miembro).
La sintaxis general para la declaracin de una clase es:
modificadores class nombre_clase {
declaraciones_de_miembros ;
}

Ejemplo:
class Punto {
int x;
int y;
}
TIPOS DE CLASES
Los tipos de clases son:
abstract
Una clase abstract tiene al menos un mtodo abstracto. Una clase abstracta no se instancia, sino que se
utiliza como clase base para la herencia.
final
Una clase final se declara como la clase que termina una cadena de herencia. No se puede heredar de
una clase final. Por ejemplo, la clase Math es una clase final.
public
Las clases public son accesibles desde otras clases, bien sea directamente o por herencia. Son accesibles
dentro del mismo paquete en el que se han declarado. Para acceder desde otros paquetes, primero tienen
que ser importadas.

Docente: Daniel Loza Santa Cruz / dlozas@hotmail.com/dlozas2011@hotmail.com

Pgina 1

synchronizable
Este modificador especifica que todos los mtodos definidos en la clase son sincronizados, es decir, que
no se puede acceder al mismo tiempo a ellos desde distintos threads; el sistema se encarga de colocar los
flags necesarios para evitarlo. Este mecanismo hace que desde threads diferentes se puedan modificar
las mismas variables sin que haya problemas de que se sobreescriban.
OBJETO
Cuando se crea un objeto (se instancia una clase) es posible definir un proceso de inicializacin que
prepare el objeto para ser usado. Esta inicializacin se lleva a cabo invocando un mtodo especial
denominado constructor. Esta invocacin es implcita y se realiza automticamente cuando se utiliza el
operador new.
Los constructores tienen algunas caractersticas especiales:
El nombre del constructor tiene que se igual al de la clase.
Puede recibir cualquier nmero de argumentos de cualquier tipo, como cualquier otro mtodo.
No devuelve ningn valor (en su declaracin no se declara ni siquiera void).
El constructor no es un miembro ms de una clase. Slo es invocado cuando se crea el objeto (con
el operador new). No puede invocarse explcitamente en ningn otro momento.
Ejemplo:
class Punto {
int x, y;
Punto (int a,int b) {
x = a; y = b;
}
}
Con este constructor se creara un objeto de la clase Punto de la siguiente forma:
Punto p = new Punto (1,2);
CONSTRUCTORES
Todas las clases Java tienen mtodos especiales llamados Constructores que se utilizan para inicializar
un objeto nuevo de ese tipo.
Los constructores tienen el mismo nombre que la clase, el nombre del constructor de la clase Rectangle
es Rectangle(), el nombre del constructor de la clase Thread es Thread(), etc...
Java soporta la sobrecarga de los nombres de mtodos para que una clase puede tener cualquier nmero
de constructores, todos los cuales tienen el mismo nombre. Al igual que otros mtodos sobrecargados,
los constructores se diferencian unos de otros en el nmero y tipo de sus argumentos.
Docente: Daniel Loza Santa Cruz / dlozas@hotmail.com/dlozas2011@hotmail.com

Pgina 2

Consideremos la clase Rectangle del paquete java.awt que proporciona varios constructores diferentes,
todos llamados Rectangle(), pero cada uno con nmero o tipo diferentes de argumentos a partir de los
cuales se puede crear un nuevo objeto Rectangle. Aqu tiene las firmas de los constructores de la clase
java.awt.Rectangle:
public Rectangle()
public Rectangle(int width, int height)
public Rectangle(int x, int y, int width, int height)
public Rectangle(Dimension size)
public Rectangle(Point location)
public Rectangle(Point location, Dimension size)
SOBRECARGA DE MTODOS
Una misma clase puede tener varios mtodos con el mismo nombre siempre que se diferencien en el
tipo o nmero de los argumentos. Cuando esto sucede se dice que el mtodo est sobrecargado.
Sin embargo no se puede sobrecargar cambiando slo el tipo del valor devuelto. Por ejemplo:
int metodoSobrecargado() {. . .}
void metodoSobrecargado() {. . .} // error en compilacin
Con esta definicin, en la expresin y. Mtodo Sobrecargado () la JVM (Java Virtual Machine), no
sabra que mtodo invocar. Se puede sobrecargar cualquier mtodo miembro de una clase, as como el
constructor.
INTERFACE
Un interface es una coleccin de declaraciones de mtodos (sin definirlos) y tambin puede incluir
constantes.
Runnable.- Es un ejemplo de interface en el cual se declara, pero no se implementa, una funcin
miembro run.
public interface Runnable {
public abstract void run();
}
Las clases que implementen (implements) el interface Runnable han de definir obligatoriamente la
funcin run.
class Animacion implements Runnable{
Docente: Daniel Loza Santa Cruz / dlozas@hotmail.com/dlozas2011@hotmail.com

Pgina 3

//..
public void run(){
//define la funcin run
}
}
El papel del interface es el de describir algunas de las caractersticas de una clase. Por ejemplo, el hecho
de que una persona sea un futbolista no define su personalidad completa, pero hace que tenga ciertas
caractersticas que las distinguen de otras.
Clases que no estn relacionadas pueden implementar el interface Runnable, por ejemplo, una clase
que describa una animacin, y tambin puede implementar el interface Runnable una clase que realice
un clculo intensivo.
POLIMORFISMO
Es el concepto de la orientacin a objetos que permite invocar a un mtodo independientemente de la
clase a la que pertenezca un objeto, que puede conocerse recin en tiempo de ejecucin. Gracias al
polimorfismo, el objeto es el que recoge la llamada e invoca al mtodo correspondiente, en forma
dinmica.
El polimorfismo permite mltiples implementaciones de mtodos, dependiendo del tipo de objeto que se
indica al invocar el mtodo correspondiente. De esta manera el polimorfismo permite que el mismo
mensaje enviado a diferentes objetos resulte en acciones dependientes del objeto que recibe el mensaje.
Ejemplo:
class Perro extends Mamifero {
int numero_patas;
public void mover() {
System.out.println("Ahora es un perro el que se mueve");
}
}
public class Polimorfismo {
public static void muevete(Mamifero m) {
m.mover();
}
public static void main(String[] args) {
Gato bisho = new Gato();
Perro feo = new Perro();
muevete(bisho);
muevete(feo);
}
}

Docente: Daniel Loza Santa Cruz / dlozas@hotmail.com/dlozas2011@hotmail.com

Pgina 4

Você também pode gostar