Clases Y Objetos En JAVA
jcabarcao7 de Marzo de 2014
2.476 Palabras (10 Páginas)438 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 Java es ilegal declarar dos variables locales con el mismo nombre dentro del mismo ámbito o uno que lo incluya. Observará que hemos utilizado x e y como parámetros para el método init y en el interior del método hemos utilizado un valor de referencia especial llamado this para referirnos directamente a las variables de instancia. Si no hubiéramos utilizado this entonces x e y se hubieran referido al parámetro formal y no a las variables de instancia lo que se conoce como ocultar variables de instancia.
El método main()
Dado que no hay funciones globales en Java, se debía idear alguna manera de iniciar un programa, de ahí el sentido del método main. Puesto que en otros lenguajes (p.e. C y C++) main se utilizaba a menudo para pasar parámetros desde la línea de órdenes, un concepto perdido en los usuarios de interfaces de usuario gráficas, el main de Java también pasa esos argumentos.
El compilador de Java compilará clases que no tengan el método main. El intérprete Java, sin embargo, no tiene ningún modo de ejecutar esas clases. El método main es simplemente un lugar de inicio para que el intérprete comience. Un programa complejo tendrá docenas de clases, y sólo una de ellas necesitará tener un método main. Para los applets (programas Java que están incrustados en los visualizadores de red) no se utiliza el método main, ya que los visualizadores (o navegadores) de red siguen un convenio distinto para inicializar applets.
Llamada a método
Se llama a los métodos dentro de una instancia de un clase utilizando el operador punto (.). La forma general de una llamada:
referencia_a_objeto . nombre_de_método ( lista_de_parámetros );
Aquí, referencia_a_objeto es cualquier variable que se refiere a un objeto, nombre_de_método es el nombre de un método de la clase con la que se declaró referencia_a_objeto y lista_de_parámetros es una lista de valores o expresiones separados por comas que coinciden en número y tipo con cualquiera de los métodos
...