4,52/5
(83 opiniones)
|12480 alumnos|Fecha publicación: 07/09/2004
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 (instancias) 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.
Hay 83 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Funciones en C (primera parte) Curso de programacíon informática sobre Funciones en C en el orden de los fundamentos de la programación. Comprende el desarrollo de un software utilizando funciones y a ... [17/10/08] |
|
2.816 | ||
|
Procesos en C. Sincronización (primera parte) Curso de informática sobre sincronización de procesos en C y señales en linux que te ofrece la posibilidad de comprender los mecanismos de comunicación entre procesos inf... [21/10/08] |
|
993 | ||
|
Java Java nació con el deseo por parte de Sun de buscar un lenguaje de programación enfocado a electrodomésticos. Se necesitaba alg&uacu... [23/04/04] |
|
49.291 | ||
Publicar en
del.icio.us
digg
meneame