Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的静态方法main_Java_Compiler Errors - Fatal编程技术网

java中的静态方法main

java中的静态方法main,java,compiler-errors,Java,Compiler Errors,如果(i==0){print();},为什么第行出现编译错误?是不是因为main是静态的,即使它在一个类中 public class A { private void print() { System.out.print(foo() + " "); } public String foo() { return "AAA"; } public static void main(String[] args) { A[] ar

如果(i==0){print();},为什么第
行出现编译错误?是不是因为main是静态的,即使它在一个类中

public class A {
        private void print() { System.out.print(foo() + " "); }
        public String foo() { return "AAA"; }
        public static void main(String[] args) {
              A[] arr = { new A(), new B() };
              for (int i = 0; i < 2; i++) {
/***/                  if (i == 0) { print(); }
}
}
}
public class B extends A {
       private void print() { System.out.println("%" + foo() + " "); }
       public String foo() { return "BBB"; }
       public void bar() { print(); }
}
公共A类{
私有void print(){System.out.print(foo()+“”);}
公共字符串foo(){返回“AAA”;}
公共静态void main(字符串[]args){
A[]arr={new A(),new B()};
对于(int i=0;i<2;i++){
/***/如果(i==0){print();}
}
}
}
公共类B扩展了A{
私有void print(){System.out.println(“%”+foo()+”);}
公共字符串foo(){返回“BBB”;}
公共空白栏(){print();}
}

出现编译器错误,因为您试图从静态方法
main
调用非静态方法
print
。是的,
main
必须是静态的

您需要创建
A
的实例,然后在该实例上调用print方法:

A a = new A();
a.print();

出现编译器错误,因为您试图从静态方法
main
调用非静态方法
print
。是的,
main
必须是静态的

您需要创建
A
的实例,然后在该实例上调用print方法:

A a = new A();
a.print();
print()
是非静态的。这意味着它用于类A的对象。您不能从
main()
调用它,因为它是静态的,并且静态方法属于该类。要调用
print()
,可以执行以下操作:

A a = new A();
a.print();
print()
是非静态的。这意味着它用于类A的对象。您不能从
main()
调用它,因为它是静态的,并且静态方法属于该类。要调用
print()
,可以执行以下操作:

A a = new A();
a.print();

主要是静态的;印刷不是。非常基本的东西;老实说,你不应该要求;但要从教程、书籍等中学习。学习
静态的含义:main是静态的;印刷不是。非常基本的东西;老实说,你不应该要求;但要从教程、书籍等中学习。了解
静态
的含义: