我有两个单独的类:GameOfLife.java
和Grid.java
,后者有paintComponent
方法。在GameOfLife.java
,我有一个不断变化的变量toRepaint
,我需要在Grid.java
中访问。
以下是我设置GameOfLife.java
的{{1}}部分:
toRepaint
以下是我需要在if (an==0) {
toRepaint = (String)c.getSelectedItem();
System.out.println(toRepaint);
}
main.repaint();
中访问该变量的地方:
Grid.java
如何访问此变量?
答案 0 :(得分:3)
我的建议是:
@Override
public String getName(){
return rep;
}
并覆盖类似
的方法public void paintComponent(Graphics ob) {
super.paintComponent(ob);
Graphics2D g1 = (Graphics2D) ob;
String rep = myInterface.getName();
}
Regex.Replace(stringValue, @"\t|\n|\r", "");
答案 1 :(得分:-3)
为此,您必须使您想要在另一个类中访问的变量成为公共类变量(也称为字段):
public class GameOfLife{
public static String toRepaint;
public void yourMethod() {
//set value, do stuff here
}
}
然后在Grid.java中,使用点语法访问类变量:
public void paintComponent(Graphics ob) {
super.paintComponent(ob);
Graphics2D g1 = (Graphics2D) ob;
String rep = GameOfLife.toRepaint;
}
<强>无论其强>
这不是最好的方法,但到目前为止最简单。为了遵循面向对象的编程,我们将向GameOfLife
类添加以下访问器方法:
public static String getToRepaint(){
return toRepaint;
}
并将我们的变量声明更改为:
private static String toRepaint;
在Grid类中,我们改为调用访问toRepaint
变量的方法:
String rep = GameOfLife.getToRepaint();
这是面向对象编程的核心,虽然看起来多余,但以后会非常有用,并且有助于使代码更加整洁。