Pregunta de Java, modificar variable global desde objeto?

Todo aquello que no está relacionado con Gemix Studio ni con la programación DIV en general.

Pregunta de Java, modificar variable global desde objeto?

Postby erkosone » Thu Jun 25, 2015 7:24 am

Hola, alguien sabe como modificar una variable global tipo 'String' desde un metodo cualquiera de un objeto?

Parece una tontería de pregunta pero no encuentro nada en la red sobre punteros en java.. ahora si que estoy perdido.. :P
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Pregunta de Java, modificar variable global desde objeto

Postby CicTec » Thu Jun 25, 2015 10:58 am

Hola erkos,

En Java no existen punteros, si quieres modificar una string, simplemente asignale un nuevo texto: string_var = "text";
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Pregunta de Java, modificar variable global desde objeto

Postby brujoMX » Thu Jun 25, 2015 3:02 pm

De hecho en Java no existe el termino de variable global. Te refieres a una variable de Clase o de Instancia ?
brujoMX
 
Posts: 321
Joined: Thu Jan 12, 2012 9:10 pm

Re: Pregunta de Java, modificar variable global desde objeto

Postby erkosone » Thu Jun 25, 2015 9:12 pm

Me refiero a una variable que creo al inicio del código y que es accesible desde cualquier parte del programa.

Creo haber entendido que se puede hacer lo de modificar una variable de acceso global o como se diga en java creando un objeto que apunta a la variable pero no termino de entender como se hace.. esto de que no existan los punteros es una cosa muy extraña para mi, no se programar sin ellos.. auuuchh...

Lo unico que quiero hacer es tener al inicio del programa una variable llamada 'String str_1;' y poder decirle al metodo de una clase que es esa la variable sobre la que tiene que trabajar, vamos lo que en C/C++ se haría pasando la variable por referencia tan sencillamente pero que en java parece que no se puede hacer, esque no puede ser, se tiene que poder hacer algo tan básico de alguna manera no?
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Pregunta de Java, modificar variable global desde objeto

Postby brujoMX » Thu Jun 25, 2015 11:02 pm

En Java no existe los punteros por que no son necesarios, todo se pasa como referencia menos los tipos primitivos, aun asi puedes usar los wrappers para tal cosa.
Creo que este ejemplo es lo que mas se acerca a una variable global, pudiera usar tambien los static import para llamar a str_1 sin necesidad de hacer referencia a la clase donde esta definida.

Code: Select all
//Main.java
public class Main
{
    public static String str_1;

    public static void main(String...args)
    {
        new MyClass().workingMethod();
    }
}

//MyClass.java
public class MyClass
{
    public class workingMethod()
    {
        Main.str_1 = "Hello World";
        System.out.println(Main.str_1);
    }
}

brujoMX
 
Posts: 321
Joined: Thu Jan 12, 2012 9:10 pm

Re: Pregunta de Java, modificar variable global desde objeto

Postby erkosone » Fri Jun 26, 2015 5:39 am

Muchas gracias por vuestro tiempo os lo agradezco mucho.
BrujoMX la idea es que el método no conozca la variable con la que tiene que trabajar, simplemente quiero pasarsela por referencia para no limitar al método a una variable, si no que pueda trabajar con cualquiera que sea de ese tipo, por poner un ejemplo sería algo así lo que quiero hacer:

Source Code (Java) [ Download ] [ Hide ]
  • //Main.java
  • public class Main
  • {
  •     public static String str_1;
  •     public static String str_2;
  •  
  •     public static void main(String...args)
  •     {
  •         MyClass obj_1 = new MyClass().workingMethod( &str_1 );
  •         MyClass obj_2 = new MyClass().workingMethod( &str_2 );
  •     }
  • }
  •  
  • //MyClass.java
  • public class MyClass
  • {
  •     public class workingMethod( String pointer myStr_ )
  •     {
  •         System.out.println(*myStr_);
  •     }
  • }


Esa es la idea, que el método directamente ignore el nombre original de la variable, simplemente que sepa donde tiene que escribir y leer y que lo haga indiferentemente de la variable que sea.
Se que esa nomenclatura de punteros no existe en java XD.. es de gemix, pero vamos que esa es la idea de lo que quiero hacer.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Pregunta de Java, modificar variable global desde objeto

Postby CicTec » Fri Jun 26, 2015 9:30 am

Como ya dicho en Java no existen los punteros, aunque usa ese mecanismo implicitamente, no necesitas pasar usar el & para pasar el address a una variable u el * para obtener el valor, eso lo hace implicitamente Java, simplemente usa el dato como si fuera una variable normal.

Sobre pasar a un parametro cualquier tipo de dato, debes declarar este parametro de tipo Object, todavia si internamente el dato va a usar metodos o miembros especificos, debes acceder a ellos casteando oportunamiente el dato con el tipo (como harias en C).
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Pregunta de Java, modificar variable global desde objeto

Postby erkosone » Fri Jun 26, 2015 5:54 pm

Gracias por la información ;)
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Pregunta de Java, modificar variable global desde objeto

Postby CicTec » Sat Jun 27, 2015 8:51 am

De nada.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm


Return to Offtopic

Who is online

Users browsing this forum: No registered users and 16 guests