一 内部类 html
什么就作内部类? 就是在一个类的内部还存在另一个类,此类即称为内部类. this
一、好比咱们定义一个外部类Outer,在Outer类中要定义了一个Inner类,则Inner类称做为内部类} spa
首先咱们先看一段使用内部类的看一段程序 .net
以上的程序中,Inner类做为Outer类的内部类存在的,并在外部类的fun()方法中直接实例化内部类的对象并调用print()方法 htm
从内存图上看: 对象
内部类存在的特色: 内存
-----缺点:正常的一个类操做时,在类中最好只定义属性和方法,若是定义一个类,则会破坏一个程序的结构,程序可读性很差 get
----优势:经过下面的代码发现其优势,要完成第一个代码功能,咱们将以上的外部类和内部类分开看下代码,代码以下: class
若是将内部类拿到外部来,会发现代码增长,并且复杂度也增长了。使用内部类最大的优势就是:能够很方便的访问外部类中的私有属性。 变量
二:使用static声明内部类
使用static能够声明一个内部类,声明的内部类就称做为外部类,能够直接在类的外部调用,可是若是想要访问外部类的私有属性,则此属性必须是static访问权限的。
三:在外部访问内部类
一个内部类除了能够经过外部类访问,也能够直接在其余类中调用,调用的格式为:
------->外部类.内部类 内部类对象 = 外部类实例.new 内部类();
四:在方法中定义内部类:
一个内部类能够在任何位置上定义,下面看下在方法中定义的一个内部类
二:匿名内部类
若是此时B类只使用一次的话,那么有必要定义一个类吗?此时能够用匿名内部类解决这个问题!
若是从底层更了解匿名内部类能够看下面一片连接的文章:
http://topic.csdn.net/u/20080728/20/d60f719a-c103-44b8-8d0c-bc1c818b768a.html