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

发布时间 : 星期四 文章第4章面向对象(下) - 补充案例课件更新完毕开始阅读

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

}

编译错误,结果如图4-9所示。

图4-9 错误提示

三、案例总结

在本案例中Zi类中对变量X再次赋值,运行结果报错。这是因为Java中被final修饰的变量为常量,它只能被赋值一次,也就是说final修饰的变量一旦被赋值,其值不能改变。如果再次对该变量进行赋值,则程序会在编译时报错。

案例4-10 接口的实现 一、案例描述

1、 考核知识点

编 号:00104006 名 称:接口 2、 练习目标

? 掌握如何实现接口

3、 需求分析

由于接口中的方法都是抽象方法,因此不能通过实例化对象的方式来调用接口中的方法。此时需要定义一个类,并使用implements关键字实现接口中所有的方法。为了上初学者掌握如何实现接口,本案例将设计一个类,使用关键字implements实现Inter接口中的方法。

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

1)设计名为Inter的接口,接口中定义一个初始值为20的num常量和method()抽象方法。 2)编写Inter接口的实现类InterImpl,使用implements关键字实现接口中的方法。

3)编写测试类Example10,测试类中对接口的实现类进行实例化,并调用接口中的方法。

二、案例实现

1、编写接口Inter,InterImpl类使用implements实现了接口,代码如下:

//定义一个接口 interface Inter { }

13

int num = 20; void method();

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

// 使用implements关键字实现接口 class InterImpl implements Inter { }

void show() { }

public void method() { }

System.out.println(\System.out.println(num);

2、定义测试类Example10,代码如下:

class Example10{ }

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

//通过实现类实例化

InterImpl ii = new InterImpl(); ii.show(); ii.method();

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

图4-10 运行结果

三、案例总结

1、接口使用interface关键字来定义。

2、接口没有构造方法,接口中的变量缺省都是使用public static final修饰的,即全局常量,接口中的方法都是public abstract修饰的,即抽象方法。

3、定义一个类,并使用implements关键字实现接口中的方法,一个类可以实现多个接口。

4、由于接口中的方法都是抽象方法,因此不能直接通过实例化对象的方式来调用接口中的方法,需要在类实现接口后借助类来间接实例化。

案例4-11 接口的继承 一、案例描述

1、 考核知识点

编 号:00104007

名 称:接口的继承与多实现

14

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

2、 练习目标

? 掌握接口继承的方式及其特点

3、 需求分析 在程序中,可以定义一个接口使用extends关键字去继承另一个接口。为了加深初学者对结果的理解,本案例将演示接口与接口、类与接口的继承和实现关系。

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

1)设计接口Phone代表传统手机,在接口中定义receiveMessages()和call()抽象方法。

2)设计接口SmartPhone代表智能手机,在接口中定义faceTime()方法,并使用extends关键字继承Phone接口,使其具有Phone接口的所有功能。 3)设计类MIPhone表示小米手机,类中定义useMIUI()方法,并实现SmartPhone接口的所有方法。 4)编写测试类Example11,测试类中对MIPhone进行实例化,并访问小米手机具有的各种功能。

二、案例实现

1、编写接口Phone和SmartPhone、类MIPhone。代码如下:

interface Phone { }

interface SmartPhone extends Phone { }

class MIPhone implements SmartPhone { }

public void receiveMessages() { }

public void call() { }

public void faceTime() { }

public void useMIUI() { }

System.out.println(\使用MIUI\System.out.println(\视频通话\System.out.println(\语音通话\System.out.println(\接收短息\void faceTime();

void receiveMessages(); void call();

2、定义测试类Example11,代码如下:

public class Example11 {

public static void main(String[] args) {

MIPhone miPhone = new MIPhone(); miPhone.receiveMessages(); miPhone.call(); miPhone.faceTime();

15

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

}

}

miPhone.useMIUI();

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

图4-11 运行结果

三、案例总结

接口与接口之间的继承关系,可以是单继承,也可以是多继承;一个接口可以通过extends关键字继承多个接口,接口之间用逗号隔开。

案例4-12 Object类 一、案例描述

1、 考核知识点

编 号:00104008 名 称:Object类

2、 练习目标

? 了解什么是Object类

? 掌握Object类中常用方法的使用

3、 需求分析

在JDK中提供了一个Object类,它是所有类的父类,即每个类都直接或间接继承自该类。Object类自身的equals()方法比较的是内存地址值,相当于“==”,但是在实际开发中我们很少比较两个对象的地址值,这时候常常就需要根据自身需求来重写equals()方法。为了方便初学者学习Object类,本案例将演示如何重写equals()方法。

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

1)设计Student类,定义sid变量表示学号,重写equals()方法,判断进行比较的两个学生对象学号是否相同,相同即为同一个学生,否则不是。

2)编写测试类Example12,创建两个Student的对象Lily和Lucy,并分别调用setter方法为学号赋值,最后通过打印语句,输出这两个对象通过“==”和重写后的equals()方法比较后的结果。

二、案例实现

1、编写Student类,重写equals()方法。代码如下:

class Student {

Student() {}

16

联系合同范文客服:xxxxx#qq.com(#替换为@)