viernes, 10 de agosto de 2012

Tipos de Clases y Objetos en Java

Una clase, bien se había dicho, no es más que la definición (o estructuración) de un objeto o de un conjunto de objetos con las mismas características y funcionalidades comunes.
Tipos de Clases:
- Clases públicas (public): una clase declarada como pública (public) es accesible  desde cualquier otra clase del mismo paquete, también se puede acceder desde otra clase que pertenezca a otro paquete importando la clase [import.NombreDelPaquete.NombreDeClase;]. Pueden ser heredadas.
Sintaxis: public class cuentaBancaria
                  { 
                           long numero;
                           String titular;
                           long saldo;
                           
                           void  ingresar (long cantidad)
                           {
                                   saldo += cantidad;
                           }

                           void retirar (long cantidad)
                           {
                                    if (saldo < cantidad)
                                               System.out.println ("Saldo insuficiente!");
                                    else 
                                             saldo - = cantidad;
                            }
                  }

- Clases Abstractas (abstract): son clases que sirven de base para la herencia. Particularidades: no pueden ser instanciadas, es decir no se pueden crear objetos a partir de ellas. Además, pueden contener métodos con o sin implementación y no pueden definirse como final. También los métodos son definidos como abstractos.
Generalmente una clase abstracta es del tipo public a la vez.
Cuando una clase hereda de una clase abstracta, la primera está obligada a definir o implementar todos los métodos definidos en la clase base. Si algún método está implementado en la clase base, al derivar éste puede ser sobre-escrito (a conveniencia) en la clase que lo hereda.
Si en una clase contiene un método abstracto, dicha clase debe declararse también como abstracta. 
Una clase declarada como abstracta no puede contener métodos privados, ya que si se hereda la clase no sería posible la implementación de los métodos privados.
Sintaxis:
     public abstract class Personas
     {
                 public abstract void registrarDatos (int dni, String nombre, String apellido);
     }

     public class Alumnos extends Pesonas
    {
               public void registrarDatos (int dni, String nombre, String apellido)
               {
                    .............
               }
     }
Si una clase definida como public hereda de una clase abstracta, y que ambos estén definidos en un mismo documento o archivo, el nombre de dicho archivo debe ser igual al de la sub-clase publica.
- Clases Finales (final): son clases que no se pueden heredar. El motivo principal por el que una clase se declara como final obedece a la seguridad, ya que no permite que se modifique las definiciones creadas. También la declaración de las clases como final otorga una mayor eficiencia, puesto que como no son heredables se trabaja sólo con las instancias de la propia clase. Una gran cantidad de de las librerías de java están declaradas como final.

- Clases Sincronizables (Synchronizable): se usan a fin de poder (como su nombre indica) sincronizar los procesos que una clase o clases esté(n) realizando. Bien se sabe que una computadora puede realizar varios procesos o trabajos a la vez, ésto es posible gracias a los hilos (o Threads). Un thread no es más que un flujo que permite controlar la ejecución de un determinado proceso. Esto le da solidez y seguridad a un programa, ya que a un elemento determinado no se puede acceder al mismo tiempo desde distintos threads.
Cuando una clase se declara como synchronizable, se indica que todos sus métodos serán o estarán sincronizados.

Objetos.
* Crear un objeto significa reservar espacio en memoria para sus variables, para el fin se utiliza la palabra clave new, a la acción de crear un objeto se denomina instanciar un objeto, o dicho de otra manera un objeto es una instancia de la clase. Ejemplo:
      Persona p =  new Persona();
Mediante la nueva instancia del objeto se puede acceder a las variables y a los métodos que se encuentran definidos en la clase.
Ejemplos:
p.nombre = "XXXxxx Xxx";
p.verDatos();      
En el primer caso se modifica el valor de la variable "nombre" por el valor especificado entre comillas. En el segundo, se llama al método "verDatos()".

1 comentario: