有三个主要疑问
1.在外部类Out中能否使用inner中定义的局部变量 ?
2.静态内部类可以在不创建外部对象的情况下引用它,是指不用创建Inner的实例对象了吗?
3.静态内部类可以定义静态成员,也可以定义非静态成员吗?
答案是
1.测试在外部类Out中能否使用inner中定义的临时变量 成功
2.静态内部类可以在不创建外部对象的情况下引用它,是指不用new Out()了,并不是指不创建Inner的实例对象
3.静态内部类可以定义静态成员,也可以定义非静态成员
测试代码如下
1.外部类Out中能否使用inner中定义的局部变量 ?
class Out {
int c = 1;
void test(){
Inner inner = new Inner();
// inner.a = 10;//也可以修改内部类中的临时变量
System.out.println(inner.a);//调用内部类里定义的临时变量
}
class Inner{
int a = 2;
}
}
public class Test{
public static void main(String[] args) {
Out out = new Out();
inner.show();
}
}
2.静态内部类可以在不创建外部对象的情况下引用它。
完全是语文题。静态类引用它可以在不创建外部对象的情况下,即不用new Out()了,但是仍需要实例化内部类
最后演变为 Out.Inner in = new Out.Inner();
3.静态内部类可以定义静态成员,也可以定义非静态成员吗?
Out{
static int b = 2;
static Inner{
int a = 5;
void show(){
System.out.println("b="+b+" a="+a);
}
}
}
编程时没有出现报错,而且输出结果也是对的 a=5 b=2。
证明静态内部类可以定义静态成员,也可以定义非静态成员。