第五篇:JAVA之面向对象(中)
2017-08-13 20:20
85 查看
本篇要点:
封装
深入构造器
类的继承
多态
Object类及其equals()方法
static关键字
一、封装
封装指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问;
Java的访问控制级别由小到大:private ---> default ---> protected ---> public
![](https://img-blog.csdn.net/20170806095954475?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjQyNjMyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
JavaBean封装类:每个实例变量都被private修饰,为每个实例变量都提供了public修饰的setter和getter方法;
模块设计追求高内聚(尽可能把模块的内部数据、功能实现细节隐藏在模块内部独立完成,不允许外部直接干预)、低耦合(仅暴露少量的方法给外部使用);
二、深入构造器
Java类必须包含一个或一个以上的构造器;
构造器最大的用处就是在创建对象时执行初始化;
创建Java类时没有提供构造器,系统默认会提供一个空参数的构造器;如果提供了,系统将不会在提供了;
构造器重载:同一个类里具体多个构造器,多个构造器的形参列表不同;
三、类的继承
Java的继承具有单继承的特点,每个子类只有一个直接父类;
Java继承通过extends关键字来实现,实现继承的类称为子类,被继承的类称为父类或基类;
Java继承的格式:
![](https://img-blog.csdn.net/20170806101250221?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjQyNjMyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
方法重写:子类包含与父类同名的方法;
方法重载和方法重写的区别:重载是在同一个类中;重写是在子类与父类之间;
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修饰;
类变量随着类的加载而加载,而且独一份;
静态的变量可以直接通过“类.类变量”的形式来调用;
类变量或类方法的加载是要早于对象,所以当在对象以后,可以“对象.类变量或类方法”使用,但是“类.类变量”是不行的;
类变量存在于静态域中;
封装
深入构造器
类的继承
多态
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技术blog—第五篇面向对象_继承概述及基础应用
- Java学习笔记二十一:Java面向对象的三大特性之继承
- java面向对象-使用this语句解决构造器重载相互调用问题
- Java面向对象的继承
- 携程Java工程师——一道面向对象面试选择题(转)
- java中的面向对象的三大基本特征
- 黑马程序员_java_ 面向对象_final_抽象类
- 第7篇-JAVA面向对象Ⅲ
- 黑马程序员_java的面向对象(对第八课多态..内部类..匿名内部类的总结)
- java面向对象(图书管理系统02)
- Java面向对象的三大基本特征:继承、封装与多态
- Java 面向对象 第三部分(多态)
- Java面向对象(2)构造函数
- java基础篇之面向对象概述
- JAVA面向对象的特征
- Java核心基础(2) 面向对象
- 黑马程序员----java之面向对象(下)
- Java基础之面向对象(小结)
- 学习笔记 Java_毕向东_数组_面向对象 2014.7.31
- Java学习笔记10 面向对象之重载