Título: Ayuda con alcance de variables, Aprendiendo Java. Publicado por: Darknessfeatsunny en 24 Junio 2014, 18:10 pm Hola, muy buenas, estoy aprendiendo Java, y me surge un problema. Cuando dentro de una clase declaro unos atributos (variables) y declaro sus métodos, es fácil acceder a cada uno de esos atributos simplemente con llamarlos:
Código: class myclase(){ Bien. Mi duda surge cuando declaro eventos (u otras funciones) dentro de un método. Por ejemplo, si dentro del método setAtributo declaro lo siguiente: Código:
Se que al ejemplo se le pueden sacar mucho errores, no era mi intención poner algo real. Sólo comprender como debo acceder a esos atributos/variables. Dentro del evento "public void focusGained(FocusEvent arg0)" en concreto (o de cualquier otra función dentro del método) no tengo acceso a atributo1. Gracias Título: Re: Ayuda con alcance de variables, Aprendiendo Java. Publicado por: gordo23 en 24 Junio 2014, 19:09 pm Yo puedo acceder normalmente si atributo1 lo declaro como private:
private int atributo1; Sino también de esta forma me ha funcionado: System.out.println(MiClase.this.atributo1); //Siendo MiClase la que contenga a atributo1 Fijate si así te funciona. Saludos y suerte.- Título: Re: Ayuda con alcance de variables, Aprendiendo Java. Publicado por: Darknessfeatsunny en 25 Junio 2014, 14:35 pm Muchas gracias por responder, en realidad en parte tienes razón, y soluciona parte de mi problema. Pero en el ejercicio real no es tan facil. Lo pongo a continuacion, no lo queria poner por su extension, voy a resumirlo un poco y lo pongo tal como es en realidad:
Código:
*LEYENDA ERROR 1: Variables n y m no declaradas, no me deja acceder a los indices de los bucles for. ERROR 2: no me deja acceder a textFieldCasilla[1][3] o cualquier otro objeto (botón, textos) de la clase, no existen dentro de este evento. Se que puedo acceder al textFieldCasilla que genera el evento con arg0.getComponent(), pero yo quiero acceder a otros objetos de la clase. ERROR 3: Tampoco a los atributos propios de la clase. Se "soluciona" con Main.this.casX=2; pero parece una solución cuestionable. Tampoco me interesa modificar su accesibilidad con "public". ERROR 4: Tampoco a los atributos propios de la clase. Se "soluciona" con Main.this.casY=2; pero parece una solución cuestionable. Tampoco me interesa modificar su accesibilidad con "public". Este es el codigo, es funcional, lo podeis probar (aunque no vereis nada, ya que no muestra nada). Podreis modificarlo para ver los errores que mi me da. Lo he podificado incluyendo esas lineas de error solo para que veais que es lo que quiero aprender. Se que las lineas hacen cosas que no tienen sentido en el programa. Solo es para solucionar el problema. El ejercicio trata en general de hacer un sudoku, al menos funcional. Bueno, a parte de esto. Si mirais el code, veis que es solo la especificacion de una matriz de JFormatedTextFields llamados textFieldCasilla[][]. Utilizo un doble for para colocar indices y posiciones y otros atributos al textFieldCasilla[][]. Mi duda es cómo realizar esas operaciones sobre eso atributos y objetos. Como veis tengo creados un par (getPosCasillaX/Y() setPosCasilla(int int)) de metodos "puente" para acceder y establecer a casX y casY. Pero la idea es saber si hay forma "directa" de hacerlo. casX y casY son varibles en el tiempo de ejcucion, es decir no pueden ser static/final. Gracias Título: Re: Ayuda con alcance de variables, Aprendiendo Java. Publicado por: gordo23 en 26 Junio 2014, 03:29 am Vas a tener que leer sobre clases anidadas entonces:
http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html (http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html) Saludos y suerte.- |