- package com.itheima;
- public class Test1 {
- public static void main(String[] args){
-
- new Outer().method();
- new Outer().Test();
- }
- }
- class Outer {
-
- public int num = 5;
-
- public void method(){
- //内部类访问局部变量,需要定义为final类型,并且final前不能有修饰符
- final int x = 10;//x存在于常量池中。
- class Inner{
- public void show(){
- System.out.println(Outer.this.num);
- System.out.println(x);
- }
- }
- //外部类访问内部,需要创建内部类对象。
- Inner in = new Inner();
- in.show();
- }
- //详解:
- public Object function(){
- final int y = 20;
- class Inner{
-
- public String toString(){
- return "y=" + y;
- }
- }
- return new Inner();
- }
-
- public void Test(){
- Object obj = function(); //Object obj = new Inner();父类引用指向子类对象。调用function方法时,返回了一个 Inner对象。
- System.out.println(obj.toString());
- }
- }
复制代码 |