ch04Java面向对象编程技术_第1页
ch04Java面向对象编程技术_第2页
ch04Java面向对象编程技术_第3页
ch04Java面向对象编程技术_第4页
ch04Java面向对象编程技术_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ch04Java面向对象编程技术 第4讲 Java面向对象编程技术 授课课时:授课课时:8 8课时(课时(360360分钟)分钟) 主编:刘志成主编:刘志成 2 主要内容主要内容 本课目标本课目标 新课引入与项目展示新课引入与项目展示 案例案例1 编写描述学生的编写描述学生的Java类类 案例案例2 编写描述大学生的编写描述大学生的Java类类 案例案例3 方法重载与方法重写方法重载与方法重写 案例案例4 定义形状定义形状 案例案例5 实现电视机遥控器实现电视机遥控器 案例案例6 读取队列元素读取队列元素 案例案例7 操作字符串操作字符串 课堂实践课堂实践 巩固与提高巩固与提高 3 本课目标

2、知识知识 目标目标 掌握面向对象程序设计的基本概念掌握面向对象程序设计的基本概念 掌握掌握JavaJava语言中类的声明及由类创建对象并使用对象语言中类的声明及由类创建对象并使用对象 掌握掌握JavaJava语言中继承的实现方法语言中继承的实现方法 了解了解JavaJava语言应用接口实现多态的方法与语言应用接口实现多态的方法与JavaJava常用类库常用类库 技能技能 目标目标 能将简单的客观事物抽象成能将简单的客观事物抽象成JavaJava类类 能应用能应用JavaJava面向对象特点解决实际问题面向对象特点解决实际问题 态度态度 目标目标 严谨认真的工作态度严谨认真的工作态度 语言表达和

3、与人沟通能力语言表达和与人沟通能力 养成规范化编程的习惯养成规范化编程的习惯 4 教学情境引入新课 熟练掌握类的定义,对象的创建及对象之间的交互,子类和抽熟练掌握类的定义,对象的创建及对象之间的交互,子类和抽 象类的定义及多态的实现与使用。象类的定义及多态的实现与使用。 工作任务工作任务 项目展示项目展示 5 教师示范与讲解1 任务一:编写描述学生的任务一:编写描述学生的Java类类 案例分析案例分析 6 面向对象的基本概念 1 1对象对象 v对象(对象(ObjectObject)就是客观存在的任何事物。)就是客观存在的任何事物。 2 2类类 v类(类(classclass)是对象的模板。即类

4、是对一组有相同)是对象的模板。即类是对一组有相同 静态特性和相同动态行为的对象的抽象,一个类所静态特性和相同动态行为的对象的抽象,一个类所 包含的属性和方法描述一组对象的共同属性和行为包含的属性和方法描述一组对象的共同属性和行为 。类是在对象之上的抽象,对象则是类的具体化,。类是在对象之上的抽象,对象则是类的具体化, 是类的实例。是类的实例。 7 面向对象的基本概念 3 3接口接口 v如果我们把客观世界看成由不同的系统(或类)组如果我们把客观世界看成由不同的系统(或类)组 成,这些系统(或类)之间需要通过一个公共的部成,这些系统(或类)之间需要通过一个公共的部 件进行交流,我们把这个公共的部件

5、称为接口(件进行交流,我们把这个公共的部件称为接口( InterfaceInterface)。)。 4 4消息消息 v消息就是对象之间进行通信的一种规格说明,对象消息就是对象之间进行通信的一种规格说明,对象 之间进行交互作用和通信的工具。之间进行交互作用和通信的工具。 8 面向对象的基本特性 1 1封装性封装性 v 封装是一种信息隐蔽技术,它体现于类的说明中,是对象的重要封装是一种信息隐蔽技术,它体现于类的说明中,是对象的重要 特性。特性。 v 封装的目的在于把对象的设计者和对象的使用者分开,使用者不封装的目的在于把对象的设计者和对象的使用者分开,使用者不 需要知道行为实现的细节,只需用设计者

6、提供的消息来访问该对需要知道行为实现的细节,只需用设计者提供的消息来访问该对 象。象。 v 在在JavaJava语言中,类是封装的最基本单位。语言中,类是封装的最基本单位。 v 封装有助于提高类和系统的安全性。封装有助于提高类和系统的安全性。 9 面向对象的基本特性 2 2继承性继承性 v 继承是类不同抽象级别之间的关系,是子类自动共享父类数据和继承是类不同抽象级别之间的关系,是子类自动共享父类数据和 方法的机制。方法的机制。 3 3多态性多态性 v 对象根据所接收的消息产生行为,同一消息为不同的对象接收时对象根据所接收的消息产生行为,同一消息为不同的对象接收时 可产生完全不同的行动,这种现象

7、称为多态性。可产生完全不同的行动,这种现象称为多态性。 v 多态允许对任意指定的对象自动地使用正确的方法,并通过在程多态允许对任意指定的对象自动地使用正确的方法,并通过在程 序运行过程中将对象与恰当的方法进行动态绑定来实现。序运行过程中将对象与恰当的方法进行动态绑定来实现。 10 类的定义 v JavaJava中的类的定义包括类声明和类体两部分内容。中的类的定义包括类声明和类体两部分内容。 v 类声明的格式如下:类声明的格式如下: publicabstractfinal class 类名 extends 父类名 implements 接口名表 v 类体的通用格式如下:类体的通用格式如下: pu

8、blicabstractfinal class 类名 extends 父类名 implements 接口名表 成员域定义部分; 方法定义部分; 11 课堂演示-编写描述学生的Java类 v 【案例案例4-14-1】判断指定数的奇偶性判断指定数的奇偶性 【案例学习目标】【案例学习目标】理解面向对象的基本概念,掌握理解面向对象的基本概念,掌握JavaJava语言中语言中 类的基本格式,能够简单实现对客观事物到类的基本格式,能够简单实现对客观事物到JavaJava类的抽象。类的抽象。 【案例知识要点案例知识要点】类的含义、类的定义、类的含义、类的定义、JavaJava类的声明方法、类的声明方法、 J

9、avaJava类体的定义方法。类体的定义方法。 【案例完成步骤案例完成步骤】 学生对象分析学生对象分析 类的定义类的定义 12 课堂演示-编写描述学生的Java类 v 学生对象分析学生对象分析 项 目名 称含 义 属性 sName表示学生姓名,String类型 bGender表示学生性别,boolean类型,false代表女 iAge表示学生年龄,int类型 dHeight表示学生身高,double类型 dWeight表示学生体重,double类型 iCounter表示学生总人数,int类型 方法 setInfo用于设置学生相关信息的方法 getInfo用于获得学生相关信息的方法 getCou

10、nter用于获得学生总人数的方法 13 课堂演示-编写描述学生的Java类 v 类的定义类的定义 public class Student public class Student public static int public static int iCounteriCounter=0;=0; String sName; String sName; boolean bGender=false; /false boolean bGender=false; /false代表代表 女女 int iAge; int iAge; double dHeight; double dHeight; /单位

11、为厘米单位为厘米 double dWeight;double dWeight; /单位为公斤单位为公斤 public static void getCounter() public static void getCounter() System. System.outout.println(.println(学生总数学生总数:+ +:+ +iCounteriCounter);); 14 课堂演示-编写描述学生的Java类 public void getInfo()public void getInfo() System. System.outout.print(.print(姓名姓名:+sNa

12、me+t);:+sName+t); System. System.outout.print(.print(性别性别:+bGender+t);:+bGender+t); System. System.outout.print(.print(年龄年龄:+iAge+:+iAge+岁岁t);t); System. System.outout.print(.print(身高身高:+dHeight+:+dHeight+厘米厘米t);t); System. System.outout.println(.println(体重体重:+dWeight+:+dWeight+公斤公斤);); public void

13、setInfo(String n,boolean g,int a,double h,double w) public void setInfo(String n,boolean g,int a,double h,double w) sName=n; sName=n; bGender=g; bGender=g; iAge=a; iAge=a; dHeight=h; dHeight=h; dWeight=w; dWeight=w; 15 学生模仿1 任务一:学生模仿完成任务一:学生模仿完成【案例案例4-1】编写学生类编写学生类 16 教师示范与讲解2 任务一:编写描述大学生的任务一:编写描述大学生

14、的Java类类 案例分析案例分析 17 成员变量定义 v成员变量描述了类的静态特性。成员变量描述了类的静态特性。 v类的静态特性包括两部分:类的特性和对象的特性信息类的静态特性包括两部分:类的特性和对象的特性信息 。对应的。对应的JavaJava也将成员变量分为两种:类变量和实例变也将成员变量分为两种:类变量和实例变 量。量。 v在变量定义时,可同时给其赋初值,将其初始化在变量定义时,可同时给其赋初值,将其初始化 v类的成员变量定义的一般格式如下:类的成员变量定义的一般格式如下: 存取修饰符 final transient static volatile 类型 变量名 = 值 或表达式 ,变量

