java中的内部类
一、内部类
分为成员内部类,局部内部类,静态内部类,匿名内部类
1.1成员内部类
成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private和静态成员),外部类访问内部类不能随心所欲,需要先实例化内部类,内部类中使用this指针获取外部类变量。
(1)内部类访问外部类
例子中,Demo是内部类,可以打印出外部类TestDemo中的wa=10;
内部类wa与外部类wa变量值同名时,想通过内部类调用到外部类wa的值,需要在Demo内部类中使用this获取外部类TestDemo的wa值;不然当内部类外部类都有相同名字的变量时,打印出的是内部类的变量值。
(2)外部类访问内部类
必须先创建new一个成员内部类对象,再通过指向这个对象的引用进行调用
1.2局部内部类
定义在一个方法或者一个作用域中的类,它和成员内部类的区别在于局部内部类的访问权限仅限于方法内或者该作用域内。
局部内部类就像是方法里的局部变量一样,不能再加修饰符public,private,protected,static等
1.3匿名内部类
例子中,监听代码内部类定义在一个方法或者一个作用域里面的类。示例为andriod监听
1.4静态内部类
静态内部类时定义在一个类里面的内部类,只不过多了一个static关键字修饰。不能使用外部类非static的成员变量或者方法。
二、类与对象
类创造出来随之而来带的是静态代码块,代码块和构造方法。
有对象必须有类,有类不一定必须有对象。
类是实际参加代码运行的,类是抽象的,不参加代码运行。