第五篇:JAVA之面向对象(中)

来源:互联网 发布:linux mv 文件夹 覆盖 编辑:程序博客网 时间:2024/06/01 08:22
本篇要点:
  1. 封装
  2. 深入构造器
  3. 类的继承
  4. 多态
  5. Object类及其equals()方法
  6. static关键字

一、封装
  1. 封装指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问;
  2. Java的访问控制级别由小到大:private ---> default ---> protected ---> public
  3. JavaBean封装类:每个实例变量都被private修饰,为每个实例变量都提供了public修饰的setter和getter方法;
  4. 模块设计追求高内聚(尽可能把模块的内部数据、功能实现细节隐藏在模块内部独立完成,不允许外部直接干预)、低耦合(仅暴露少量的方法给外部使用);
二、深入构造器
  1. Java类必须包含一个或一个以上的构造器;
  2. 构造器最大的用处就是在创建对象时执行初始化;
  3. 创建Java类时没有提供构造器,系统默认会提供一个空参数的构造器;如果提供了,系统将不会在提供了;
  4. 构造器重载:同一个类里具体多个构造器,多个构造器的形参列表不同;
三、类的继承
  1. Java的继承具有单继承的特点,每个子类只有一个直接父类;
  2. Java继承通过extends关键字来实现,实现继承的类称为子类,被继承的类称为父类或基类;
  3. Java继承的格式:
  4. 方法重写:子类包含与父类同名的方法;
  5. 方法重载和方法重写的区别:重载是在同一个类中;重写是在子类与父类之间;
  6. super用于限定该对象调用它从父类继承得到的实例变量或方法;
  7. super也不能出现在static修饰的方法中;
  8. super可用于访问父类中定义的属性;
  9. super可用于访问父类中定义的成员方法;
  10. super可用于在子类构造方法中调用父类的构造器;
  11. super修饰构造器,通过在子类中使用“super(形参列表)”来显示的调用父类中指定的构造器;
  12. 在构造器内部,“super(形参列表)”必须要声明在首行;
  13. 在构造器内部,“this(形参列表)”或“super(形参列表)”只能出现一个;
  14. 当构造器中,不显示调用“this(形参列表)”或“super(形参列表)”其中任何一个,默认调用的是父类空参数的构造器;
四、多态
  1. 子类对象的多态性使用的前提:要有类的继承、要有子类对父类方法的重写;
  2. Java引用变量有两个类型:编译时类型(由声明该变量时使用的类型决定)、运行时类型(由实际赋给该变量的对象决定);
  3. 如果编译时类型和运行时类型不一致,则会产生多态;
  4. 对于多态性来说,编译时,”看左边“,将此引用变量理解为父类的类型;运行时,”看右边“,关注于真正对象的实体,子类的对象,那么执行的方法就是子类重写的;
  5. 子类对象的多态性,并不使用于属性;
  6. instanceof格式: 对象a instanceof 类A;
  7. instanceof运算符的前一个操作数是一个引用类型变量,后一个操作数通常是一个类或接口,它用于判断前面的对象是否是后面的类或子类,返回true或false;
  8. instanceof运算符的作用是:在进行强制类型转换前,首先判断前一个对象是否是后一个类的实例,是否可以成功转换,从而保证代码的健壮性;
五、Object类及其equals()方法
  1. ==:基本数据类型,根据基本数据类型的值判断是否相等,相等返回true,不相等返回false;引用数据类型,比较引用类型变量的地址值是否相等;
  2. equals():只能处理引用类型变量,比较引用类型变量的地址值是否相等;
  3. toString():返回值是String类型,返回类名和它的引用地址; 
六、static关键字
  1. 由类创建的所有的对象都共用这个属性,可被static修饰;
  2. 类变量随着类的加载而加载,而且独一份;
  3. 静态的变量可以直接通过“类.类变量”的形式来调用;
  4. 类变量或类方法的加载是要早于对象,所以当在对象以后,可以“对象.类变量或类方法”使用,但是“类.类变量”是不行的;
  5. 类变量存在于静态域中;