gpt4 book ai didi

Java Getter 和 Setter 问题

转载 作者:行者123 更新时间:2023-12-02 06:23:31 26 4
gpt4 key购买 nike

美好的一天!

我创建了两个类,即设置和游戏;在我的游戏中,首先访问设置类。

在我的设置类中,我调用了游戏中的 setter 方法,即 .setDifficulty. 并为其赋值,示例 == 2。

public class Setting extends javax.swing.JDialog {

public Setting (JFrame owner) {
super(owner, true);
initComponents();
setSize(400, 250);
setLocation(370, 250);
getContentPane().setBackground(new Color(128, 201, 20));
}
private void btnOkMouseClicked(java.awt.event.MouseEvent evt) {
dispose();
MainGame m2 = new MainGame(this);
m2.setDifficulty(jComboBox1.getSelectedIndex());
}

然后我访问我的第二个类(class),即游戏。但是我无法在 setter 方法之外获取 difficultLvl 的值。 (查看我对代码的评论)

     public class Game extends javax.swing.JDialog {
private int difficultLvl = 0;

public Game(JFrame owner) {
super(owner, true);
initComponents();
setSize(500, 500);
setLocation(300, 120);
getContentPane().setBackground(Color.getHSBColor(204, 204, 255));
System.out.println(difficultLvl); //SHOULD BE == 2, but == 0;
}


public void setDifficulty(int Difficulty) {
this.difficultLvl = Difficulty;
System.out.println(difficultLvl); == to 2 which is correct...
}

问题是我无法访问 setter 类之外的 difficultLvl 值...它返回到其默认分配值,在这种情况下为 0。我做错了什么?如何访问 setter 方法中的值。我使用了 this.difficultLvl 但没有结果。我只是 java 的新手......请帮忙!非常感谢您的帮助。谢谢。

最佳答案

在 game 的构造函数中,'difficultLvl' 成员将为零,因为这是它的初始化值 - 没有理由期望它为 2。一旦构建,您使用 setter 方法将值设置为 2;从那时起,该值将为 2,直到设置为其他值。

如果要添加 getter 方法:

public int getDifficulty() {
return difficultLvl;
}

调用它你会看到它的值(value)。

我怀疑您不想在每次单击鼠标时都构建一个新游戏,而是保留一个并在单击鼠标时调用 setter 方法:

   private  MainGame m2 = new MainGame(this);

public Setting (JFrame owner) {
super(owner, true);
initComponents();
setSize(400, 250);
setLocation(370, 250);
getContentPane().setBackground(new Color(128, 201, 20));
}
private void btnOkMouseClicked(java.awt.event.MouseEvent evt) {
m2.setDifficulty(jComboBox1.getSelectedIndex());
}

关于Java Getter 和 Setter 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4884120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com