Clases Y Objetos En JAVA
Enviado por jcabarcao • 7 de Marzo de 2014 • 2.476 Palabras (10 Páginas) • 407 Visitas
Clases, objetos y métodos
• Clases
• Referencias a objeto
• Variables de instancia
• El operador new
• El operador punto (.)
• Declaración de método
• this
• ocultar variables de instancia
• El método main()
• Llamada a método
• Constructores
• Sobrecarga de método
• this en los constructores
• Herencia
• super
• Selección de método dinámica
• final
• finalize
• static
• abstract ________________________________________
Clase (class)
El elemento básico de la programación orientada a objetos en Java es un clase. Una clase define la forma y el comportamiento de un objeto. Cualquier concepto que desee representar en su programa en Java está encapsulado en una clase. En este capítulo abordaremos en profundidad los conceptos teóricos de la programación orientada a objetos: encapsulado, herencia, y polimorfismo. Aprenderemos a crear, ampliar y crear instancias de nuestras propias clases y comenzaremos a utilizar la potencia real del estilo orientado a objetos de Java. Para crear una clase sólo se necesita un archivo fuente que contenga la palabra clave class seguida de un identificador legal y un par de llaves para el cuerpo.
class Point {
}
Las clases de Java típicas incluirán variables y métodos de instancia. Los programas en Java completos constarán por lo general de varias clases de Java de distintos archivos fuente.
Una clase define la estructura de un objeto y su interfaz funcional, conocida como métodos. Cuando se ejecuta un programa en Java, el sistema utiliza definiciones de clase para crear instancias de las clases, que son objetos reales. La forma general de una clase se muestra a continuación.
class nombre_de_clase extends nombre_de_superclase {
type variable_de_instancia1;
type variable_de_instancia2;
type variable_de_instanciaN;
type nombre_de_método1 (lista_de_parámetros) {
cuerpo_del_método;
}
type nombre_de_método2 (lista_de_parámetros) {
cuerpo_del_método;
}
type nombre_de_métodoN (lista_de_parámetros) {
cuerpo_del_método;
}
}
Aquí, nombre_de_clase y nombre_de_superclase son identificadores. La palabra clave extends se utiliza para indicar que nombre_de_clase será una subclase de nombre_de_superclase. Hay una clase incorporada, llamada Object (objeto), que está en la raíz de la jerarquía de clases de Java. Si se desea realizar una subclase de Object directamente, se puede omitir la cláusula extends.
Referencias a objeto
Cada nueva clase que se crea añade otro tipo que se puede utilizar igual que los tipos simples. Por lo tanto, cuando se declara una nueva variable, se puede utilizar un nombre de clase como tipo. A estas variables se las conoce como referencias a objeto.
A cada instancia se le puede llamar también objeto. Cuando se declara que el tipo de una variable es una clase, tiene como valor por omisión el null, que es una referencia al tipo Object, y, por lo tanto, es compatible en tipo con todas las otras clases. El objeto null no tiene valor; es distinto del entero 0, igual que el false de boolean. Este ejemplo declara una variable p cuyo tipo es de la clase Point.
Point p; Aquí la variable p tiene un valor null.
Variables de instancia
Los datos se encapsulan dentro de una clase declarando las variables dentro de las llaves de apertura y cierre de la declaración de la clase. A las variables que se declaran en este ámbito y fuera del ámbito de un método concreto se las conoce como variables de instancia. Este ejemplo declara una clase de nombre Point, con dos variables de instancia enteras llamadas x e y.
class Point {
int x, y;
}
El operador new
El operador new crea una única instancia de una clase y devuelve una referencia a ese objeto. Aquí se crea una nueva instancia de Point y se almacena en una variable p.
Point p = new Point();
Aquí p referencia a una instancia de Point, pero realmente no lo contiene. Se pueden crear múltiples referencias al mismo objeto.
Point p = new Point();
Point p2 = p;
Cualquier cambio realizado en el objeto refernciado por p2 afectará al mismo objeto al cual se refiere p. La asignación de p a p2 no asignó memoria ni copió nada en el objeto original. De hecho las asignaciones posteriores a p simplemente desengancharán p del objeto original sin afectar al propio objeto, como se muestra a continuación.
Point p = new Point();
Point p2 = p;
p = null;
Aunque se haya asignado p a null, p2 todavía apunta al objeto creado por el operador new.
El operador punto (.)
El operador punto se utiliza para acceder a las variables de instancia y los métodos contenidos en un objeto. Esta es la forma general de acceder a las variables de instancia utilizando el operador punto.
referencia_a_objeto.nombre_de_variable
Aquí referencia_a_objeto es una referencia a un objeto y nombre_de_variable es el nombre de la variable de instancia contenida en el objeto al que se desea acceder. El siguiente fragmento de código muestra cómo se puede utilizar el operador punto para almacenar valores en variables de instancia y para referirnos a estos.
p.x = 10;
p.y = 20;
System.out.println("x = " + p.x + " y = " + p.y);
Declaración de método
Los métodos son subrutinas unidas a una definición de una clase específica. Se declaran dentro de una definición de clase al mismo nivel que las variables de instancia. Se debe llamar a los métodos en el contexto de una instancia concreta de esa clase.
En la declaración de los métodos se define que devuelve un valor de un tipo concreto y que tiene un conjunto de parámetros de entrada.
tipo nombre_de_método ( lista_formal_de_parámetros ) {
cuerpo_del_método;
}
El nombre_de_método es cualquier identificador legal distinto de los ya utilizados en el ámbito actual. La lista_forma_de_parámetros es una secuencia de parejas de tipo e identificador separadas por comas. Si no se desean parámetros, la declaración del método deberá incluir un par de paréntesis vacío.
Podríamos crear un método en nuestra clase Point que inicialice las variables de instancia que quedaría de la forma siguiente:
clase Point {
int x, y;
void init(int x, int y) {
this.x = x;
this.y = y;
}
}
this
En
...