码迷,mamicode.com
首页 > 其他好文 > 详细

局部内部类

时间:2019-09-04 19:08:03      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:构造   自己的   注意   作用域   inter   object   str   public   字节码   

1、语法格式

【修饰符】 class 外部类 【extends 外部类的父类】【implements 外部类的父接口们】 {
    【修饰符】 返回值类型 方法名(【形参列表】){
        【其他修饰符】 class 局部内部类名 【extends 内部类的父类】【implements 内部类的父接口们】{
        }
    }
}
public class Outer{
	public void method(){
        class Inner{
       
    	}  
    }      
   
}

  

2、特点

(1)局部内部类也是类,

A:也有自己的字节码文件:外部类名$编号局部内部类名.class

B:它可以继承自己的父类,实现自己的父接口们

C:它可以有自己的各种成员:属性、方法、构造器、代码块、内部类

注意:不能有静态成员

(2)局部内部类可以使用外部类的成员

至于是否可以使用外部类的非静态的成员,要看局部内部类所在的方法是否是静态的,如果是静态的就不能用,其他的可以。

(3)在外部类中使用局部内部类,要看作用域

(4)在外部类的外面不能直接使用局部内部类,但是我们可以得到局部内部类的对象

如何在外部类的外面获取局部内部类的对象?

interface MyInter{
    
}
public class Outer{
	public Object method(){
        class Inner{
       
    	}  
        return new Inner();
    }     
    public MyInter test(){
        class Inner implements MyInter{
            
        }
        return new Inner();
    }
}

Outer out = new Outer();
Object in = out.method();
MyInter in2 = out.test();

  

(5)局部内部类都可以有什么修饰符

C:final

D:abstract

(6)在局部内部类中可以使用外部类的局部变量,但是这个局部变量必须加final

因为局部内部类的对象可以被返回到外部类的外面进行使用,如果不是final的,这个局部变量在方法结束后就消失了,那么再通过局部内部类的对象使用这个变量就有问题了。

局部内部类

标签:构造   自己的   注意   作用域   inter   object   str   public   字节码   

原文地址:https://www.cnblogs.com/panyizuoshan/p/11460778.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!