15、名 = 值或表达式; 18 成员方法定义 v 方法是一个包含一条或多条语句的代码块,用来完成一个相方法是一个包含一条或多条语句的代码块,用来完成一个相 对独立的功能对独立的功能 v 方法有自己的名称以及可以重复使用的变量方法有自己的名称以及可以重复使用的变量 v 与类成员变量一样,方法也分为类方法(也称为静态方法)与类成员变量一样,方法也分为类方法(也称为静态方法) 和实例方法两种和实例方法两种 v 类的成员方法定义的一般格式如下:类的成员方法定义的一般格式如下: 存取修饰符 final staticabstractnativesynchronized 方法返 回类型 方法名( 形式参数表)

16、throws 异常表 可执行代码; 19 构造方法 v 构造方法的主要用途有两个:一是通知构造方法的主要用途有两个:一是通知JavaJava虚拟机创建类的虚拟机创建类的 对象,二是对创建的对象进行初始化对象,二是对创建的对象进行初始化 v 如果在程序中没有显式的定义类的构造方法,如果在程序中没有显式的定义类的构造方法,JavaJava编译器将编译器将 自动提供一个构造方法,称为默认构造方法自动提供一个构造方法,称为默认构造方法 v 可以在可以在【案例案例4 4-1-1】中,添加一个构造方法:中,添加一个构造方法: public Student() iAge=36; dHeight=170; d

17、Weight=65; 20 创建对象 1 1创建对象的步骤创建对象的步骤 v在已经定义好的类的基础上,创建对象的过程分为在已经定义好的类的基础上,创建对象的过程分为 如下如下3 3步:步: (1)创建对象引用变量; (2)创建类的实例对象; (3)将对象的引用赋值给对象引用变量。 21 创建对象 2 2newnew运算符运算符 v通过通过newnew运算符创建对象时,运算符创建对象时,JavaJava虚拟机将在堆中虚拟机将在堆中 开辟一个内存空间,用于存放对象的实例变量,并开辟一个内存空间,用于存放对象的实例变量,并 根据指定的构造方法和类的定义初始化这些实例变根据指定的构造方法和类的定义初始

18、化这些实例变 量。量。newnew运算符的一般格式为:运算符的一般格式为: 对象引用变量 new 对象构造方法; 3 3调用对象的成员调用对象的成员 v对象的成员(实例变量与实例方法)的调用采用对象的成员(实例变量与实例方法)的调用采用 “. .”运算符,引用的一般格式为:运算符,引用的一般格式为: 对象引用变量.类的成员 22 类的继承 v在在JavaJava中,从一个现有类的基础上定义新的类的过中,从一个现有类的基础上定义新的类的过 程称为派生。程称为派生。 v新定义的类称为派生类,也称为直接子类。新定义的类称为派生类,也称为直接子类。 v基础类称为父类或超类。这种一个类派生出另一个基础类

19、称为父类或超类。这种一个类派生出另一个 类的关系即为继承关系,一个派生类将继承其父类类的关系即为继承关系,一个派生类将继承其父类 的所有特性和操作。的所有特性和操作。 v如果要创建一个继承父类的子类,只需在类的声明如果要创建一个继承父类的子类,只需在类的声明 中通过中通过extendsextends关键字指定要继承的类名就可以。关键字指定要继承的类名就可以。 23 课堂演示-编写描述大学生的Java类 v【案例案例4-24-2】编写描述大学生的编写描述大学生的JavaJava类类 【案例学习目标】【案例学习目标】理解继承的基本思想,理解父类和子类的关理解继承的基本思想,理解父类和子类的关 系,

20、能在父类的基础上创建子类系,能在父类的基础上创建子类 【案例知识要点案例知识要点】父类和子类的概念、子类的实现、父类和子类的概念、子类的实现、extendsextends 关键字关键字 【案例完成步骤案例完成步骤】 编写程序编写程序 编译并运行程序编译并运行程序 24 课堂演示-编写描述大学生的Java类 v 编写程序编写程序 public class College extends Studentpublic class College extends Student private String sMajor;private String sMajor; public void getMa

21、jor()public void getMajor() System.System.outout.println(.println(专业专业:+sMajor);/:+sMajor);/调用子类的实例变量调用子类的实例变量 System.System.outout.println(.println(身高身高:+dHeight);/:+dHeight);/引用父类的实例变量引用父类的实例变量 public static void main(String args)public static void main(String args) College wangym;College wangym;

22、wangym=new College();wangym=new College(); wangym.getInfo();/wangym.getInfo();/调用父类的实例方法调用父类的实例方法 wangym.getMajor();/wangym.getMajor();/调用子类的实例方法调用子类的实例方法 25 课堂演示-编写描述大学生的Java类 v运行结果运行结果 26 学生模仿2 任务一:学生模仿完成任务一:学生模仿完成【案例案例4-2】的内容的内容 27 教师示范与讲解3 任务一:方法重载与方法重写任务一:方法重载与方法重写 案例分析案例分析 28 this和super vthist

23、his代表当前对象本身。代表当前对象本身。 v通过通过thisthis变量不仅可以引用当前对象的实例变量,变量不仅可以引用当前对象的实例变量, 也可引用当前对象的实例方法;但由于类变量与类也可引用当前对象的实例方法;但由于类变量与类 方法不属于具体的类对象,因此不能通过方法不属于具体的类对象,因此不能通过thisthis变量变量 引用类变量和类方法,在类方法中也不能使用引用类变量和类方法,在类方法中也不能使用thisthis 变量。变量。 v在引用实例变量时,使用在引用实例变量时,使用thisthis变量是一种很好的习变量是一种很好的习 惯,它能使程序更加清晰,且不容易出错。惯,它能使程序更加

24、清晰,且不容易出错。 vsupersuper代表当前类的父类。通过代表当前类的父类。通过supersuper可以调用父类可以调用父类 的构造方法和父类的成员(成员变量和成员方法)的构造方法和父类的成员(成员变量和成员方法) 。 29 方法重载与方法重写 v方法重载指类的同名方法在向其传递不同的参数时方法重载指类的同名方法在向其传递不同的参数时 可以有不同的动作,实现不同的功能可以有不同的动作,实现不同的功能 v子类从父类中继承方法时,需要修改父类中定义的子类从父类中继承方法时,需要修改父类中定义的 方法(即只修改方法体,方法的参数类型、个数、方法(即只修改方法体,方法的参数类型、个数、 顺序以

25、及返回值保持相同),这就是方法的重写顺序以及返回值保持相同),这就是方法的重写 30 课堂演示方法重载与方法重写 v 【案例案例4-34-3】方法重载与方法重写方法重载与方法重写 【案例学习目标】【案例学习目标】理解方法重载的含义和应用场合,理理解方法重载的含义和应用场合,理 解方法重写的含义和应用场合,掌握实现方法重载的方解方法重写的含义和应用场合,掌握实现方法重载的方 法,掌握实现方法重写的方法,能在实际应用中合理选法,掌握实现方法重写的方法,能在实际应用中合理选 择方法重载或方法重写。择方法重载或方法重写。 【案例知识要点案例知识要点】方法重载的含义、方法重写的含义、方法重载的含义、方法

26、重写的含义、 方法重载的方法、方法重写的方法。方法重载的方法、方法重写的方法。 【案例完成步骤案例完成步骤】 编写程序编写程序 编译并运行程序编译并运行程序 31 课堂演示-方法重载与方法重写 v 编写方法重载的程序编写方法重载的程序 public class OverLoadDemo public class OverLoadDemo void purchase()void purchase() System.System.outout.println(.println(买菜买菜);); void purchase(String what)void purchase(String what)

27、 System.System.outout.println(.println(买买+what);+what); void purchase(String what,int number)void purchase(String what,int number) System.System.outout.println(.println(买买+number+number+斤斤+what);+what); void purchase(String what,String where)void purchase(String what,String where) System.System.outo

28、ut.println(.println(到到+where+where+买买+what);+what); 32 课堂演示-方法重载与方法重写 void purchase(String what,int number,String where)void purchase(String what,int number,String where) System.System.outout.println(.println(到到+where+where+买买+number+number+斤斤+what);+what); void purchase(String what,int number,Strin

29、g where,String when)void purchase(String what,int number,String where,String when) System.System.outout.println(when+.println(when+到到+where+where+买买+number+number+斤斤+what);+what); public static void main(String args)public static void main(String args) OverLoadDemo old=new OverLoadDemo();OverLoadDem

