Entrada al objeto en Java a.) El operador
punto (.) El operador
punto (.) se emplea para alcanzar a las
variables de instancia y los metodos contenidos en un objeto, mediante su referencia a objeto: referencia_a_objeto.nombre_de_variable_de_instancia referencia_a_objeto.nombre_de_método( lista-de-parámetros ); Hemos creado un
ejemplo completo que combina los
operadores new y punto para crear un objeto MiPunto, Guardar algunos valores en él e imprimir sus valores finales: MiPunto p6 = new MiPunto( 10, 20 ); System.out.println ("p6.- 1. X=" + p6.x + " , Y=" + p6.y); p6.inicia( 30, 40 ); System.out.println ("p6.- 2. X=" + p6.x + " , Y=" + p6.y); Cuando se ejecuta este programa, se
observa la próximo salida: p6.- 1. X=10 , Y=20 p6.- 2. X=30 , Y=40 Mientras las impresiones (método println()) se accede al valor de las
variables mediante p6.x y p6.y, y
entre una impresión y otra se llama al método inicia(), cambiando los valores de las variables de instancia. Este es uno de los apariencias mas significativos de la
diferencia entre la programacion enfocada a
objetos y la programacion estructurada. Cuando se llama al metodo p6.inicia(), lo primero que se hace en el metodo es sustituir los nombres de los
atributos de la clase por las correspondientes variables de instancia del objeto con que se ha llamado. Asi por
ejemplo x se convertira en p6.x. Si otros
objetos llaman a inicia(), inclusive si lo hacen de una forma concurrente, no se producen efectos laterales, ya que las variables de instancia
sobre las que laboran son distintas. b.) La referencia this Java incluye un valor de referencia especial llamado this, que se emplea dentro de cualquier metodo para mencionarse al objeto actual. El valor
this se refiere al objeto
sobre el que ha sido llamado el metodo actual. Se puede emplear this siempre que se requiera una referencia a un objeto del tipo de una clase actual. Si hay dos objetos que utilicen el mismo codigo, seleccionados a traves de otras instancias, cada uno tiene su propio valor unico de this. Un refinamiento habitual es que un constructor llame a otro para desarrollar la instancia correctamente. El próximo constructor llama al constructor parametrizado MiPunto(x,y) para terminar de empezar la instancia: MiPunto() { this( -1, -1 ); // Llama al constructor parametrizado } En Java se faculta declarar variables locales, incluyendo parametros formales de metodos, que se solapen con los nombres de las variables de instancia. No se emplean x e y
como nombres de parametro para el metodo inicia, porque ocultarian las variables de instancia x e y reales del entorno del metodo. Si lo hubiesemos hecho, entonces x se debiera referido al parametro formal, ocultando la variable de instancia x: void inicia2( int x, int y ) { x = x; // Ojo, no modificamos la variable de instancia!!! this.y = y; // Modificamos la variable de instancia!!! }