2 Tipos de Clases
2 Tipos de Clases
2 Tipos de Clases
-1-
UNIVERSIDAD PRIVADA ANTENOR ORREGO
ESCUELA DE INGENIERIA DE COMPUTACIÓN Y SISTEMAS
TIPOS DE CLASES EN LA P.O.O. (JAVA)
APELLIDOS Y NOMBRES:
-2-
CONTENIDOS
I. RESUMEN…………………………………….……... pag 04
-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:
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)
-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.
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.
Nótese que los métodos sólo contienen los parámetros que reciben, mas no
tienen implementadas las acciones que deberían realizar.
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.
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:
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
-8-
al ejecutar un programa, diversas partes del mismo se pueden estar llevando a
cabo al mismo tiempo.
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.
- 10 -
REFERENCIAS
- 11 -