您的位置:首页 > 编程语言 > Java开发

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

2017-08-13 20:20 85 查看
本篇要点:

封装
深入构造器
类的继承
多态
Object类及其equals()方法
static关键字

一、封装
封装指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问;
Java的访问控制级别由小到大:private ---> default ---> protected ---> public


JavaBean封装类:每个实例变量都被private修饰,为每个实例变量都提供了public修饰的setter和getter方法;
模块设计追求高内聚(尽可能把模块的内部数据、功能实现细节隐藏在模块内部独立完成,不允许外部直接干预)、低耦合(仅暴露少量的方法给外部使用);
二、深入构造器
Java类必须包含一个或一个以上的构造器;
构造器最大的用处就是在创建对象时执行初始化;
创建Java类时没有提供构造器,系统默认会提供一个空参数的构造器;如果提供了,系统将不会在提供了;
构造器重载:同一个类里具体多个构造器,多个构造器的形参列表不同;
三、类的继承
Java的继承具有单继承的特点,每个子类只有一个直接父类;
Java继承通过extends关键字来实现,实现继承的类称为子类,被继承的类称为父类或基类;
Java继承的格式:


方法重写:子类包含与父类同名的方法;
方法重载和方法重写的区别:重载是在同一个类中;重写是在子类与父类之间;
super用于限定该对象调用它从父类继承得到的实例变量或方法;
super也不能出现在static修饰的方法中;
super可用于访问父类中定义的属性;
super可用于访问父类中定义的成员方法;
super可用于在子类构造方法中调用父类的构造器;
super修饰构造器,通过在子类中使用“super(形参列表)”来显示的调用父类中指定的构造器;
在构造器内部,“super(形参列表)”必须要声明在首行;
在构造器内部,“this(形参列表)”或“super(形参列表)”只能出现一个;
当构造器中,不显示调用“this(形参列表)”或“super(形参列表)”其中任何一个,默认调用的是父类空参数的构造器;
四、多态
子类对象的多态性使用的前提:要有类的继承、要有子类对父类方法的重写;
Java引用变量有两个类型:编译时类型(由声明该变量时使用的类型决定)、运行时类型(由实际赋给该变量的对象决定);
如果编译时类型和运行时类型不一致,则会产生多态;
对于多态性来说,编译时,”看左边“,将此引用变量理解为父类的类型;运行时,”看右边“,关注于真正对象的实体,子类的对象,那么执行的方法就是子类重写的;
子类对象的多态性,并不使用于属性;
instanceof格式: 对象a instanceof 类A;
instanceof运算符的前一个操作数是一个引用类型变量,后一个操作数通常是一个类或接口,它用于判断前面的对象是否是后面的类或子类,返回true或false;
instanceof运算符的作用是:在进行强制类型转换前,首先判断前一个对象是否是后一个类的实例,是否可以成功转换,从而保证代码的健壮性;
五、Object类及其equals()方法

==:基本数据类型,根据基本数据类型的值判断是否相等,相等返回true,不相等返回false;引用数据类型,比较引用类型变量的地址值是否相等;
equals():只能处理引用类型变量,比较引用类型变量的地址值是否相等;
toString():返回值是String类型,返回类名和它的引用地址; 

六、static关键字

由类创建的所有的对象都共用这个属性,可被static修饰;
类变量随着类的加载而加载,而且独一份;
静态的变量可以直接通过“类.类变量”的形式来调用;
类变量或类方法的加载是要早于对象,所以当在对象以后,可以“对象.类变量或类方法”使用,但是“类.类变量”是不行的;
类变量存在于静态域中;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java