- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 类的封装、继承和多态 3.1 类和对象 3.2 类的封装性 3.3 类的继承性 3.4 类的多态性 3.5 类的抽象性 3.1 类和对象 类(class)是既包括数据又包括作用于数据的一组操作的封装体。 对象(object)是类的实例(instance)。 类具有封装性、继承性、多态性和抽象性。 3.1.1 类 3.1.2 对象 3.1.1 类 声明类 类声明 { 成员变量的声明; 成员方法的声明及实现; } [修饰符] class 类泛型 [extends 父类] [implements 接口列表] 3.1.1 类 声明成员变量和成员方法 [修饰符] 返回值类型 方法([参数列表]) [throws 异常类] { 语句序列; [return [返回值]]; } 成员方法重载 3.1.2 对象 声明对象 类 对象 创建实例 对象 = new 类的构造方法([参数列表]) 引用对象的成员变量和调用对象方法 对象.成员变量 对象.成员方法([参数列表]) Java语言自动释放对象。 【例3.1】声明日期类及使用日期对象。 4. 对象的引用模型 5. 对象的关系运算与比较相等 3.2 类的封装性 3.2.1 构造方法与析构方法 3.2.2 this引用和instanceof对象运算符 3.2.3 访问控制 3.2.4 静态成员 3.2.5 析构方法 3.2.6 浅拷贝与深拷贝 3.2.1 构造方法 声明及调用构造方法 public class MyDate { public MyDate(int y, int m, int d) //声明构造方法 { //构造方法与类同名,构造方法返回该类的一个实例 year = y; month = m; day = d; } } MyDate d = new MyDate(2009,7,18); 默认构造方法 public MyDate() 3.拷贝构造方法 public MyDate(MyDate d) { year = d.year; month = d.month; day = d.day; } 调用语句如下: MyDate d1 = new MyDate(2009,7,16); MyDate d2 = new MyDate(d1); 第2句功能相当于以下两句: MyDate d2 = new MyDate(); d2.set(d1); 4. 构造方法重载 public MyDate(int y, int m, int d) public MyDate() public MyDate(MyDate d) 3.2.3 this引用和instanceof对象运算符 this引用 指代对象本身 this 访问本类的成员变量和成员方法 this.成员变量 this.成员方法([参数列表]) 调用本类重载的构造方法 this([参数列表]) instanceof对象运算符 d instanceof MyDate 3.2.4 访问控制 类的访问权限:只有public和缺省两种 。 public class MyDate class MyDate_ex 类中成员的访问权限 声明set()和get()方法存取对象的属性 3.2.5 静态成员 public class MyDate { private int year,month,day; //实例成员变量 private static int thisYear; //静态成员变量 static //静态成员变量初始化 { thisYear=2009; } public static int getThisYear() //静态成员方法 { return thisYear; //访问静态成员变量 } } 【例3.2】封装的日期类。 3.2.5 析构方法 public void finalize() //析构方法 { 语句序列; } 3.2.6 浅拷贝与深拷贝 浅拷贝 2. 深拷贝 public Person(Person p) { this(p.name, new MyDate(p.birthday)); } 【例3.3】 使用对象
文档评论(0)