【黑马程序员】有关内部类和封装类的总结

                                  ------- android培训java培训、期待与您交流! ------……

 定义在方法体或类中的类叫内部类。编译后也会有自己的字节码文件。

内部类分为:成员内部类,匿名内部类,静态内部类,局部内部类四种。

一:静态内部类:静态内部类定义在类中,任何方法外,用static修饰

                           静态内部类只能访问外部类的静态成员。

                           在外部类的外部,要创建一个静态内部类对象不需要外部类对象:

                                    Outer.Inner in = new Outer.Inner();

                           在本类内部生成内部类对象的方式:

                                    Inner in = new Inner();    

 二:  成员内部类:作为外部类的一个成员存在,与外部类的属性、方法并列,当实例方法和变量理解。

                           在内部类中可以直接访问外部类的私有属性。

                           内部类和外部类的实例变量允许命名冲突。

                                    在内部类中访问实例变量:this.属性

                                    在内部类访问外部类的实例变量:外部类名.this.属性

                           在外部类的外部,要创建一个成员内部类对象,要首先建立一个外部类对象,然后再创建一个成员内部类对象。

                                    Outer out = new Outer();

                                    Outer.Inner in = out.new Inner();

                           在本类内部生成内部类对象的方式:

                                    在静态方法中:Inner in = newOuter().new Inner();

                                    在非静态方法中:Inner in = this.new Inner();

                           成员内部类不可以有静态成员,这是因为静态属性是在加载类的时候创建,这个时候内部类还没有被创建。

 三: 局部内部类:在外部类的方法中定义的内部类

                           与局部变量类似,在局部内部类前不可以加修饰符publicprivate,其作用域为定义它的代码块。

                           局部内部类不仅可以访问外部类的实例变量,还可以访问外部类的局部变量,但要求外部类的局部变量必须为final的。

                           配合接口使用,来做到强制弱耦合。

                           在外部类的外部不可创建局部内部类对象,只能在局部内部类所在的方法中创建:

                                    Inner in = new Inner();

 四:匿名内部类:一种特殊的局部内部类

                           没有名字,也没有classextendsimplements关键字

                           用一种隐含的方式实现一个接口或继承一个类,并且只能创建一次实例。

                           实现方式:在某个语句中,new 父类/父接口名字(){ 类体中实现方法 }

                                    例如:

                                             TreesSet ts =new TreeSet(new Comparator(){

                                                      public int compare(Object o1, Objecto2){

                                                               return0;

                                                      }

                                             });

                           匿名内部类属于局部内部类,那么局部内部类的所有限制都对其生效。

                           匿名内部类是唯一一种无构造方法的类,因为构造器的名字必须合类名相同,而匿名内部类没有类名。

 

封装类:

各种类型的封装类是:

int --------》 Integer

boolean-----》 Boolean

double-------》 Double

char ------》 Character

float --------》 Float

long——》Long

byte———》 Byte

基本数据类型和封装类之间转化从jdk1.5后为自动转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值