Paso de variables entre clases
Buenas...
El problema es:
Como hacer para guardar una variable en una clase y utilizarla despues?
es decir...
Esto lo tengo en P.java
String Variable = "Valor";
ahora de P.java voy a G.java despues a R.java y en la clase O.java quiero obtener el valor que contiene 'Variable' (de P.java)
Como se puede hacer esto?
Es decir, gardar el valor en algun lado para utilizarlo despues sin necesidad de utiizar BD..
Alguien sabe?
1.- Re: Paso de variables entre clases
Por Ehooo , Domingo 26 de marzo de 2006 a las 09:44
package es.ehooo; class P{ private String var="Valor";
public String getVar(){ return this.var; } }
------------------------------------------
Con que en O.java hagas.
package es.ehooo; import es.ehooo.P; class O{ private p;
public O(){ this.p=new P(); } public String getVarP(){ return this.p.getVar(); } }
-----------------------------------
No se si te refieres a esto o a que te refieres; si pones el ejemplo seria mejor.
2.- Re: Paso de variables entre clases
Por ktommy , Domingo 26 de marzo de 2006 a las 12:25
mira lo que tienes que hacer
es uno o lo pasa con protected y no como private las variables a usar
sino lo puedes hacer asi
public class Cpunto {
private int y;
private int x;
public Cpunto () {
x = setX(0);
y = setY(0);
}
public Cpunto (int X, int Y) {
x = setX(X);
y = setY(Y);
}
public void setX(int X){
x=X;
}
public void setY(int Y){
y=Y;
}
public int getX(){
return x;
}
public int getY(){
return y;
}
}
public class Crectangulo{
private int ancho=0;
private int alto=0;
private Cpunto origen;
public Crectangulo() {
origen=new Cpunto();
}
public Crectangulo(Cpunto p ) {
origen=p;
}
public Crectangulo(int w, int h) {
origen=new Cpunto();
setAncho(W);
setAlto(H);
}
public Crectangulo(Cpunto p, int w, int h) {
origen=p;
setAncho(W);
setAlto(H);
}
public void mover(int x, int Y) {
origen.setX(X);
origen.setY(Y);
}
public int area() {
return getAncho()*getAlto();
}
public void setAncho(int W){
ancho=W;
}
public void setAlto(int H){
Alto=H;
}
public int getAncho(){
return ancho;
}
public int setAlto(){
return Alto;
}
public void print(){
System.out.println("el origen del rectangulo es X: "+origen.getX()+" Y:"+origen.getY());
System.out.println("el ancho del cuadrado es:"+getAncho());
System.out.println("el Alto del cuadrado es:"+getAlto());
}
}
el uso de establecer(set) y obtener(get) siempre es necesario usarlo ya que pudes
utilizarlos en las clases hijas, pero ojo no se puede usar de hijas hacia padre excepto
que usas desde la mas arriba esten declaradas y se usen en las demas clases hijas.
saludos Roldan
3.- Re: Re: Paso de variables entre clases
Ok compadre!!! yo lo tengo de esa manera...
pero exactamente es para clases hijas...
la cuestión es que yo lo deseo para clases completamente independientes...
es decir, como guardo un valor en una clase sin necesidad de usar BD ni archivos planos, claro esta! para utilizarlo despues..?
Hagamos las veces de un programa de acceso..
aqui se necesita que cuando el usuario se logee, quede una variable para toda la aplicación que indicará si está o no.
Donde se guarda esa variable o de que manera lo hago?
en JSP se utiliza una variable de sesion en un programa independiente como se hace?
Podrías explicarme por medio de un ejemplo sencillo de acceso?
Tommy Gracias de antemano!
4.- Guardar el Login pra el resto de la Aplic.
Por taturito , Jueves 30 de marzo de 2006 a las 09:43
Buenos Dias.
Soy un usuario Novel en el campo java. Sin embargo te voy a explicar con un ejemplo sencillo como lo hice.
Despues de Mostrar la Ventana de entrada y leer el nombre y el password busco en mi base de datos si este usuario con esta clave está registrado. Si todo es OK entonces leo el codigo que tiene asigando. con la siguiente instruccion:
CodUsu =RSet.getString("CodUsu");
Luego fuerzo el cierre de la Ventana de ENTRADA con la sig. instruccion:
dispose();
Y creo la clase principal de la aplicacion pasando los atributos de registro de la sig. manera:
new Ventana1(NombUsu,CodUsu).setVisible(true);
Asi Ventana1 y todas sus hijas conoceran quien es NombUsu y su Codigo.
5.- Re: Guardar el Login pra el resto de la Aplic.
ok gracias amigo..
pero la cuestion es que yo deseo utilizar esa variable supongamos en una Ventana5 y para llegar a esa ventana 5 tengo que pasar primero por 1 seguida de 2...,3 , .. hasta llegar a 5, es decir, no quiero utilizar la variable CodUsu en ninguna ventana excepto la 5...
Como lo hago para no pasar la variable de ventana en ventana y sin utilizar BD?
Gracias de antemano
6.- Re: Paso de variables entre clases
Por timoniel_24 , Jueves 30 de marzo de 2006 a las 20:47
Que tal, para el ultimo mensaje de como guardar datos de un usuario puedes hacer lo siguiente:
Crea una clase de datos comunes, digamos:
public class DatosComunes{
private static String loginUsuario;
private static String passUsuario;
private static String nombreUsuario;
}
7.- Re: Re: Paso de variables entre clases
ok...
pero si esos datos los deseo modificar en cualquier instante y utilizar despues de varias ventanas el valor modificado ¿como seria?
8.- Re: Re: Paso de variables entre clases
Por timoniel_24 , Jueves 30 de marzo de 2006 a las 21:03
Puedes adicionalmente agregar un constructor privado y métodos accesores (públicos) para establecer y recuperar los valores correspondientes, ya que las variables miembro aunque son constantes, son privadas, ejemplo:
public static String getLoginUsuario()
{
return loginUsuario;
}
public static void setLoginUsuario(String valor)
{
loginUsuario = valor;
}
Lo importante aquí es que, todos los métodos son estáticos, por lo que no es necesario crear una instancia de la clase para acceder a ellos, se dice que son métodos de toda la clase y no de instancia.
Para poder utilizar los métodos accesores desde cualquier otra clase, basta con usar el nombre de la clase para acceder a ellos, por ejemplo:
public class otra{
public void otra();
.......
String Usuario = DatosComunes.getLoginUsuario();
.......
}
Hay que agregar el respectivo import de la clase.
9.- Re: Re: Re: Paso de variables entre clases
ojo lo que no deseo es que cuando yo modifique cierto valor no se me pierda ese valor por el que esta estipulado en la clase que posee los valores estaticos...
Ademas... con lo que dices es que yo puedo modificar los datos de la clase en una ventana y despues de haber estado en 3 ventanas posteriormente el conserva los valores que ingrese la ultima vez, es decir se me pierden los originales??
claro esta mientras que este ejecutando la aplicacion por que cuando la cierre los valores vuelven a la normalidad¿ verdad?
me podrías dar un ejemplo practico y facil??
Gracias de antemano
9.1.- Paso de Variables
Por martosfre , Lunes 24 de noviembre de 2008 a las 08:18
Hola amigo la forma de compartir una variable en toda tu aplicación sin necesidad de acceder a la bdd, es jugando con los modificadores de acceso, como tu necesitas mantener el estado de tu variable desde toda tu aplicación debes declarar una variable como public static Ejm: public static int valCom = "0";
Porque pública? Porque necesitas accederla desde cualquier clase dentro de cualquier paquete y porque static? porque esto asegura que solo existe una referencia en memoria a la variable de instancia. Espero que haya sido de ayuda mi post, un abrazo.
JAVA ECUADOR
Dios te bendiga
10.- Paso de variables entre clases
Por ktommy , Lunes 24 de noviembre de 2008 a las 08:29
Mira lo que tienes que haces trabajar con clases
tienes que estudiar o analizar sobre la programacion orientada a objetos
lo que tienes que hace es trabajar con variables public o protected
saludos