30、o old=new OverLoadDemo(); old.purchase();old.purchase(); old.purchase(old.purchase(大米大米);); old.purchase(old.purchase(大米大米,100);,100); old.purchase(old.purchase(大米大米,步步高超市步步高超市);); old.purchase(old.purchase(大米大米,100,100,步步高超市步步高超市);); old.purchase(old.purchase(大米大米,100,100,步步高超市步步高超市,下午下午);); 33 课堂演

31、示-方法重载与方法重写 v方法重载运行结果方法重载运行结果 34 课堂演示-方法重载与方法重写 v编写方法重写的程序编写方法重写的程序 class Stuclass Stu String sName;String sName; void display(String name)void display(String name) System.System.outout.println(.println(我是一名学生我是一名学生, ,我的名字是我的名字是:+name);:+name); class CollegeStu extends Stuclass CollegeStu extends St

32、u String sMajor;String sMajor; void display(String name)void display(String name) System.System.outout.println(-);.println(-); System.System.outout.println(.println(我是一名大学生我是一名大学生, ,我的名字是我的名字是:+name);:+name); sMajor=sMajor=计算机计算机; System.System.outout.println(.println(我学习的专业是我学习的专业是:+sMajor);:+sMajo

33、r); 35 课堂演示-方法重载与方法重写 class MiddleStu extends Stuclass MiddleStu extends Stu String sSubject;String sSubject; void display(String name)void display(String name) System.System.outout.println(-);.println(-); System.System.outout.println(.println(我是一名中学生我是一名中学生, ,我的名字是我的名字是 :+name);:+name); sSubject=sS

34、ubject=理科理科; System.System.outout.println(.println(我学习的科目是我学习的科目是:+sSubject);:+sSubject); 36 课堂演示-方法重载与方法重写 public class OverrideDemopublic class OverrideDemo public static void main(String args)public static void main(String args) Stu stu=new Stu();Stu stu=new Stu(); CollegeStu cstu=new CollegeStu(

35、);CollegeStu cstu=new CollegeStu(); MiddleStu mstu=new MiddleStu();MiddleStu mstu=new MiddleStu(); Stu s;Stu s; s=stu;s=stu; s.display(s.display(刘津刘津);); s=cstu;s=cstu; s.display(s.display(王咏梅王咏梅);); s=mstu;s=mstu; s.display(s.display(刘志成刘志成);); 37 课堂演示-方法重载与方法重写 v方法重写运行结果方法重写运行结果 38 学生模仿3 任务一:学生模仿完

36、成任务一:学生模仿完成【案例案例4-3】的内容的内容 39 教师示范与讲解4 任务一:编写定义形状的程序任务一:编写定义形状的程序 案例分析案例分析 40 抽象类与抽象方法 v在面向对象分析设计时,可将一些实体作高度抽象在面向对象分析设计时,可将一些实体作高度抽象 定义成抽象类。抽象类没有任何对象,只可作为一定义成抽象类。抽象类没有任何对象,只可作为一 个模板用于创建子类,以及为面向对象提供更灵活个模板用于创建子类,以及为面向对象提供更灵活 的多态机制的多态机制 v抽象类定义的一般格式如下:抽象类定义的一般格式如下: public abstract class 类名 extends 父类名 i

37、mplements 接口名表 方法体; 41 抽象类与抽象方法 v抽象类的声明,必须在抽象类的声明,必须在classclass关键字之前添加关键字之前添加 abstractabstract关键字。关键字。 v抽象类与其他类一样,可继承于其他类,也可实现抽象类与其他类一样,可继承于其他类,也可实现 接口。但定义抽象类的主要目的就是为了创建子类接口。但定义抽象类的主要目的就是为了创建子类 ,因此,因此abstractabstract类不可以是类不可以是finalfinal类。类。 v抽象类中可以不包含抽象方法,但包含抽象方法的抽象类中可以不包含抽象方法,但包含抽象方法的 类必须是抽象类。类必须是抽

38、象类。 v抽象方法声明的一般格式如下:抽象方法声明的一般格式如下: 存取修饰符 abstract 方法返回类型 方法 名( 形式参数表) throws 异常表; 42 Final修饰符 v出于保密或其他设计上的原因,希望类或类中成员出于保密或其他设计上的原因,希望类或类中成员 变量、成员方法不被修改或重写,可以通过变量、成员方法不被修改或重写,可以通过JavaJava提提 供的供的finalfinal修饰符来实现修饰符来实现 v在类定义时,可使用在类定义时,可使用finalfinal修饰符使类不被继承修饰符使类不被继承 v在定义成员变量时,可通过在定义成员变量时,可通过finalfinal修饰

