我的数组声明和java中的“println”有什么问题

c8ib6hqw  于 2021-07-12  发布在  Java
关注(0)|答案(3)|浏览(235)

这个问题在这里已经有答案了

为什么我不能在方法之外做作业(7个答案)
java:为什么我不能在main之外调用这个方法[关闭](3个答案)
19小时前关门了。
我正在读一个教程,数组的声明是正确的。我想要“println”,教程没有这样做,但是我在询问是否要创建类“numeros”时出错。请原谅我提了个简单的问题。如果我在学校或工作,我会亲自问,但现在是一个周末,我迫不及待地想知道什么是错的。

int[] numeros = new int[9];//here is fine
  System.out.println(numeros[8]); //the ide suggests the creation of numeros class, it doesn't know what "numeros" is.
pgccezyw

pgccezyw1#

它有助于理解java编译器如何实现初始化语法。这

public class Example {
    private int[] numeros = new int[9];
}

实际上被当作

public class Example {
    private int[] numeros; /* copy assignment statement to constructor(s). */
    public Example() { // Add a default constructor.
        super(); // Invoke the super constructor by default.
        numeros = new int[9]; // assignment statements.
        // Initialization blocks.
    }
}

你能做到的

public class Example {
    private int[] numeros = new int[9];
    { // Initialization block
        numeros[8] = 100;
        System.out.println(numeros[8]);
    }
}

那就是

public class Example {
    private int[] numeros; /* copy assignment statement to constructor(s). */
    public Example() { // Add a default constructor.
        super(); // Invoke the super constructor by default.
        numeros = new int[9]; // assignment statements.
        // Initialization blocks.
        numeros[8] = 100;
        System.out.println(numeros[8]);
    }
}
4sup72z8

4sup72z82#

试试这个

public class StackoverflowProblem {   
  public int[] numerous; 
  public void Numeros_Method(){
    numeros = new int[9];
    System.out.println(numeros[8]); 
  }
  public static void main(String[] args) {
    StackoverflowProblem s= new StackoverflowProblem();
    s.Numeros_Method(); 
  } 
}

结果: 0

42fyovps

42fyovps3#

您的代码应该打印0。在ide中再次运行它。当数组被定义时,它会被初始化为默认值,比如整数为“0”,字符串为“null”。
int[]numeros=新int[9];system.out.println(numeros[8]);

相关问题