P. 1
2 Tipos de Clases

2 Tipos de Clases

4.5

|Views: 27.433|Likes:
Publicado pordiegocuevac
Clases en Java.

Visiten mi blog en:
http://dragons-rise.blogspot.com/
Clases en Java.

Visiten mi blog en:
http://dragons-rise.blogspot.com/

More info:

Published by: diegocuevac on Jul 02, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/30/2013

pdf

text

original

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. II. RESUMEN…………………………………….……... TIPOS DE CLASES……………………………........ 1. CLASES PUBLIC……….……………………….. 2. CLASES ABSTRACT………………….………… 3. CLASES FINAL……….……………….…………. 4. CLASES SYNCHRONIZABLE ………….……… III. IV. CONCLUSIONES……………………………………. pag 04 pag 05 pag05 pag 06 pag 07 pag 08 pag 10

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, y Forma parte del equipo

DesarrolloWeb.com

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/cap53.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/cap511.html Leído 24.08.2007 (4) Agustín Froufe, Tutorial de Java

http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte5/cap53.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 Leído

http://www.ulpgc.es/otros/tutoriales/java/Cap7/demonio.html 24.08.2007 (7) Agustín Froufe, Tutorial de

Java

http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte5/cap53.html#Cap5_3_1 Leído 23.08.2007

- 11 -

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->