Java复习笔记之内部类的调用问题

有三个主要疑问

 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。

证明静态内部类可以定义静态成员,也可以定义非静态成员。

猜你喜欢

转载自blog.csdn.net/qq_40620402/article/details/82818003
今日推荐