getter 和 setter 问题
getter and setter issue
我遇到这个问题,我将一些变量的值从 jForm 设置为 class,我在其中存储变量。设置值,好的,获取值,好的。
但是,当我转到另一个 jForm 并将吸气剂称为 returns 空值时。
我不知道我的代码有什么问题,如果有人能在这方面帮助我,我将不胜感激。
代码非常直接
public class Variables
{
private int Var1;
private int Var2;
private double Var3;
private int Var4;
public int getVar1() {
return capacidad;
}
public void setVar1(int Var1) {
this.Var1 = Var1;
}
public int getVar2() {
return Var2;
}
public void setVar2(int Var2) {
this.Var2 = Var2;
}
public double getVar3() {
return Var3;
}
public void setVar3(double Var3) {
this.Var3 = Var3;
}
public int getVar4() {
return Var4;
}
public void setVar4(int Var4) {
this.Var4 = Var4;
}
}
例如,我设置了从 jForm 调用函数的所有值,如下所示:
variables.setVar1(value1);
variables.setVar2(value2);
variables.setVar3(value3);
variables.setVar4(value4);
然后我尝试从不同的 jForm 获取值,它们都是 0
(编辑)
我已经尝试从我设置它们的同一个 jForm 调用它们并且工作得很好
(编辑编辑)
jForm1 代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int value1;
int value2;
double value3;
int value4;
try
{
value1 = (int) 1Spinner.getValue();
value2 = (int) 2Spinner.getValue();
value3 = (int) 3Spinner.getValue();
value4 = (int) 4Spinner.getValue();
if(value1>0)
{
variables.setVar1(value1);
variables.setVar2(value2;
variables.setVar3(value3);
variables.setVar4(value4);
}
else
{
}
}
catch(Exception e)
{
System.out.orintln("Error");
}
}
jForm2代码:
int value1;
int value2;
int value3;
int value4;
Variables variables = new Variables();
value1 = variables.getVar1();
//and so on, all of them return empty
jForm2 中的以下代码创建了 variables
变量的新实例。所以任何实例成员都将被取消初始化。
Variables variables = new Variables();
如果您希望它具有与 jForm1 相同的值,则需要为 jForm2 提供一种从 jForm1 获取它们的方法,如下所示:
// in jForm1
private static Variables variables = new Variables();
public static getVariables() {
return variables;
}
// in jForm2
Variables variables = jForm1.getVariables();
或者您可以将 Variables
实例成员声明为静态成员,如下所示:
public class Variables {
private static int Var1;
private static int Var2;
private static double Var3;
private static int Var4;
我遇到这个问题,我将一些变量的值从 jForm 设置为 class,我在其中存储变量。设置值,好的,获取值,好的。 但是,当我转到另一个 jForm 并将吸气剂称为 returns 空值时。 我不知道我的代码有什么问题,如果有人能在这方面帮助我,我将不胜感激。
代码非常直接
public class Variables
{
private int Var1;
private int Var2;
private double Var3;
private int Var4;
public int getVar1() {
return capacidad;
}
public void setVar1(int Var1) {
this.Var1 = Var1;
}
public int getVar2() {
return Var2;
}
public void setVar2(int Var2) {
this.Var2 = Var2;
}
public double getVar3() {
return Var3;
}
public void setVar3(double Var3) {
this.Var3 = Var3;
}
public int getVar4() {
return Var4;
}
public void setVar4(int Var4) {
this.Var4 = Var4;
}
}
例如,我设置了从 jForm 调用函数的所有值,如下所示:
variables.setVar1(value1);
variables.setVar2(value2);
variables.setVar3(value3);
variables.setVar4(value4);
然后我尝试从不同的 jForm 获取值,它们都是 0
(编辑)
我已经尝试从我设置它们的同一个 jForm 调用它们并且工作得很好
(编辑编辑)
jForm1 代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int value1;
int value2;
double value3;
int value4;
try
{
value1 = (int) 1Spinner.getValue();
value2 = (int) 2Spinner.getValue();
value3 = (int) 3Spinner.getValue();
value4 = (int) 4Spinner.getValue();
if(value1>0)
{
variables.setVar1(value1);
variables.setVar2(value2;
variables.setVar3(value3);
variables.setVar4(value4);
}
else
{
}
}
catch(Exception e)
{
System.out.orintln("Error");
}
}
jForm2代码:
int value1;
int value2;
int value3;
int value4;
Variables variables = new Variables();
value1 = variables.getVar1();
//and so on, all of them return empty
jForm2 中的以下代码创建了 variables
变量的新实例。所以任何实例成员都将被取消初始化。
Variables variables = new Variables();
如果您希望它具有与 jForm1 相同的值,则需要为 jForm2 提供一种从 jForm1 获取它们的方法,如下所示:
// in jForm1
private static Variables variables = new Variables();
public static getVariables() {
return variables;
}
// in jForm2
Variables variables = jForm1.getVariables();
或者您可以将 Variables
实例成员声明为静态成员,如下所示:
public class Variables {
private static int Var1;
private static int Var2;
private static double Var3;
private static int Var4;