24/04/2014, 03:43:47 am

Autor Tema: Objetos y Clases En Programacion JAVA (POO)  (Leído 2520 veces)

Desconectado rufiopunkrock

  • Miembro Activo
  • ****
  • Mensajes: 1067
  • DHgNPRGY9tNBhiskvg0Azg==
    • Programacion Y Criptografia
Objetos y Clases En Programacion JAVA (POO)
« : 14/07/2008, 04:40:37 pm »


Objetos y Clases En Programacion JAVA (POO)
by: tiny-y-son



¿Qué es un objeto? Es  algo fí­sico y material como por un ejemplo un auto o coche. En POO, el concepto de objeto no es muy diferente. Una de las diferencias básicas evidentes es que un objeto en Java puede hacer referencia a algo abstracto.

Como en el ejemplo del coche, un objeto puede estar compuesto por otra clase de objeto, como rueda, carrocerí­a, etc... Este concepto de clase de objeto es importante. Un objeto siempre pertenece a una clase de objeto. Por ejemplo, todas las ruedas, con independencia de su tamaño, pertenecen a la clase rueda. Hay muchos objetos "rueda" diferentes que pertenecen a la clase rueda y cada uno de ellos forman una instancia de la clase rueda. Tenemos, pues, instancias de la clase rueda que son ruedas de camión, ruedas de coches o ruedas de motocicleta.

Volvamos al ejemplo del coche. Vamos a definir otra clase de objeto, la clase coche. Esta clase define a "algo" que está compuesto por objetos de la clase rueda, la clase carrocerí­a, la clase volante, etc... Ahora vamos a crear un objeto de la clase coche, al que llamaremos coche_rojo. En este caso hemos instanciado un objeto de la clase coche y hemos definido uno de sus atributos, el color, al que hemos dado el valor de rojo. Vemos pues, que un objeto puede poseer atributos. Sobre el objeto coche podemos definir también acciones u operaciones posibles. Por ejemplo, el objeto coche, entre otras cosas, puede realizar las operaciones de acelerar, frenar, girar a la izquierda, etc... Estas operaciones que pueden ser ejecutadas sobre un objeto se llaman métodos del objeto.

Podrí­amos hacer ya una primera definición de lo que es un objeto. Es la instancia de una clase de objeto concreta, que está compuesta por atributos y métodos. Esta definición nos muestra una de las tres principales caracterí­sticas que definen a la POO. Me refiero al encapsulamiento, que no es, ni más ni menos, que la capacidad que tiene un objeto de contener datos (atributos) y código (métodos).

Clases y Objetos en Java: Antes de poder crear un objeto hay que definirlo. Un objeto, tal como decí­amos antes, pertenece a una clase, así­ que antes de crear nuestro objeto, hay que definir una clase (o utilizar una clase ya definida en las APIs de Java). La forma básica para declarar una clase en Java es.

class nombre_clase {
// variables de la clase (atributos)
...
// métodos de la clase
}