39、符定义常量修饰符定义常量 v在定义方法时,可使用在定义方法时,可使用finalfinal修饰符避免方法被子修饰符避免方法被子 类重写类重写 43 课堂演示-定义形状 v 【案例案例4-44-4】定义形状定义形状 【案例学习目标】【案例学习目标】了解抽象类的定义方法,掌握由抽象类得到了解抽象类的定义方法,掌握由抽象类得到 具体类的方法,能根据实际应用编写抽象类和具体类具体类的方法,能根据实际应用编写抽象类和具体类 【案例知识要点案例知识要点】抽象类的定义、抽象类和具体类的关系、抽象类的定义、抽象类和具体类的关系、 abstractabstract关键字关键字 【案例完成步骤案例完成步骤】 编写程

40、序编写程序 编译并运行程序编译并运行程序 44 课堂演示-定义形状 v 编写程序编写程序 abstract class Shapeabstract class Shape public abstract void getArea();public abstract void getArea(); class Circle extends Shapeclass Circle extends Shape final double PI=3.1415926;final double PI=3.1415926; double dRadius;double dRadius; public void ge

41、tArea()public void getArea() System.System.outout.println(.println(圆的面积为圆的面积为:+PI:+PI* *dRadiusdRadius* *dRadius);dRadius); public Circle(double r)public Circle(double r) this.dRadius=r;this.dRadius=r; 45 课堂演示-定义形状 class Rectangle extends Shapeclass Rectangle extends Shape double dLength;double dLen

42、gth; double dWidth;double dWidth; public void getArea()public void getArea() System.System.outout.println(.println(矩形的面积为矩形的面积为:+dLength:+dLength* *dWidth);dWidth); public Rectangle(double l,double w)public Rectangle(double l,double w) this.dLength=l;this.dLength=l; this.dWidth=w;this.dWidth=w; publ

43、ic class AbstractDemopublic class AbstractDemo public static void main(String args)public static void main(String args) Circle cc=new Circle(5.6);Circle cc=new Circle(5.6); cc.getArea();cc.getArea(); Rectangle rt=new Rectangle(8,6);Rectangle rt=new Rectangle(8,6); rt.getArea();rt.getArea(); 46 课堂演示-

44、定义形状 v运行结果运行结果 47 学生模仿4 任务一:学生模仿完成任务一:学生模仿完成【案例案例4-4】的内容的内容 48 教师示范与讲解5 任务一:编写实现电视机遥控器的程序任务一:编写实现电视机遥控器的程序 案例分析案例分析 49 接口定义 v接口被描述为一组方法声明和常量的集合接口被描述为一组方法声明和常量的集合 v接口只定义一组方法协议(或称标准),但没有作接口只定义一组方法协议(或称标准),但没有作 任何具体实现。接口的定义与类的定义相似,其一任何具体实现。接口的定义与类的定义相似,其一 般格式为:般格式为: public interface 接口名 extends 父辈接口 列表

45、 常量定义 方法声明 50 实现接口 v 实现接口的定义格式如下:实现接口的定义格式如下: publicabstractfinal class 类名 extends 父类 名 implements 接口名表 /接口体内容1 /接口方法实现 /接口体内容2 v 与普通类的定义不同,接口实现必须包含与普通类的定义不同,接口实现必须包含“implements implements 接接 口名表口名表”部分部分 v 在实现类中,一般必须重写接口中声明的所有方法。在实现类中,一般必须重写接口中声明的所有方法。 v 重写方法的名称、返回值、修饰符必须与接口中声明的方法重写方法的名称、返回值、修饰符必须与接

46、口中声明的方法 一致。一致。 51 课堂演示-实现电视机遥控器 v 【案例案例4-54-5】实现电视机遥控器实现电视机遥控器 【案例学习目标】【案例学习目标】进一步理解继承和多继承的含义,掌进一步理解继承和多继承的含义,掌 握接口声明的方法,掌握接口体定义的方法,会根据实握接口声明的方法,掌握接口体定义的方法,会根据实 际应用编写接口际应用编写接口 【案例知识要点案例知识要点】接口声明、接口体定义、使用接口、接口声明、接口体定义、使用接口、 interfaceinterface关键字关键字 【案例完成步骤案例完成步骤】 编写接口程序编写接口程序 编写实现接口的程序编写实现接口的程序 编写测试接

