如何从另一个java类更改变量的值?
我是java新手,非常感谢您的帮助 我有几节课。我想将用户输入从GUI类传递到我的Basket类,在那里它将更新存储在变量中的值。下面是我目前拥有的,但它似乎没有更新变量如何从另一个java类更改变量的值?,java,variables,Java,Variables,我是java新手,非常感谢您的帮助 我有几节课。我想将用户输入从GUI类传递到我的Basket类,在那里它将更新存储在变量中的值。下面是我目前拥有的,但它似乎没有更新变量 public class Basket { private int seatsBooked; public int getSeatsBooked() { return seatsBooked; } public void setSeatsBooked(int seatsBooke
public class Basket {
private int seatsBooked;
public int getSeatsBooked() {
return seatsBooked;
}
public void setSeatsBooked(int seatsBooked) {
this.seatsBooked = seatsBooked;
}
}
一班-GUI班:我想把“座位”传给篮球班
Basket b;
b = new Basket();
String seats = JOptionPane.showInputDialog("Enter the number of seats to book");
try {
int currentValue = Integer.parseInt(seats);
int newValue = currentValue;
b.setSeatsBooked(newValue);
//some code emitted
}
第二个类-Basket类,我希望将“seats”传递到这个类中并存储在实例变量中
public class Basket {
private int seatsBooked;
public int getSeatsBooked() {
return seatsBooked;
}
public void setSeatsBooked(int seatsBooked) {
this.seatsBooked = seatsBooked;
}
}
这是在另一个类中,我看到结果为0:
Basket b;
b = new Basket();
lblMovieSelection = new JLabel("You have booked:" + b.getSeatsBooked());
尝试将变量设为静态,例如:
public static int testInt = 0;
在另一个类中调用此函数的方式取决于您,您可以使用两个选项
//NOT CLASS NAME IS FOR YOUR ACTUAL CLASS NAME.
ClassName varName = new ClassName();
varname.testInt;
//OR YOU CAN USE
ClassName.testInt;
尝试将变量设为静态,例如:
public static int testInt = 0;
在另一个类中调用此函数的方式取决于您,您可以使用两个选项
//NOT CLASS NAME IS FOR YOUR ACTUAL CLASS NAME.
ClassName varName = new ClassName();
varname.testInt;
//OR YOU CAN USE
ClassName.testInt;
这就是错误行为的原因:
Basket b;
b = new Basket();
lblMovieSelection = new JLabel("You have booked:" + b.getSeatsBooked());
您正在创建一个新对象!因此,默认值为零,这就是错误行为的原因:
Basket b;
b = new Basket();
lblMovieSelection = new JLabel("You have booked:" + b.getSeatsBooked());
您正在创建一个新对象!因此,默认值为零,您需要传递已存储值的类对象。如果您创建一个类的新实例,您怎么能期望该对象将包含该值 在以下两种情况下
Basket b;
b = new Basket();
String seats = JOptionPane.showInputDialog("Enter the number of seats to book");
try {
int currentValue = Integer.parseInt(seats);
int newValue = currentValue;
b.setSeatsBooked(newValue);
//some code emitted
}
及
在两个块中,类Basket
的对象b
是否相同?答案是否定的。因此,当您从第二个代码块中新创建的类Basket
的对象b
调用b.getSeatBooked()
时,您得到的值为零
解决这个问题有两种方法
getSeatBooked()
方法X
,并且有一个名为method()
的函数。然后您可以将Basket
类对象作为参数传递给该函数,在该函数中您可以访问它以获取更新的值。代码可能如下所示
class X{
// other code
public void method(Basket b){
lblMovieSelection = new JLabel("You have booked:" + b.getSeatsBooked());
}
}
seatsboorded
,可以将该变量声明为静态变量。(我想这不是你想要的)您需要传递已为其存储值的类对象。如果您创建一个类的新实例,您怎么能期望该对象将包含该值 在以下两种情况下
Basket b;
b = new Basket();
String seats = JOptionPane.showInputDialog("Enter the number of seats to book");
try {
int currentValue = Integer.parseInt(seats);
int newValue = currentValue;
b.setSeatsBooked(newValue);
//some code emitted
}
及
在两个块中,类Basket
的对象b
是否相同?答案是否定的。因此,当您从第二个代码块中新创建的类Basket
的对象b
调用b.getSeatBooked()
时,您得到的值为零
解决这个问题有两种方法
getSeatBooked()
方法X
,并且有一个名为method()
的函数。然后您可以将Basket
类对象作为参数传递给该函数,在该函数中您可以访问它以获取更新的值。代码可能如下所示
class X{
// other code
public void method(Basket b){
lblMovieSelection = new JLabel("You have booked:" + b.getSeatsBooked());
}
}
seatsboorded
,可以将该变量声明为静态变量。(我想这不是你想要的)你确定没有更新该值吗?你正在使用的输入的输出结果是什么….???@WasiAhmad请查看我的更新代码,因为我正在尝试在另一个类中看到该变量,该变量显示为0。你确定没有更新该值吗?你正在使用的输入的输出结果是什么….???@WasiAhmad请查看我的更新代码,因为我试图在另一个类中看到该变量,该类显示为0。变量不必是静态的,以便传递给另一个对象,这是您将对我进行否决投票的部分。?他使用公共setter并将捕获的整数传递给该对象。这个答案是完全错误的。你可以避免使用公共设置器。这取决于他。我解释过。变量不必是静态的,才能传递给另一个对象。这是你要否决我的部分。他使用公共设置器,并将捕获的整数传递给那个对象。这个答案是完全错误的。你可以避免使用公开的二传手。这取决于他。我解释过。是的,我刚刚意识到。那么我该如何解决这个问题呢?对于第三个类,你需要将该值作为参数传递,,,你也可以将引用变量“b”传递给第三个类,特别是如果你要将它的属性/方法用于其他任何东西的话。是的,我刚刚意识到。那么我该如何解决这个问题呢?对于第三个类,你需要将这个值作为参数传递,,,你也可以将引用变量“b”传递给第三个类,特别是如果你要将它的属性/方法用于其他任何东西的话。是的,好的,我认为第一个解决方案更好。但是我一直在研究如何将变量传递给我的第三个类。你们有任何关于它如何工作的例子吗,因为我在网上找不到。是的,好的,我认为第一个解决方案更好。但是我坚持如何将变量传递给我的第三类。因为我在网上找不到它,所以你有它的工作原理的例子吗。