云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 第4章面向对象(下) - 补充案例课件

第4章面向对象(下) - 补充案例课件

  • 62 次阅读
  • 3 次下载
  • 2025/6/7 15:15:50

博学谷——让IT教学更简单,让IT学习更有效

}

// 学号

private int sid;

public void setSid(int sid) { }

public int getSid() { }

// 我们的需求是学号相同的人就是同一个人. public boolean equals(Object obj) { }

// 判断是否为当前对象 if (this == obj) { }

// 为了呈现的健壮性,加入类型判断 if (!(obj instanceof Student)) { }

Student s = (Student) obj; return (this.sid == s.sid);

return false; return true; return sid; this.sid = sid;

2、定义测试类Example12,为学号赋值,并打印使用“==”和重写equals()方法的比较结果,代码如下:

public class Example12 { }

public static void main(String[] args) { }

Student Lily = new Student(); Lily.setSid(200);

Student Lucy = new Student(); Lucy.setSid(200);

System.out.println(\System.out.println(\

运行结果如图4-12所示。

图4-12 运行结果

17

博学谷——让IT教学更简单,让IT学习更有效

三、案例总结

1、Object类是Java中所有类的父类,每个类都直接或间接继承自该类。

2、Object类中的equals()方法比较的是内存地址值,和“==”比较结果一致。底层代码如下:

public boolean equals(Object obj) { return (this == obj); }

实际开发中很少比较内存地址值,所以我们常常会根据自身需求重写equals()方法。

案例4-13 多态的作用 一、案例描述

1、 考核知识点

编 号:00104009 名 称:多态

2、 练习目标

? 了解多态的概念、多态的好处和弊端 ? 掌握如何实现多态

3、 需求分析

在Java中为了实现多态,允许使用一个父类类型的变量来引用一个子类类型的对象,根据被引用子类对象特征的不同,得到不同的运行结果。多态提高代码了的扩展性和可维护性。为了帮助初学者掌握如何实现多态,本案例将实现一个多态程序来演示如何实现多态。

4、 设计思路(实现原理)

1)编写Animal接口,接口中定义sleep()方法。

2)Cat类实现Animal接口的方法,并定义另一个方法catchMouse()

3)编写测试类Example13,使Cat对象指向父类Animal的引用 ,并通过该引用调用sleep()方法。

二、案例实现

1、编写Animal接口及其实现类Cat。代码如下:

interface Animal { }

class Cat implements Animal {

void catchMouse() { }

public void sleep() { }

18

System.out.println(\睡觉\System.out.println(\抓老鼠\void sleep();

博学谷——让IT教学更简单,让IT学习更有效

}

2、定义测试类Example13,Cat对象指向Animal引用,并使用父类Animal引用调用sleep()方法。代码如下:

public class Example13 { }

public static void main(String[] args) { }

// 多态

Animal animal = new Cat(); animal.sleep();

运行结果如图4-13所示。

图4-13 运行结果

三、案例总结

1、多态是指对象在不同时刻表现出来的不同状态,在Java中,允许使用一个父类类型的变量来引用一个子类类型的对象。

2、多态的前提:

(1) 要有继承关系。 (2) 要有方法重写。

(3) 要有父类引用指向子类对象。

3、多态的好处是提高代码的扩展性和可维护性。

4、多态的弊端是父类或者接口只能调用自己具备的成员,不能访问子类特有的成员。

案例4-14 对象的类型转换 一、案例描述

1、 考核知识点

编 号:00104010

名 称:对象的类型转换 2、 练习目标

? 掌握如何实现对象的类型转换

3、 需求分析

在多态的学习中,涉及到将子类对象当做父类类型使用的情况,这时进行强制类型转换可能会出现出错。为了让初学者熟悉对象的类型转换,本案例将演示一个子类与父类之间类型转换过程中出现的错误。

编写一个接口Animal,接口中定义sleep()方法,编写两个类Cat和Pig分别实现接口,再编写一

19

博学谷——让IT教学更简单,让IT学习更有效

个测试类Example14实现对象的类型转换。

4、 设计思路(实现原理)

1)编写Animal接口,接口中定义sleep()方法。 2)Cat类和Pig类分别实现Animal接口的方法 3)编写测试类Example14对对象的类型进行转换,使Cat向上转型为Animal类型,然后再让Animal类型转换为Pig类型。

二、案例实现

1、编写Animal接口及其实现类Cat。代码如下:

interface Animal { }

class Cat implements Animal { }

class Pig implements Animal { }

public void sleep() { }

System.out.println(\猪整天睡觉\public void sleep() { }

System.out.println(\猫晚上睡觉\void sleep();

2、定义测试类Example14,Cat对象指向Animal引用,并使用父类Animal引用调用sleep()方法。代码如下:

public class Example14 { }

public static void main(String[] args) { }

Animal animal = new Cat(); Pig pig = (Pig) animal; pig.sleep();

运行结果如图4-14所示。

图4-14 错误提示

三、案例总结

1、向下类型转换时,需要注意被转换对象的真实类型是否和需要转换的对象类型相同,否则容易报

20

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

博学谷——让IT教学更简单,让IT学习更有效 } // 学号 private int sid; public void setSid(int sid) { } public int getSid() { } // 我们的需求是学号相同的人就是同一个人. public boolean equals(Object obj) { } // 判断是否为当前对象 if (this == obj) { } // 为了呈现的健壮性,加入类型判断 if (!(obj instanceof Student)) { } Student s = (Student) obj; return (this.sid

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com