[英]Java printing an array?
我有一個數組:
private String[] gamesArray = new String[] {"spin", "tof"};
當我啟動程序時,我希望程序將數組中的項目打印出來:
Please select a game: spin, tof.
這是我的嘗試:
import java.util.Scanner;
public class Main {
private Scanner console = new Scanner(System.in);
private Spin spin = new Spin();
private String input = "";
private String[] gamesArray = new String[] {"spin", "tof"};
public static void main (String[] args) {
System.out.println("Welcome to the system!");
for (String s : gamesArray) {
System.out.println("Please select a game:" + s);
}
}
}
錯誤:
src\Main.java:15: error: non-static variable gamesArray cannot be referenced fro
m a static context
for (String s : gamesArray) {
^
怎么了?
您正在嘗試打印沒有實例的實例字段。 main()方法是靜態的。
您可以通過將gamesArray聲明為靜態字段來解決此問題。 例如:
private static final String[] gamesArray = new String[] {"spin", "tof"};
另外,您可以創建Main()類的實例,並通過該實例訪問字段。
Main myMain = new Main();
for (String s : myMain.gamesArray) {
完成其中一項后,您會注意到輸出看起來像這樣:
Please select a game:spin
Please select a game:tof
您可能希望“請選擇游戲”不在循環中。
您需要先創建類的對象
Main obj = new Main();
for(String s : obj.gamesArray){
System.out.println("Please select a game:" + s);
}
private static String[] gamesArray = new String[] {"spin", "tof"};
那么您可能無需創建Main
類的對象就可以訪問它 如果要直接訪問實例變量,則可以使用實例方法而不是靜態方法來訪問它們。
public class StaticNonStatic { private static int staticVar; private int instanceVar; public void instanceMethod(){ System.out.println(instanceVar);// instance variable accessed directly System.out.println(staticVar); // static variable accessed directly from instance method } public static staticMethod(){ System.out.println(instnaceVar); // no this is wrong, can't access instance member from static block directly System.out.println(instnaceVar); // fair enough, accessing static member from static method directly } }
GamesArray是您的類的實例成員。 由於main方法始終是靜態的,因此沒有類的實例可以通過gamesArray獲得。 考慮將gamesArray設為靜態
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.