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.
Post Reply
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Pregunta de Java, modificar variable global desde objeto?

Post by erkosone »

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
CicTec
Posts: 16590
Joined: Thu Jul 31, 2008 10:18 pm

Re: Pregunta de Java, modificar variable global desde objeto

Post by CicTec »

Hola erkos,

En Java no existen punteros, si quieres modificar una string, simplemente asignale un nuevo texto: string_var = "text";
brujoMX
Posts: 321
Joined: Thu Jan 12, 2012 9:10 pm

Re: Pregunta de Java, modificar variable global desde objeto

Post by brujoMX »

De hecho en Java no existe el termino de variable global. Te refieres a una variable de Clase o de Instancia ?
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: Pregunta de Java, modificar variable global desde objeto

Post by erkosone »

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?
brujoMX
Posts: 321
Joined: Thu Jan 12, 2012 9:10 pm

Re: Pregunta de Java, modificar variable global desde objeto

Post by brujoMX »

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);
    }
}

User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: Pregunta de Java, modificar variable global desde objeto

Post by erkosone »

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:

[Codebox=java file=Untitled.java]//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_);
}
}[/Codebox]

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
CicTec
Posts: 16590
Joined: Thu Jul 31, 2008 10:18 pm

Re: Pregunta de Java, modificar variable global desde objeto

Post by CicTec »

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
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: Pregunta de Java, modificar variable global desde objeto

Post by erkosone »

Gracias por la información ;)
User avatar
CicTec
Posts: 16590
Joined: Thu Jul 31, 2008 10:18 pm

Re: Pregunta de Java, modificar variable global desde objeto

Post by CicTec »

De nada.
Post Reply

Return to “Offtopic”