我正在使用main方法
在类中创建一个数组Word attempts = new Word (26);
Word类中的字段是
private String [] attempts;
Word类中的构造函数是
public Word (int a){
attempts = new String [a];
create(attempts);
}
其中create是一个使每个数组元素都为空字符串("")
的方法。在类Word中,我还有一个getAttempts()
方法来访问尝试数组。现在,我想创建一个类字母,我在for循环中传递之前创建的数组Word []
。我尝试使用Word.getAttempts()[i],但是我收到错误Cannot make a static reference to the non-static method getAttempts() from the type Word
。根据我的理解,当方法是静态的时,您不必在调用方法之前创建对象。我不知道如何将Main方法中创建的数组传递给此Letter类。有什么帮助吗?
编辑:这是我的Word课程
public class Word {
private String [] attempts;
public String[] getAttempts() {
return attempts;
}
public void create (String [] attempts){
for (int i=0; i<attempts.length; i++){
attempts[i]="";
}
}
public Word (int a){
attempts = new String [a];
create(attempts);
}
}
总而言之,我在类中使用Main类型创建一个数组,我希望将该数组传递给单独的类。
答案 0 :(得分:3)
Word.getAttempts()
...就是如何在类getAttempts
中访问名为Word
的静态方法。但是,您的方法getAttempts
不是静态的:它适用于您的类的实例。
假设您按如下方式定义了这样的实例:
Word word = new Word(26);
然后,如果方法是公共的,则可以使用以下命令访问数组:
String[] attempts = word.getAttempts();
根据我的理解,当方法是静态的时,您不必在调用方法之前创建对象。
是的,但你的方法不是静态的。
据我所知,但在Main方法中定义Word数组后,如何在新类中访问它?
通过方法或构造函数传递对象,允许其他对象使用公共方法定义的API与其进行交互。
现在,我想在我传递[...]数组
的情况下制作类字母
定义一个名为Letter
的类,以及一个接受类Word
对象的构造函数。
class Letter
{
private final Word word;
public Letter (Word word) {
this.word = word;
}
}
在main
:
public static void main (String[] args)
{
Word word = new Word(26) ;
Letter letter = new Letter(word);
}
你可以直接传递word.getAttempts()
,但是你直接使用另一个类的内部值,这是一种糟糕的风格。通过公共方法更好地处理Word
实例,而不是直接访问其私有数据。