首页 > 代码库 > java面向对象基础复习

java面向对象基础复习

this关键字用法:
  表示当前对象的引用,即调用成员属性和方法时,表示当前正在调用的对象
  调用其他构造方法(必须放在第一行);

super关键字
  指向自己(直接)父类对象的一个指针,可以调用父类的成员属性和方法
  调用父类中的某一个构造函数

面向对象三大特征:
  继承
    继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
    子类拥有父类非private的属性和方法
    JAVA不支持多继承,继承关系是传递的
    父类是子类的一般化,子类是父类的特殊化(具体化)
  封装
    属性描述事物的特征,方法描述事物的动作
    首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系
  多态
    方法的重写、重载与动态连接构成多态性;
    对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会调用子类中的这个方法,这就是动态连接。
    向上转型(父类对象的引用指向子类对象);向下转型(将父类对象的引用强转成子类类型)

访问权限修饰符:
  public : 相同包下和不同包下的类都能访问
  protect: 相同包下能类访问,子类能访问
  default: 相同包下的类能访问,子类不能访问
  private: 其他类都不能访问

static修饰符
  static修饰的内容是隶属于类,而不是直接隶属于对象的
  随着所在类的加载而加载,优先于对象的存在
  satic修饰的成员被该类型的所有对象所共享
  可以直接使用类名访问static成员

final修饰符
  被final修饰的值不能修改,方法不能重写,类不能继承
  final修饰变量后导致的“宏替换”/"宏变量"问题(在编译期final变量能够直接被其本身的值所替换)
  引用变量指向的是实际的对象,但其存储的是所指向对象的地址,因此,其值不能修改并不意味着其所指向的对象不能修改

abstract修饰符:修饰类和方法
  abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例
  abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明而没有实现,需要子类继承实现。

接口(interface)
  接口没有构造方法
  接口支持多继承
  接口中的方法会被隐式的指定为 public abstract  
  接口中的变量会被隐式的指定为 public static final

内部类:
  局部内部类
    定义方法中,只能使用方法中声明为final类型的变量。
  匿名内部类
    没有类名,没有class关键字也没有extends和implements等关键字修饰。
    会隐式地继承一个父类或实现一个接口。
  静态内部类
    只能访问外部类的静态成员变量与静态方法。
    声明方法:(在类中)
      public static class InnerClass
    生成方法:
      OuterClass.InnerClass inner = new OuterClass.InnerClass();
  成员内部类
    可以访问外部类的静态与非静态的方法和成员变量。
    声明方法:(在类中)
      public class InnerClass
    生成方法:
      OuterClass.InnerClass inner = new OuterClass().new InnerClass();

java面向对象基础复习