java程序设计雍俊海第三章.ppt
《java程序设计雍俊海第三章.ppt》由会员分享,可在线阅读,更多相关《java程序设计雍俊海第三章.ppt(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.Java程序设计程序设计Programming in Java雍俊海雍俊海清华大学软件学院清华大学软件学院School of Software,Tsinghua University1/28/20231教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.教材教材雍俊海雍俊海.Java程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.1/28/20232教材教材:雍俊海雍俊海.Java 程序设计教程程序设
2、计教程.北京北京:清华大学出版社清华大学出版社,2007.习题集习题集雍俊海雍俊海.Java程序设程序设计习题集计习题集(含参考答案含参考答案).北京北京:清华大学出清华大学出版社版社,2006.1/28/20233教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.参考文献参考文献本课件的参考文献与下面书的参考文献相同本课件的参考文献与下面书的参考文献相同雍俊海雍俊海.Java程序设计教程程序设计教程.北京北京:清华大学清华大学出版社出版社,2007.雍俊海雍俊海.Java程序设计习题集程序设计习题集(含参考答案含参考答案).北京北京
3、:清华大学出版社清华大学出版社,2006.雍俊海雍俊海.Java程序设计程序设计.北京北京:清华大学出版清华大学出版社社,2004.1/28/20234教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.第第3章章 面向对象程序设计面向对象程序设计雍俊海雍俊海(Jun-Hai Yong)清华大学软件学院清华大学软件学院School of Software,Tsinghua University1/28/20235教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.本章总体纲要本章
4、总体纲要类、域、方法和实例对象类、域、方法和实例对象继承性继承性多态性多态性包包(package)封装性封装性关键字关键字abstract、static、final和和this接口接口内部类内部类变量作用域范围和参数传递方式变量作用域范围和参数传递方式面向对象程序设计基本思想面向对象程序设计基本思想1/28/20236教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.面向对象程序设计整体介绍面向对象程序设计整体介绍面向对象程序设计面向对象程序设计(OOP)将将数据数据(属性属性)和和方法方法(行为或功能行为或功能)封装封装到类到类(c
5、lasses)中中数据数据与与方法方法常常是紧密相关的常常是紧密相关的对象对象(objects):类的实例对象或类本身类的实例对象或类本身三个基本特性:三个基本特性:封装性封装性、继承性继承性和和多态性多态性1/28/20237教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.比较比较结构化程序设计结构化程序设计对应的典型的计算机语言对应的典型的计算机语言,例如例如:C面向操作面向操作(action)的的函数函数(方法方法)是程序的基本单位是程序的基本单位面向对象程序设计面向对象程序设计对应的典型的计算机语言对应的典型的计算机语言,例
6、如例如:Java面向面向对象对象(object)的的类类(class)是程序的基本单位是程序的基本单位方法方法(函数函数)被封装在类中被封装在类中数据数据也常常被封装在类中也常常被封装在类中1/28/20238教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.类类类类(class)本身也是一种对象本身也是一种对象类类(class)同时也是实例对象的模板同时也是实例对象的模板类类(class)的基本组成:的基本组成:(成员成员)域域和和(成成员员)方法方法 每个对象:拥有内存每个对象:拥有内存存储成员域存储成员域/方法方法静态的成员静态
7、的成员域域/方法方法属于类属于类其它成员其它成员域域/方法方法属于实例对象属于实例对象1/28/20239教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.类的定义类的定义类的定义格式如下:类的定义格式如下:类修饰词类修饰词 class 类名类名 extends 父类名父类名 implements 接口名称列接口名称列表表 类体类体1/28/202310教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.多个类组成的程序多个类组成的程序很多很多Java程序需要多个类完成一项任务
8、程序需要多个类完成一项任务一个文件一般只含有一个类一个文件一般只含有一个类每个文件的长度一般不要太长每个文件的长度一般不要太长最长一般不要超过最长一般不要超过2000行行1/28/202311教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.方法定义方法定义与与C+程序不同的是程序不同的是:每个方法都必须隶属于某个类每个方法都必须隶属于某个类方法定义的格式方法定义的格式:方法修饰词方法修饰词 返回类型返回类型 方法名方法名(方法的参数列表方法的参数列表)方法体方法体 返回类型返回类型:返回数据的数据类型返回数据的数据类型除了构造方法,
9、一般要求返回类型除了构造方法,一般要求返回类型:要么为要么为void,要么为,要么为某种数据类型某种数据类型int、byte、float或或String最多只能返回一个值最多只能返回一个值方法名方法名:任何一个合法的标识符任何一个合法的标识符参数列表参数列表:用逗号用逗号(,)分隔开分隔开1/28/202312教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.返回控制返回控制如果没有值返回如果没有值返回:return;/退出该方法退出该方法或者遇到该方法的最后一个或者遇到该方法的最后一个“”,则退出,则退出该方法该方法如果有值返回如果
10、有值返回:return 表达式表达式;/退出该方法退出该方法返回该表达式的值返回该表达式的值1/28/202313教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.构造方法构造方法构造方法构造方法在创建新的实例对象时起作用在创建新的实例对象时起作用构造方法构造方法通常用来初始化实例对象,例如通常用来初始化实例对象,例如:初始初始化成员域或设置工作环境化成员域或设置工作环境构造方法构造方法的特点的特点:与类同名与类同名没有返回值没有返回值可以含有多种可以含有多种构造方法构造方法(重载重载)但必须具有不同的参数列表但必须具有不同的参数列表
11、1/28/202314教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.默认的构造方法默认的构造方法如果没有显式地定义类的构造方法,则系统会为该类定如果没有显式地定义类的构造方法,则系统会为该类定义一个默认的构造方法。该构造方法不含任何参数。义一个默认的构造方法。该构造方法不含任何参数。这个默认的构造方法首先调用其父类的不含任何参数的构造这个默认的构造方法首先调用其父类的不含任何参数的构造方法,然后初始化新生成的实例的各个成员域变量方法,然后初始化新生成的实例的各个成员域变量默认值默认值:基本数值类型基本数值类型:0;boolean:
12、false;引用数据类型引用数据类型:null最好自己写构造方法最好自己写构造方法一旦在类中定义了构造方法,系统就不会再创建这个默一旦在类中定义了构造方法,系统就不会再创建这个默认的不含参数的构造方法。认的不含参数的构造方法。1/28/202315教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.本章总体纲要本章总体纲要类、域、方法和实例对象类、域、方法和实例对象继承性继承性多态性多态性包包(package)封装性封装性关键字关键字abstract、static、final和和this接口接口内部类内部类变量作用域范围和参数传递方式变
13、量作用域范围和参数传递方式面向对象程序设计基本思想面向对象程序设计基本思想1/28/202316教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.继承性继承性继承性继承性 软件重用的一种方法软件重用的一种方法根据已有的类创建新的类根据已有的类创建新的类采纳了旧的类的属性采纳了旧的类的属性(域域)及其行为及其行为(方法方法)增加了新的能力增加了新的能力子类继承父类子类继承父类子类增加了新的成员域或新的成员方法子类增加了新的成员域或新的成员方法有时可以理解成有时可以理解成:(但不绝对但不绝对!)子类对象子类对象是是一种特殊的父类对象一种特
14、殊的父类对象1/28/202317教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.继承性继承性的实现的实现采用关键字采用关键字extendspublic class J_HelloApplet extends Applet /类类J_HelloApplet结束结束1/28/202318教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.关键字关键字:instanceof运算符运算符:instanceof例如例如:if(p instanceof Circle)上面的条件为上面的
15、条件为 true,当且仅当引用当且仅当引用p所指向的所指向的对象是类对象是类Circle(或其或其子类子类)的实例对象的实例对象1/28/202319教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.多重继承多重继承在有些计算机语言中,允许一个类有多在有些计算机语言中,允许一个类有多个直接父类。这种继承关系称为个直接父类。这种继承关系称为多重继多重继承承Java不支持不支持多重继承多重继承Java 允许一个类有多个直接父接口允许一个类有多个直接父接口(interface)1/28/202320教材教材:雍俊海雍俊海.Java 程序设计
16、教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.本章总体纲要本章总体纲要类、域、方法和实例对象类、域、方法和实例对象继承性继承性多态性多态性包包(package)封装性封装性关键字关键字abstract、static、final和和this接口接口内部类内部类变量作用域范围和参数传递方式变量作用域范围和参数传递方式面向对象程序设计基本思想面向对象程序设计基本思想1/28/202321教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.多态性多态性优点优点:代码重用代码重用简化设计、简化代码简化设计、简化代码便于程序扩
17、展便于程序扩展1/28/202322教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.多态性的种类多态性的种类1)静态的多态性静态的多态性重载重载2)动态的多态性动态的多态性覆盖覆盖1/28/202323教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.静态的多态性静态的多态性(重载重载)在编译时就能够被识别在编译时就能够被识别针对的是同一个类内的同名方法针对的是同一个类内的同名方法例如例如:public int square(int x)return x*x;public
18、double square(double x)return x*x;1/28/202324教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.识别重载方法识别重载方法识别标志识别标志:参数的个数、类型、数据类型的排列顺序参数的个数、类型、数据类型的排列顺序返回值不能做为识别的标志返回值不能做为识别的标志1/28/202325教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.动态多态性动态多态性(覆盖覆盖)在程序运行时才被识别在程序运行时才被识别重写父类的方法重写父类的方法要求相
19、同的声明要求相同的声明例如例如:public class J_HelloApplet extends JApplet public void paint(Graphics g)g.clearRect(0,0,getWidth(),getHeight();/清除背景清除背景 g.drawString(小应用程序,您好小应用程序,您好!,10,20);/方法方法paint结束结束/类类J_HelloApplet结束结束1/28/202326教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.源程序源程序:J_Teacher.Java/文件名
20、文件名:J_Teacher.java;开发者开发者:雍俊海雍俊海class J_Employee public int m_workYear;/工作的年限工作的年限 public J_Employee()m_workYear=1;/J_Employee构造方法结束构造方法结束 public void mb_printInfo()System.out.println(该职工的工作年限为该职工的工作年限为+m_workYear);/方法方法mb_printInfo结束结束/类类J_Employee结束结束1/28/202327教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清
21、华大学出版社清华大学出版社,2007.public class J_Teacher extends J_Employee public int m_classHour;/授课的课时授课的课时 public J_Teacher()m_classHour=96;/J_Teacher构造方法结束构造方法结束 public void mb_printInfo()System.out.println(该教师的工作年限为该教师的工作年限为+m_workYear);System.out.println(该教师授课的课时为该教师授课的课时为+m_classHour);/方法方法mb_printInfo结束结束
22、 public static void main(String args)J_Employee a=new J_Employee();a.mb_printInfo();a=new J_Teacher();a.mb_printInfo();/方法方法main结束结束/类类J_Teacher结束结束源程序源程序:J_Teacher.Java1/28/202328教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.编译、运行编译、运行&结果结果1/28/202329教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学
23、出版社清华大学出版社,2007.本章总体纲要本章总体纲要类、域、方法和实例对象类、域、方法和实例对象继承性继承性多态性多态性包包(package)封装性封装性关键字关键字abstract、static、final和和this接口接口内部类内部类变量作用域范围和参数传递方式变量作用域范围和参数传递方式面向对象程序设计基本思想面向对象程序设计基本思想1/28/202330教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.包包可以将一组相关的类或接口封装在包可以将一组相关的类或接口封装在包(package)里,从而更好地管理已经开发里,从而
24、更好地管理已经开发的的Java代码代码包含组织类与接口的目录结构包含组织类与接口的目录结构方便程序重用方便程序重用1/28/202331教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.Java 包包Java系统提供了很多已经写好的包系统提供了很多已经写好的包数学计算、输入数学计算、输入/输出、字符串操作输出、字符串操作尽量利用已有的包、避免重复工作尽量利用已有的包、避免重复工作使用包中类使用包中类利用利用import 语句指定类的位置语句指定类的位置例如例如:import javax.swing.JApplet;1/28/20233
25、2教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.包包包包java.lang包包java.util1/28/202333教材教材:雍俊海雍俊海.Java 程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007.本章总体纲要本章总体纲要类、域、方法和实例对象类、域、方法和实例对象继承性继承性多态性多态性包包(package)封装性封装性关键字关键字abstract、static、final和和this接口接口内部类内部类变量作用域范围和参数传递方式变量作用域范围和参数传递方式面向对象程序设计基本思想面向对象程序设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 程序设计 雍俊海 第三
限制150内