Java内部类全接触
来源:互联网 发布:网络恐怖主义犯罪 编辑:程序博客网 时间:2024/05/16 09:18
内部类也就是定义在类内部的类,可以将其分为以下四种:
1、成员内部类、
2、局部内部类、
3、静态内部类、
4、匿名内部类
一、成员内部类
1、四个访问权限修饰符都可以修饰成员内部类。
2、内部类和外部类在编译时是不同的两个类,即在编译时生成的各自的字节码文件(Outer.class和Outer$Inner.class),没有任何依赖。
3、内部类中可以访问外部类的成员,包括静态成员、实例成员和私有成员。
4、内部类作为外部类的一个成员存在,与外部类的属性、方法并列。
5、内部类中的实例变量和外部类的实例变量可以同名。
6、在内部类中访问其本身的实例变量:this.属性
7、在内部类访问外部类的实例变量:外部类名.this.属性。
8、在外部类的外部创建内部类对象,使用Outer.Inner obj=new Outer().new Inner()的形式。
9、用内部类定义在外部类中不可访问的属性,这样就在外部类中实现了比外部类的private还要小的访问权限。
10、成员内部类不能含有静态成员。
二、静态内部类
1、静态内部类定义在类中,任何方法外,用static class定义。
2、静态内部类只能访问外部类的静态成员。
3、生成(new)一个静态内部类对象不需要外部类对象,即静态内部类的对象可以直接生成:Outer.Inner in=new Outer.Inner(),这是静态内部类和成员内部类的区别。
4、静态内部类的一般用途是,在进行一个大型项目时,程序员们定义的类可能会重复,产生冲突,利用静态公有内部类可以解决这个问题。
三、局部内部类
1、在方法中定义的内部类称为局部内部类。
2、与局部变量类似,在局部内部类前不加修饰符public和private,其范围为定义它的代码块。
3、局部内部类不仅可以访问外部类私有实例变量,还可以访问外部类方法的局部常量(也就是局部变量必须为final的)。
4、在类外不可直接访问局部内部类(保证局部内部类对外是不可见的),只有在方法中才能调用其局部内部类。
5、通过内部类和接口达到一个强制的弱耦合,用局部内部类来实现接口,并在方法中返回接口类型,使局部内部类不可见,屏蔽实现类的可见性。
6、局部内部类不能声明为static。
四、匿名内部类
1、一个类用于继承其他类或是实现接口,并不需要增加额外的方法,只是对继承方法的事先或是覆盖。
2、只是为了获得一个对象实例,不许要知道其实际类型。
3、类名没有意义,也就是不需要使用到。
- Java内部类全接触
- Java内部类作用全解
- 匿名内部类初接触
- Java内部类的全限定名规律
- Java内部类的全限定名规律
- Java RMI全接触
- java反射全接触
- 【Java】【内部类】Java 内部类简介
- [Java] Java 内部类
- Java 内部类(成员内部类、局部内部类、静态内部类和匿名内部类)
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、局部内部类、静态内部类、匿名内部类)
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- HTML head内标签属性全接触
- HTML head内标签属性全接触
- 创建一个窗口的过程
- hfgdh
- ???
- 金融工具知识
- 一个简单方法完成C#时间间隔的计算
- Java内部类全接触
- 做Manager的18项基本技能
- 告诉你最真实的招聘潜规则,很实用
- 做项目也应该具有的品质。
- hibernate Annotation 使用注意
- InterLockedIncrement and InterLockedDecrement函数原理
- sim300的一些知识点
- hibernate openSession and getCurrentSEssion
- 自动保存图片到远程