java为什么我的分数变量不能在GameScreen类之外评估?
不同类别
package battleship;
public class GameSum extends javax.swing.JFrame {
public GameSum() {
initComponents();
J_time.setText(score);
}
package battleship;
public class GameScreen extends javax.swing.JFrame {
protected int score;
public GameScreen() {
initComponents();
}
private void B_checkActionPerformed(java.awt.event.ActionEvent evt) {
if (score < getHS(0) && score < hs[1]) {setHS(0, score, nickname); }
for (int loop = 0; loop<5; loop++)
{
if(score > hs[loop] && score < hs[loop+1]) {setHS(loop+1, score, nickname); }
}
}
# 1 楼答案
您应该学习Java中的
access modifiers
。您必须创建一种访问变量的方法(创建public
seter和public
getter)或使变量public
请按照此链接参考关于access modifiers
# 2 楼答案
因为您的变量不是公共的,或者没有可用的公共getter
在Gamescreen中,只需执行以下操作:
并在GameSum中调用此函数
顺便说一句,我不想听起来粗鲁,但如果这是你真正的缩进/代码约定,那真的是不可恢复的。 如果使用大括号,请尝试正确缩进,将if的内容放在新行上,如果是单行块,则放在不带大括号的同一行上。只要我的两分钱
# 3 楼答案
您的score变量是
protected
,这意味着只有(Gamescreen
)it childs类和同一包上的类才能访问它 请把这个https://stackoverflow.com/a/215505/2291134讲一遍