En Java, utilizamos las dos barras inclinadas (//) para indicar que lo que sigue es un comentario. Una vez definida la clase, podemos ya crear un objeto de la clase que hemos declarado. Lo hacemos así­.

clase_objeto nombre_objeto;
Las variables de la clase o atributos son variables como las que vimos en la sección anterior.

Los métodos, son similares a las funciones de otros lenguajes. La declaración de un método tiene la siguiente forma.

tipo NombreMetodo(tipo arg1, tipo arg2, ...) {
// cuerpo del método (código)

}


El método tiene un tipo de retorno (tipo que devuelve al ser llamado). También tiene una lista de argumentos o parámetros.

Vamos a clarificar lo visto hasta ahora con un ejemplo.

class Coche {
 // variables de clase
 int velocidad;

 // métodos de la clase
 void acelerar(int nuevaVelocidad) {
  velocidad = nuevaVelocidad;
 }

 void frenar() {
  velocidad = 0;
 }
}


Hemos declarado la clase coche, que tiene un sólo atributo, la velocidad, y dos métodos, uno para acelerar y otro para frenar. En el método acelerar, simplemente recibimos como parámetro una nueva velocidad, y actualizamos este atributo con el nuevo valor. En el caso del método frenar, ponemos la velocidad a 0. Veamos ahora cómo declaramos un objeto de tipo coche y cómo utilizar sus métodos.

// declaración del objeto
Coche miCoche = new Coche();

// acelerar hasta 100 km/h
miCoche.acelerar(100);

// frenar
miCoche.frenar();


En primer lugar, hemos creado el objeto miCoche que pertenece a la clase Coche mediante el operador new. Después, podemos acceder tanto a los métodos como a las variables miembro usando su nombre precedido de un punto y el nombre del objeto. También podrí­amos haber accedido a la variable miembro: miCoche.velocidad = 100; í‰sta no es una práctica aconsejable. Lo óptimo es que la clase ofrezca los métodos necesarios para acceder a las variables miembro para tener así­ control sobre el acceso a los atributos. No queremos que nadie haga algo como miCoche.velocidad = 1200; sin que podamos controlarlo.

Si nuestro método tiene algún tipo de retorno, quiere decir que ha de devolver un valor de dicho tipo. Esto se hace mediante la palabra reservada return.

return vidas;
Esta lí­nea al final del método devuelve el valor de la variable vidas.

Hay un tipo especial de método que se llama constructor. Un constructor es un método que se llama exactamente igual que la clase a la que pertenece. Cuando creamos un objeto con new, el método constructor es ejecutado de forma automática.

Hay cuatro tipos de modificadores que permiten especificar qué tipo de clase estamos declarando. Los tipos de modificadores son los siguientes.

-abstract. Una clase abstract tiene al menos un método abstracto. Una clase abstracta sólo puede ser heredada para implementar los métodos abstractos que contiene. En ningún caso podemos instanciar un objeto de este tipo.

-final. Una clase final no puede ser heredada por ninguna otra.

-public. Una clase public puede ser accedida por otras clases pertenecientes al mismo paquete, o por cualquier otra siempre que sea importada o heredada.

-synchronizable. Significa que esta clase sólo puede ser accedida por un sólo thread a la vez. Se utiliza en aplicaciones multihebra para asegurar que no hay problemas de sincronización entre hilos.


Al igual que tenemos modificadores para las clases, también tenemos modificadores de acceso a las variables miembro y a los métodos.

-public. Se puede acceder desde fuera de la clase a la que pertenece.
-protected. Sólo las subclases pueden acceder a este miembro de la clase.
-private. Sólo se puede acceder a la variable o al método desde el interior de la clase.
-friendly.Es la opción por defecto si no se especifica nada. Permite sólo el acceso desde las clases pertenecientes al mismo paquete.

Un paquete nos permite agrupar clases bajo un nombre común, por ejemplo, si hiciéramos una librerí­a capaz de manejar gráficos, tendrí­amos un montón de clases encargadas de manejar el color, pí­xeles, imágenes, etc... Tiene lógica agrupar todas estas clases dentro de un paquete. Cuando creamos un paquete, las clases que están incluidas se almacenan en un mismo directorio con el nombre del paquete. Indicamos que una clase pertenece a un paquete concreto mediante la palabra reservada package al principio del archivo fuente.

package nombre_paquete;
Si quisiéramos utilizar este paquete que acabamos de crear, hay que importarlo. Para ello utilizamos la palabra reservada import.

import nombre_paquete;
J2ME dispone de multitud de paquetes, por ejemplo, si queremos utilizar el interfaz de usuario propio de J2ME, debemos importar el paquete lcdui.

import javax.microedition.lcdui.*;
El punto se utiliza para indicar la jerarquí­a de paquetes, es decir, la jerarquí­a de directorios donde están almacenadas las clases. El asterisco indica que deben importarse todas las clases pertenecientes al paquete.




Gracias a larkhill.


« Última Modificación: 18/03/2012, 05:57:59 pm por alexander1712 »
You are not allowed to view links. Register or Login

Desconectado Mkdir

  • Moderador
  • Usuario guru
  • *****
  • Mensajes: 1730
  • ...
    • Linux en vivo
Re: Objetos y Clases En Programacion JAVA (POO)
« Respuesta #1 : 14/07/2008, 05:02:35 pm »
Muy buen aporte
You are not allowed to view links. Register or Login

Desconectado Patriota

  • Hell user
  • ****
  • Mensajes: 350
  • Patriota
Re: Objetos y Clases En Programacion JAVA (POO)
« Respuesta #2 : 29/03/2009, 04:33:28 pm »
muy bueno.. gracias por tu aporte!