Você está na página 1de 11

TIPOS DE CLASES EN JAVA

-1-
UNIVERSIDAD PRIVADA ANTENOR ORREGO
ESCUELA DE INGENIERIA DE COMPUTACIÓN Y SISTEMAS
TIPOS DE CLASES EN LA P.O.O. (JAVA)

TIPOS DE CLASES EN JAVA

APELLIDOS Y NOMBRES:

 CUEVA CHAMORRO, Diego


 DIAZ MAZABEL, Jorge
 MONTOYA MORENO, Johan

TRUJILLO, AGOSTO 2007

-2-
CONTENIDOS

I. RESUMEN…………………………………….……... pag 04

II. TIPOS DE CLASES……………………………........ pag 05

1. CLASES PUBLIC……….……………………….. pag05

2. CLASES ABSTRACT………………….………… pag 06

3. CLASES FINAL……….……………….…………. pag 07

4. CLASES SYNCHRONIZABLE ………….……… pag 08

III. CONCLUSIONES……………………………………. pag 10

IV. REFERENCIAS BIBLIOGRÁFICAS………………... pag 11

-3-
RESUMEN
Una parte muy importante de la programación orientada a objetos son las
clases, si no fuera por ellas ni siquiera habría objetos. Al momento de crear una
clase, java nos da la oportunidad de elegir entre distintos tipos de clase que
queramos para la nuestra. Cada una con sus propias características y ventajas.
Un programador que conoce estas características sabe cuando debe usar una
y no otra, de manera que su desarrolla un buen software. Los tipos de clases
son:
 C. Public : Son muy comunes, accesibles desde cualquier otra clase en
la misma librería (de otro modo hay que importarlas).
 C. Abstract : Aquellas que tienen por lo menos un método abstracto. No
implementan sus métodos, sino que dan las bases para que sean
implementados en la herencia.
 C. Final : Son las que terminan la cadena de herencia. Útiles por motivos
de seguridad y eficiencia de un programa, ya que no permiten crear más
sub-divisiones por debajo de esta clase.
 C. Synchronizable :Especifica que sus métodos son sincronizados,
evitando problemas con los thread, de forma que estos no pueden
empezar a correr un método si no a acabado el otro.

-4-
Tipos de Clase
El conocimiento de las clases en Java es fundamental, ya que todo gira en
torno a ellas. Un buen conocimiento de ellas nos permitirá realizar programas
que cumplan con lo que deseamos. Crear una clase es sencillo, se hace lo
siguiente:

[modificador] class [nombre]


{
//atributos y metodos
}

El modificador es el tipo de clase que se está creando. De acuerdo a este


modificador, nuestra clase puede tener diferentes características. Según cómo
necesitamos 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 común de clases es el tipo público o “public”. Tiene la
característica de ser accesible desde cualquier otra clase, lo que nos permite
trabajar con ella fácilmente. Sin embargo, para acceder a ella se debe tener
acceso al “package” al que pertenece. (1)

Se puede acceder a ellas directamente o por herencia, estando en el mismo


paquete, para acceder desde otros paquetes, primero hay que importarlos con
la sentencia “import”. Esto es útil ya que por defecto las clases solamente son
accesibles por otras clases declaradas dentro del mismo paquete en el que se
han declarado.(2)

-5-
Un detalle de las clases del tipo “public” es que el archivo con el que se
guardan debe tener el mismo nombre de la clase, de otra forma se presentará
un error de compilación. Uno puede llamar a una clase public desde otra, si se
encuentran en la misma carpeta, de otra forma tendrá dificultades para
interactuar con esta.

Un ejemplo de uso de una clase public sería:


public class banco{
// cuerpo de la clase
}

Y al momento de grabar el programa, tendríamos que ponerle al archivo el


nombre de “banco.java”.

Uno podría encontrar muy útil el uso de las clases “public” cuando necesita
usar constantemente elementos de esa clase en el desarrollo de su programa
en general. Evita problemas cuando se encuentran en paquetes diferentes, ya
que se aplica una reutilización de ese cófigo.

2) Clases Abstract
Este tipo de clases son muy útiles la programación orientada a objetos que al
declarar estas clases solo se definen como se utiliza, sin la necesidad de
implementar métodos, es decir se dejan incompletos para después ser
refinados mediante el mecanismo de la herencia, se puede fijar un conjunto de
métodos y atributos, que serán especializados más adelante. Las clases
abstractas trabajan junto con los métodos abstractos, los cuales están vacíos.
Esto es muy útil cuando la implementación es específica pero cada usuario,
cada uno puede implementarlos como le parezca, pero sus métodos deben
tener los mismos nombres que se dieron antes. (3)

Por ejemplo al ver una declaración de métodos en una clase abstracta solo
podemos observar algunas líneas que solamente tienen los datos que van a
recibir los métodos, pero el código que ejecutara el método no está, eso quiere

-6-
decir que podría estar en otro sitio. Se puede decir que es una base para la
herencia, algo así como indicando qué es lo que se tendrá que hacer más
adelante. 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 Perímetro( int x,int y,int z);
...
}

