文档介绍:面向对象的核心特性
《Java2程序设计实用教程(第2版)》
第1页,共39页,2022年,5月20日,4点4分,星期四
类和对象
面向对象基本概念
定义类
使用对象
第2页,共/由已知对象创建新对象
第13页,共39页,2022年,5月20日,4点4分,星期四
this引用和instanceof对象运算符
this引用
指代对象本身
this
访问本类的成员变量和成员方法
([参数列表])
调用本类重载的构造方法
this([参数列表])
instanceof对象运算符
aday instanceof Date2
第14页,共39页,2022年,5月20日,4点4分,星期四
类及其成员的访问权限
类中成员的访问权限
类的访问权限:只有public和缺省两种 。
public class Date1 //公有的类
class Date1_ex //默认的类
权限修饰符
同一类
同一包
不同包的子类
所有类
public(公有)
protected(保护)
缺省
private(私有)
第15页,共39页,2022年,5月20日,4点4分,星期四
【】 日期类的封装。
设计并重载构造方法
成员变量设计为私有的访问权限,限制其他类对成员变量的访问
成员方法设计为公有的访问权限,提供给其他类使用
使用this引用增强程序的可维护性
运行包含main()方法的类
日期类的设计问题讨论
第16页,共39页,2022年,5月20日,4点4分,星期四
实例成员与类成员
实例成员变量与类成员变量
两者声明时的差别
public class Person1
{
String name; //姓名,实例成员变量
int age; //年龄
static int count; //人数,类成员变量
}
两者存储结构的差别
两者引用方式的差别
第17页,共39页,2022年,5月20日,4点4分,星期四
实例成员变量与类成员变量的存储结构不同
第18页,共39页,2022年,5月20日,4点4分,星期四
2. 实例成员方法与类成员方法
两者声明时的差别
public static int howMany() //类成员方法
{
return count; //类成员方法只能访问类成员变量
}
public static void main(String args[])//main方法也是类成员方法
两者方法体中语句的差别
在类成员方法体中,不能使用this引用。
两者调用方式的差别
(); //通过类名调用类成员方法
(); //通过对象调用类成员方法
第19页,共39页,2022年,5月20日,4点4分,星期四
【】 实例成员与类成员。
类成员的作用和调用
set方法可以重载,get方法不能重载
方法体中的局部变量不能使用修饰符
调用对象的析构方法后,不能再引用对象
第20页,共39页,2022年,5月20日,4点4分,星期四
类的继承性
什么是继承
定义继承的类
super引用
第21页,共39页,2022年,5月20日,4点4分,星期四
什么是继承
继承的概念
由一个已有的类定义一个新类,称为新类继承已有的类。
继承的作用
继承原则
子类继承父类的成员变量,包括实例成员变量和类成员变量。
子类继承父类除构造方法以外的成员方法,包括实例成员方法和类成员方法。
子类不能继承父类的构造方法。因为父类构造方法创建的是父类对象,子类必须声明自己的构造方法,创建子类自己的对象。
子类能够继承父类的析构方法。
子类不能删除父类成员。
子类可以增加自己的成员变量和成员方法。
子类可以重定义父类成员。
第22页,共39页,2022年,5月20日,4点4分,星期四
类的继承性
第23页,共39页,2022年,5月20日,