47、口的主类编写测试接口的主类 运行程序运行程序 52 课堂演示-实现电视机遥控器 v编写接口程序编写接口程序 interface IRemoteCtrlinterface IRemoteCtrl int int VOLUME_MINVOLUME_MIN = 0; = 0; int int VOLUME_MAXVOLUME_MAX = 100; = 100; boolean powerOnOff(boolean b); / boolean powerOnOff(boolean b); /电源开关电源开关 int volumeUp(int increment); /int volumeUp(int

48、increment); /声音放大声音放大 int volumeDown(int decrement); /int volumeDown(int decrement); /声音减小声音减小 void mute();/void mute();/静音静音 53 课堂演示-实现电视机遥控器 v 编写实现接口的程序(见书本)编写实现接口的程序(见书本) v 编写测试接口的主类编写测试接口的主类 public class TestTvCtrl public class TestTvCtrl public static void main(String args)public static void ma

49、in(String args) TVRemoteCtrl tv=new TVRemoteCtrl(TVRemoteCtrl tv=new TVRemoteCtrl(海尔海尔 H600);H600); tv.powerOnOff(true);tv.powerOnOff(true); /tv.powerOnOff(false);/tv.powerOnOff(false); tv.setChannel(45);tv.setChannel(45); tv.channelDown();tv.channelDown(); tv.mute();tv.mute(); tv.volumeUp(2);tv.vol

50、umeUp(2); tv.volumeUp(3);tv.volumeUp(3); 54 课堂演示-实现电视机遥控器 v运行结果运行结果 55 学生模仿5 任务一:学生模仿完成任务一:学生模仿完成【案例案例4-5】的内容的内容 56 教师示范与讲解6 任务一:编写读取队列元素的程序任务一:编写读取队列元素的程序 案例分析案例分析 57 定义包 v 在在JavaJava语言中,与客观世界中系统相对应的概念称为包(语言中,与客观世界中系统相对应的概念称为包( PackagePackage)。)。 v 包是一种分组机制,设计者可将一组高内聚、低耦合、关联包是一种分组机制,设计者可将一组高内聚、低耦合、

51、关联 性较强的模型元素(可以是类、接口、包)组织在一起,形性较强的模型元素(可以是类、接口、包)组织在一起,形 成一个更高层次的单元成一个更高层次的单元 v 包由一组类和接口组成。它是管理大型名字空间,避免名字包由一组类和接口组成。它是管理大型名字空间,避免名字 冲突的工具。每一个类和接口的名字都包含在某个包中。冲突的工具。每一个类和接口的名字都包含在某个包中。 v 使用包的作用有两个:一是划分类名空间,二是控制类之间使用包的作用有两个:一是划分类名空间,二是控制类之间 的访问。的访问。 v 定义包的一般格式如下:定义包的一般格式如下: package packageName; 58 引入包

52、v 在一个类中,如果要使用其他包中的类和接口则用在一个类中,如果要使用其他包中的类和接口则用importimport关关 键词来标明来自其他包中的类。键词来标明来自其他包中的类。 v JavaJava提供提供importimport关键词来引用包,指定包的名字,包括路径关键词来引用包,指定包的名字,包括路径 名和类名,用名和类名,用“* *”匹配符可以调入多个类。匹配符可以调入多个类。 v 通常一个类只能引用与它在同一个包中的类,如果需要使用通常一个类只能引用与它在同一个包中的类,如果需要使用 其他包中的其他包中的publicpublic类,则可以使用如下的几种方法。类,则可以使用如下的几种方

53、法。 在要使用的类前加包名 用import关键字加载需要使用的类 用import关键字加载整个包 设置CLASSPATH环境变量 59 Java常用类库 编 号包 名功 能 1java.awt包含了图形界面设计类、布局类、事件监听类和图像类 2java.io包含了文件系统输入/输出相关的数据流类和对象序列化类 3java.lang包含对象、线程、异常出口、系统、整数和字符等类的Java编程语言的基本类库 包含支持TCP/IP网络协议类、Socket类、URL类等实现网络通信应用的所有类 5java.util包含程序的同步类、Date类和Dictionary类等常用工具包 6javax.swin

54、g包含了一系列轻量级的用户界面组件(swing组件)类 7Java.sql包含访问和处理来自于Java标准数据源数据的相关类(JDBC类) 8java.applet包含了设计applet的类 9java.beans.*提供了开发Java Beans需要的所有类 10java.math.*提供了简明的整数算术以及十进制算术的基本函数 11java.rmi提供了与远程方法调用相关的所有类 12java.security.*提供了设计网络安全方案需要的一些类 13java.test包括以一种独立于自然语言的方式处理文本、日期、数字和消息的类和接口 14javax.accessibility定义了用户

55、界面组件之间相互访问的一种机制 15javax.naming.*为命名服务提供了一系列类和接口 60 数组与字符串 v数组是一种常用的数据结构,相同数据类型的元素数组是一种常用的数据结构,相同数据类型的元素 按一定顺序排列就构成了数组。按一定顺序排列就构成了数组。 v数组中的各元素是有先后顺序的,它们在内存中按数组中的各元素是有先后顺序的,它们在内存中按 照这个先后顺序连续存放在一起。照这个先后顺序连续存放在一起。 v数组有一个成员变量数组有一个成员变量lengthlength来说明数组元素的个数来说明数组元素的个数 。 v创建一个空数组。创建一个空数组。 int list=new int5;

56、 v用初始数值填充数组。用初始数值填充数组。 String names=liujin,wangym, Liuzc; 61 一维数组 v 声明一个数组其实就是要确定数组名、数组的维数和数组元素的数据类声明一个数组其实就是要确定数组名、数组的维数和数组元素的数据类 型。声明数组的语法格式有两种:型。声明数组的语法格式有两种: 数组元素类型 数组名;或 数组元素类型 数组名; v 声明数组后,要想使用数组需要为它开辟内存空间,即创建数组空间。声明数组后,要想使用数组需要为它开辟内存空间,即创建数组空间。 创建数组空间的语法格式为:创建数组空间的语法格式为: 数组名=new 数组元素类型数组元素的个数

57、; v 在声明数组时在声明数组时“”中不允许指定数组元素的个数,如中不允许指定数组元素的个数,如int iSnoint iSno6 6 将导致语法错误。将导致语法错误。 v 正确区分正确区分“数组的第数组的第5 5个元素个元素”和和“数组元素数组元素5 5”很重要,因为数组下标很重要,因为数组下标 从从0 0开始,开始,“数组的第数组的第5 5个元素个元素”的下标是的下标是4 4,而,而“数组元素数组元素5 5”的下标是的下标是5 5 ,实际是数组的第,实际是数组的第6 6个元素个元素 v 当数组初始化后就可通过数组名与下标来引用数组中的每一个元素。一当数组初始化后就可通过数组名与下标来引用数

58、组中的每一个元素。一 维数组元素的引用格式如下:维数组元素的引用格式如下: 数组名数组下标 62 二维数组 v二维数组的声明与一维数组相似,只是需要给出两二维数组的声明与一维数组相似,只是需要给出两 对方括号。格式如下对方括号。格式如下 : 类型标识符 数组名;或 类型标识符 数组名; v在初始化二维数组时,可以只指定数组的行数而不在初始化二维数组时,可以只指定数组的行数而不 给出数组的列数,每一行的长度由二维数组引用时给出数组的列数,每一行的长度由二维数组引用时 决定,但不能只指定列数而不指定行数决定,但不能只指定列数而不指定行数 v不指定行数只指定列数是错误的不指定行数只指定列数是错误的

59、63 课堂演示-读取队列元素 v 【案例案例4-64-6】读取队列元素读取队列元素 【案例学习目标】【案例学习目标】了解数组的含义,掌握数组的定义方了解数组的含义,掌握数组的定义方 法,掌握数组的赋值方法,掌握数组元素的引用方法,法,掌握数组的赋值方法,掌握数组元素的引用方法, 在实际编程中能够合理地使用数组在实际编程中能够合理地使用数组 【案例知识要点案例知识要点】一维数组的定义、一维数组的赋值、一维数组的定义、一维数组的赋值、 一维数组元素的引用一维数组元素的引用 【案例完成步骤案例完成步骤】 编写程序编写程序 编译并运行程序编译并运行程序 64 课堂演示-读取队列元素 v编写程序编写程序

60、 public class Queue public class Queue public static void main(String args) public static void main(String args) int i;int i; int a=new int5;int a=new int5; for(i=0;i5;i+)for(i=0;i=0;i-)for(i=a.length-1;i=0;i-) System.System.outout.println(a+i+=+ai);.println(a+i+=+ai); 65 课堂演示-读取队列元素 v运行结果运行结果 66 学生

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论