我正在制作一个小文字游戏。开始对话是我的主(静态)方法。从那里,它会根据您的选择向您发送其他方法。
现在我认为我需要有一个班级实例来实现这个目的。
例如:
Program p = new Program();
if(stuff){
p.room1();
}
else{
p.room2();
}
在其他方法中,全局变量会发生变化。
所以主要方法之上有:
public bool hasItem = false;
所以room1()看起来像,
public void room1(){
if(stuff){
p.hasItem = true;
}
}
我知道我用主要方法搞砸了。我是否在main方法的内部或外部声明实例“p”?我尝试了两种方法,但两种方式都有错误。
编辑:我最终在主要方法之外声明一个静态“程序”,以便在其他地方使用。谢谢你的帮助!
答案 0 :(得分:2)
首先,您可以在main方法之外创建静态Program
,也可以在main方法中声明一个程序,具体取决于您的体系结构。
其次,您不必在实例方法中引用您的实例。只需使用字段名称。像这样:
public void room1(){
if(stuff){
hasItem = true;
}
}
如果您想明确它,可以使用this.hasItem
。
或者更好的是,创建一个全新的类以保持您的状态。使用main方法在类中拥有实例成员是笨拙的设计。