Java - Obtener variables de otra clase

 
Vista:

Obtener variables de otra clase

Publicado por Ricardo (12 intervenciones) el 02/10/2007 07:45:54
Buenas, mi pregunta es la siguiente, digamos que tengo una clase, que llama a un metodo de otra clase por medio de un new de la siguiente forma:

Clase1 c1 = new Clase1();

resulta que este metodo sirve para calcular una variable q necesito utilizar, alguien me puede decir como hago para llamar a esta variable desde la nueva clase?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Obtener variables de otra clase

Publicado por angel (537 intervenciones) el 02/10/2007 10:20:43
Hola, la forma mas normal de acceder a variables de otra clase es mediante metodos set y get. Un ejemplo

class Clase1{
private String var1;

public void setVar1(String var1){
this.var1=var1;
}

public String getVar1(){
return this.var1;
}

public void modificarValorVar1(){
this.var1 = "cambiado valor de var1";
}
}

class Clase2{
public static void main(String[] args){
Clase1 c1=new Clase1();
//Metodo modificar valor
c1.modificarValorVar1();
//Obtener el valor
String valorVar1=c1.getVar1();
}

}

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Obtener variables de otra clase

Publicado por Ricardo (12 intervenciones) el 03/10/2007 07:11:04
Hola de nuevo

lamento la molestadera... pero soy muy nuevo en esto y necesito un poco de ayuda.... esta es basicamente la clase de la cual quiero extraer especificamente la variable z....

class UltimateDice{
int x;
int y;
int z;

public UltimateDice(){
JFrame frm1 = new JFrame("Dados");

Random rnd1 = new Random();
x= (int)(rnd1.nextDouble()*6.0+1);
y= (int)(rnd1.nextDouble()*6.0+1);
z=x+y;
return z;
}

ciertamente el Frame contiene mas elementos, pero todos son manejados por estas variables, al intentar ejecutar esto me resulta un error del siguiente tipo:

"cannot return a value from method whose result type is void"

sin embargo esta clase se ejecuta perfectamente si el "return z;" tambien desde otra clase con un new.
UltimateDice UD = new UltimateDice();
UltimateDice.dar_z(); //esta es la parte que no me funciona :(

alguien sabe como lo puedo solucionar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Obtener variables de otra clase

Publicado por angel (537 intervenciones) el 03/10/2007 08:31:33
Un constructor no puede devolver valores.
Para recuperar el valor de "z", crea un metodo para ello y llamalo despues desde la clase que quieras una vez hayas llamado el constructor

//Metodo par recuperar z
public int getZ(){
return z;
}

//EN otra clase, para recuperar el valor de z
UltimateDice UD = new UltimateDice();
int zz = UltimateDice.getZ();

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Obtener variables de otra clase

Publicado por Esteban (1 intervención) el 25/08/2020 10:03:12
El problema de este codigo es que la variable que se quiere utilizar llega vacia a la otra clase
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Franklin
Val: 456
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Obtener variables de otra clase

Publicado por Franklin (179 intervenciones) el 25/08/2020 14:44:07
que tal muchachos.

a ver... Si lo que quieres es calcular el valor de la variable Z en una clase y llamarla desde otra puedes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class UltimateDice{
 
   public UltimateDice(){ // Constructor vacio
 
    }
 
public int CalcularZ(){
int x=0,y=0,z=0;
Random rnd1 = new Random();
x= (int)(rnd1.nextDouble()*6.0+1);
y= (int)(rnd1.nextDouble()*6.0+1);
z=x+y;
return z;
}
 
}
 
}

ya con esto desde otra clase puedes sin problemas:

1
int recibirZ = new UltimateDice().CalcularZ();

.

Claro en el caso hipotético que tengas la clase solo para generar estos cálculos random, obviamente que si la variable es parte de la clase y no del método debes utilizar debidamente los getters y setters para acceder a él.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Obtener variables de otra clase

Publicado por brayan (1 intervención) el 07/03/2023 04:58:57
hola buenas noches quisiera saber como hacer para poder hacer que mi metodo que tengo instanciado en otra clase pueda obtener valores de un objeto y despues valores de otro objeto muestro codigo:
import javax.swing.*;
public class VISTAexamen{
public static void main (String[] args) {
CTRLexamen objctrl=new CTRLexamen();
MDLexamen objmdl1=new MDLexamen();
MDLexamen objmdl2=new MDLexamen("B544","Brayan","Programacion","Programacion","asignatura");
JOptionPane.showMessageDialog(null,"El numero de empleado es: "+objmdl1.getNumNumEmpleado()+
"\nEl nombre del empleado es: "+objmdl1.getNombre()+
"\nLa divicion ah la que pertenece es: "+objmdl1.getDivision()+
"\nLa academia que pertenece es: "+objmdl1.getAcademia()+
"\nSu horario es de: "+objmdl1.getTipo()+
"\nLas asignaturas que le tocan son: "+objctrl.determinarAsignaturas()+
"\nSu sueldo es: "+objctrl.determinarSueldo());
JOptionPane.showMessageDialog(null,"El numero de empleado es: "+objmdl2.getNumNumEmpleado()+
"\nEl nombre del empleado es: "+objmdl2.getNombre()+
"\nLa divicion ah la que pertenece es: "+objmdl2.getDivision()+
"\nLa academia que pertenece es: "+objmdl2.getAcademia()+
"\nSu horario es de: "+objmdl2.getTipo()+
"\nLas asignaturas que le tocan son: "+objctrl.determinarAsignaturas()+
"\nSu sueldo es: "+objctrl.determinarSueldo());
//nueva clase
import javax.swing.*;
public class MDLexamen{
private String num_empleado;
private String nombre;
private String division;
private String academia;
private String tipo;
public MDLexamen(){
num_empleado="s7878";
nombre="Katya";
division="Mecatronica";
academia="ingles";
tipo="completo";
}
public MDLexamen(String num_empleado, String nombre, String division, String academia, String tipo){
this.num_empleado=num_empleado;
this.nombre=nombre;
this.division=division;
this.academia=academia;
this.tipo=tipo;
}
public void setNumEmpleado(String num_empleado){
this.num_empleado=num_empleado;
}
public String getNumNumEmpleado(){
return num_empleado;
}
public void setNombre(String nombre){
this.nombre=nombre;
}
public String getNombre(){
return nombre;
}
public void setDivision(String division){
this.division=division;
}
public String getDivision(){
return division;
}
public void setAdemia(String academia){
this.academia=academia;
}
public String getAcademia(){
return academia;
}
public void setTipo(String tipo){
this.tipo=tipo;
}
public String getTipo(){
return tipo;
}
}
//tercer clase
import javax.swing.*;
public class CTRLexamen extends VISTAexamen{
MDLexamen obj1=new MDLexamen();
double determinarSueldo(){
double sueldo=0.0;
if(obj1.getTipo().equalsIgnoreCase("Completo")){
sueldo=1000;
}
else if(obj1.getTipo().equalsIgnoreCase("Asignatura")){
sueldo=500;
}
else{
JOptionPane.showMessageDialog(null,"ese tipo no esta");
}
return sueldo;
}
String determinarAsignaturas(){
String asignaturas="";
if(obj1.getAcademia().equalsIgnoreCase("ingles")){
asignaturas="Ingles I \nIngles II \nIngles III";
}
else if(obj1.getAcademia().equalsIgnoreCase("programacion")){
asignaturas="Metodologias de la programacion \nProgramacion orientada a objetos \nBase de datos";
}
else{
JOptionPane.showMessageDialog(null,"Esa materia no esta");
}
return asignaturas;
}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar