[Android]【安卓】【Java】类

[Android]【安卓】【Java】类

本篇博客已收录到我的安卓开发小结中——点击【安卓开发小结】

1、单例类(Singleton)

单例类:一个类只能创建一个对象,称为单例类。
用法:
A、使用private修饰构造器。
B、使用public static 类名返回类型 getInstance(),方法里创建对象并返回对象。

2、抽象方法和抽象类

抽象方法:
  A、使用abstract修饰符修饰。
  B、不能有方法体。
  
抽象类:
  A、使用abstract修饰。
  B、不能实例化。
  C、可以包含成员变量、含普通方法在内的方法、构造器、初始化块、内部类(接口、枚)5种成分,构造器主要是用于子类调用。
  D、抽象类可以没有抽象方法,但包含了抽象方法的类(继承了抽象父类没有完全实现父类抽象方法的、实现了一个接口,但没完全实现接口抽象方法的)必须定义为抽象类。

3、内部类

A、内部类可以直接访问外部类的私有数据。
B、外部类不能访问内部类的实现细节。
C、内部类可以使用private、protected、static三个修饰符,外部类不能,因为外部类上一级程序单元是包,所以它只有两个作用域——同一个包内或者任意位置,所以它只有public修饰符和默认修饰符。
D、非静态内部类不能有静态成员。

(1)非静态内部类
  a、定义于一个类的内部即可,内部的范围是类中的任何位置,甚至包括方法内部。
  b、内部类一般作为成员内部类定义,作为一种与成员变量、方法等相似的类成员,
局部内部类和匿名内部类则不是类成员。
  c、非静态内部类可以访问外部的private成员,反过来不可以。
  d、内部类对象是寄生于外部类对象当中的,但外部类对象不一定含有内部类对象。
  e、不允许外部类的静态成员直接使用内部类的成员。
  f、非静态内部类不可以定义静态成员。

(2)静态内部类
  a、使用static修饰内部类,则这个内部类属于外部类本身,称为类内部类或静态内部类。
  b、静态内部类可以包含静态和非静态成员。
  c、静态内部类只能访问外部类的静态成员。
  d、外部类不能直接访问静态内部类成员。
  e、接口里可以定义内部类,但必须是静态内部类,即用public static修饰。

4、使用内部类

A、在外部类以外的地方定义内部类
OuterClass.InnerClass varName
B、在外部类以外的地方创建非静态内部类实例
OuterInstance.new InnerConstructor()

5、匿名内部类

new 实现接口()| 父类构造器(实参列表){
    //匿名内部类类体
}

A、匿名内部类必须实现一个接口或者继承一个父类。
B、匿名内部类不能是抽象类,因为系统会立即创建内部类对象。
C、匿名内部类不可以定义构造器,以为它没有类名,无法定义。
D、匿名内部类可以定义初始化块。
E、Java8以前,被局部内部类访问和匿名内部类访问的局部变量必须用final修饰。

猜你喜欢

转载自blog.csdn.net/Hystudio_lzu/article/details/80792771