Nótese que los métodos sólo contienen los parámetros que reciben, mas no
tienen implementadas las acciones que deberían realizar.

Cuando una clase contiene un método abstracto tiene que declararse


abstracta. Pero esto no quiere decir que todos los métodos de una clase
abstracta tienen que ser abstractos.
Las clases abstractas no pueden tener métodos privados ya que no se podrían
implementar, ni tampoco estáticos.

3) Clases Final
Una clase final es la que acaba con una cadena de herencia. (4) De la clase
final no se puede heredar nada. Al decir que termina la cadena de herencia
significa que ya no se sub-divide en más clases, pues indica que es el final de
las 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 estándar de la programación orientada a objetos en java. Pero

-7-
se puede modificar este tipo de organizaciones al usar “final”. Sería de la
siguiente forma:

final class A { }

Con lo que se está indicando que de la clase A no van a salir otras clases.
Según esto no podría existir la clase “B”. Es lo contrario a declarar una clase
abstracta. Es posible mezclar final con public, es decir, se puede tener algo
como esto:

public final class A{ }

Uno puede declarar su clase como “final” por algunos motivos. Primero está el
motivo de seguridad. Cuando no se quiere que otra persona haga sub-clases
en base a la clase que has creado y haga nuevas instancias de ésta. Te da un
control sobre la clase evitando que le introduzcan funcionamientos anormales.
(5) Por ejemplo, la clase java.lang.String está declarada como “final”, por lo
tanto no permite crear una sub-clase String y darle un método length() que yo
haya 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 instancias
de la clase sin tener que ir a las sub-clases, así puedes optimizar esa clase. Si
la clase es “final”, entonces implícitamente todos sus métodos son “final”
también y no hay sobrecarga de métodos. Además los programas pueden
correr hasta dos veces más rápido si la clase es “final”

Las librerías de java usan mucho el “final”, como las clases Math, InetAddress
and Socket. Es una forma de seguridad de java para que no las alteremos.

4) Clases Synchronizable

Al poner “Synchronizable” se especifica que todos los métodos que estén


definidos dentro de esta clase serán sincronizados. Para esto debemos saber
que la computadora puede llevar a cabo varios threads a la vez; un thread es
un flujo de control para controlar la ejecución de un programa. Esto es porque

-8-
al ejecutar un programa, diversas partes del mismo se pueden estar llevando a
cabo 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 mismo
tiempo otro lo interrumpe y empieza a escribir sobre el mismo arreglo; esto
llevaría a un problema en nuestra aplicación o applet porque se están
perdiendo datos.

Lo que se debe hacer es evitar estas situaciones, bloqueando ciertas partes del
programa mientras otras se están llevando a cabo, es decir “sincronizarlas”. Al
estar sincronizados los métodos dentro de esta clase, mientras uno se lleva a
cabo, el otro tiene que esperar a que acabe el primero antes de comenzar a
ejecutarse. En otras palabras, no se puede acceder a ellos al mismo tiempo
desde distintos threads. (6)

Nota: Si no se utiliza alguno de los modificadores al momento de crear una clase, por
defecto, Java asume que la clase es: (7)

 No final
 No abstracta
 Subclase de la clase Object
 No implementa interfaz alguno

-9-
CONCLUSIONES

 Una clase vendría a ser una pieza de código en la que podemos definir
una serie de datos y al mismo tiempo unos métodos (funciones o
procedimientos) que nos permitirán acceder a esos datos.

 De acuerdo a los requerimientos del programador, se puede elegir entre


usar un tipo de clase u otra. Con la experiencia se puede saber qué
clase es más útil en qué momento, en especial para el trabajo en
programas con muchas líneas de código.

 Factores como la accesibilidad, la seguridad y la eficiencia determinan si


se elije una clase u otra. Cada una con sus ventajas y limitaciones
propias. La forma en la que estas partes se encuentren implementadas,
o para qué rango de uso estén hechas determina su tipo.

- 10 -
REFERENCIAS

(1) Victorino Blanco González, Forma parte del equipo


DesarrolloWeb.com y MercadoProfesional.com
http://www.desarrolloweb.com/articulos/1776.php Leído 22.08.2007
(2) Agustín Froufe, Tutorial de Java
http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte5/cap5-
3.html#Cap5_3_1 Leído 23.08.2007
(3) Agustín Froufe, Tutorial de Java
http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte5/cap5-
11.html Leído 24.08.2007
(4) Agustín Froufe, Tutorial de Java
http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte5/cap5-
3.html#Cap5_3_1 Leído 23.08.2007
(5) Glen McCluskey & Associates LLC, firma especializándose en los
lenguajes de programación de C++ y de Java (tm).
http://www.glenmccl.com/perfj_025.htm Leído 23.08.2007
(6) Agustín Froufe, Tutorial de Java
http://www.ulpgc.es/otros/tutoriales/java/Cap7/demonio.html Leído
24.08.2007
(7) Agustín Froufe, Tutorial de Java
http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte5/cap5-
3.html#Cap5_3_1 Leído 23.08.2007

- 11 -

Você também pode gostar