黑马程序员技术交流社区
标题:
内部类为非静态时,里面的方法为静态时,为什么无法编译?
[打印本页]
作者:
chenglong25
时间:
2016-6-30 23:26
标题:
内部类为非静态时,里面的方法为静态时,为什么无法编译?
除了内部类为非静态,方法为静态的不能编译,其余均正常.
代码如下:
class Test02 {
public static void main(String[] args) {
Outer.Inner1 a = new Outer().new Inner1() ;
a.print();
Outer.Inner3 s = new Outer.Inner3() ;
s.print();
Outer.Inner4.print();
}
}
class Outer {
//1、内部类与方法均为非静态
class Inner1 {
public void print() {
System.out.println("print1");
}
}
//2、内部类为非静态 ,方法为静态
//为什么编译错误,如何输出? 静态方法不能引用外部的非静态.
/*class Inner2 {
public static void print() { //Test02.java:24: 错误: 内部类Outer.Inner2中的静态声明非法
System.out.println("print2");
}
}*/
//3、内部类为静态 ,方法为非静态
static class Inner3 {
public void print() {
System.out.println("print3");
}
}
//4、内部类与方法均为静态
static class Inner4 {
public static void print() {
System.out.println("print4");
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2