You are on page 1of 3

Tipos de Clase El conocimiento de las clases en Java es fundamental, ya que todo gira entorno a ellas.

Un buen conocimiento de ellas nos permitir realizar programasque cumplan con lo que deseamos. Crear una clase es sencillo, se hace losiguiente:[modificador] class [nombre]{ //atributos y metodos}El modificador es el tipo de clase que se est creando. De acuerdo a estemodificador, nuestra clase puede tener diferentes caractersticas. Segn cmonecesitamos que funcione nuestra clase podemos elegir entre un tipo u otro.En java existen 4 tipos de clases: Public Abstract Final Synchronizable 1) Clases Public Un tipo muy comn de clases es el tipo pblico o public. Tiene lacaracterstica de ser accesible desde cualquier otra clase, lo que nos permitetrabajar con ella fcilmente. Sin embargo, para acceder a ella se debe teneracceso al package al que pertenece. (1) Se puede acceder a ellas directamente o por herencia, estando en el mismopaquete, para acceder desde otros paquetes, primero hay que importarlos conla sentencia import. Esto es til ya que por defecto las clases solamente sonaccesibles por otras clases declaradas dentro del mismo paquete en el que sehan declarado. (2) -5Un detalle de las clases del tipo public es que el archivo con el que seguardan debe tener el mismo nombre de la clase, de otra forma se presentarun error de compilacin. Uno puede llamar a una clase public desde otra, si seencuentran en la misma carpeta, de otra forma tendr dificultades parainteractuar con esta.Un ejemplo de uso de una clase public sera:public class banco{ // cuerpo de la clase}Y al momento de grabar el programa, tendramos que ponerle al archivo elnombre de banco.java.Uno podra encontrar muy til el uso de las clases public cuando necesitausar constantemente elementos de esa clase en el desarrollo de su programaen general. Evita problemas cuando se encuentran en paquetes diferentes, yaque se aplica una reutilizacin de ese cfigo. 2) Clases Abstract Este tipo de clases son muy tiles la programacin orientada a objetos que aldeclarar estas clases solo se definen como se utiliza, sin la necesidad deimplementar mtodos, es decir se dejan incompletos para despus serrefinados mediante el mecanismo de la herencia, se puede fijar un conjunto demtodos y atributos, que sern especializados ms adelante. Las clasesabstractas trabajan junto con los mtodos abstractos, los cuales estn vacos.Esto es muy til cuando la implementacin es especfica pero cada usuario,cada uno puede implementarlos como le parezca, pero sus mtodos debentener los mismos nombres que se dieron antes. (3) Por ejemplo al ver una declaracin de mtodos en una clase abstracta solopodemos observar algunas lneas que solamente tienen los datos que van arecibir los mtodos, pero el cdigo que ejecutara el mtodo no est, eso quiere

-6-

decir que podra estar en otro sitio. Se puede decir que es una base para laherencia, algo as como indicando qu es lo que se tendr que hacer msadelante. Una clase abstracta tiene que derivarse obligatoriamente.Pueden ser a la vez clases public. Aqu un ejemplo de una clase:public abstract class Triangulo {public abstract void Area_Triangulo(int b,int h);public abstract void Permetro( int x,int y,int z);. . .}Ntese que los mtodos slo contienen los parmetros que reciben, mas notienen implementadas las acciones que deberan realizar.Cuando una clase contiene un mtodo abstracto tiene que declararseabstracta. Pero esto no quiere decir que todos los mtodos de una claseabstracta tienen que ser abstractos.Las clases abstractas no pueden tener mtodos privados ya que no se podranimplementar, ni tampoco estticos. 3) Clases Final Una clase final es la que acaba con una cadena de herencia .(4) De la clasefinal no se puede heredar nada. Al decir que termina la cadena de herenciasignifica que ya no se sub-divide en ms clases, pues indica que es el final delas divisiones.Las organizaciones de clases en java suelen ser de la siguiente forma:class A{ }class B extends A { }Con lo que se indica que de la clase A sale una sub-clase o clase hija que es B.Esta es la idea estndar de la programacin orientada a objetos en java. Pero -7-

se puede modificar este tipo de organizaciones al usar final. Sera de lasiguiente forma:final class A { }Con lo que se est indicando que de la clase A no van a salir otras clases.Segn esto no podra existir la clase B. Es lo contrario a declarar una claseabstracta. Es posible mezclar final con public, es decir, se puede tener algocomo esto:public final class A{ }Uno puede declarar su clase como final por algunos motivos. Primero est elmotivo de seguridad. Cuando no se quiere que otra persona haga sub-clasesen base a la clase que has creado y haga nuevas instancias de sta. Te da uncontrol sobre la clase evitando que le introduzcan funcionamientos anormales. (5) Por ejemplo, la clase java.lang.String est declarada como final, por lotanto no permite crear una sub-clase String y darle un mtodo length() que yohaya creado y que haga algo diferente a devolverme la longitud de una cadena.El otro motivo para usar final es la eficiencia. Se trabaja solo con instanciasde la clase sin tener que ir a las sub-clases, as puedes optimizar esa clase. Sila clase es final, entonces implcitamente todos sus mtodos son finaltambin y no hay sobrecarga de mtodos. Adems los programas puedencorrer hasta dos veces ms rpido si la clase es finalLas libreras de java usan mucho el final, como las clases Math, InetAddressand Socket. Es una forma de seguridad de java para que no las alteremos. 4) Clases Synchronizable

Al poner Synchronizable se especifica que todos los mtodos que estndefinidos dentro de esta clase sern sincronizados. Para esto debemos saberque la computadora puede llevar a cabo varios threads a la vez; un thread esun flujo de control para controlar la ejecucin de un programa. Esto es porque -8-

al ejecutar un programa, diversas partes del mismo se pueden estar llevando acabo al mismo tiempo.El problema es que un thread puede interrumpir a otro en cualquier momento.Por ejemplo, si tuviera un thread que est escribiendo en un arreglo, y al mismotiempo otro lo interrumpe y empieza a escribir sobre el mismo arreglo; estollevara a un problema en nuestra aplicacin o applet porque se estnperdiendo datos.Lo que se debe hacer es evitar estas situaciones, bloqueando ciertas partes delprograma mientras otras se estn llevando a cabo, es decir sincronizarlas. Alestar sincronizados los mtodos dentro de esta clase, mientras uno se lleva acabo, el otro tiene que esperar a que acabe el primero antes de comenzar aejecutarse. En otras palabras, no se puede acceder a ellos al mismo tiempodesde distintos threads. (6) Nota: Si no se utiliza alguno de los modificadores al momento de crear una clase, pordefecto, Java asume que la clase es: