java程序设计雍俊海第三章.ppt
《java程序设计雍俊海第三章.ppt》由会员分享,可在线阅读,更多相关《java程序设计雍俊海第三章.ppt(80页珍藏版)》请在三一办公上搜索。
1、2023/11/7,1,Java程序设计Programming in Java,雍俊海清华大学软件学院School of Software,Tsinghua University,2023/11/7,2,教材,雍俊海.Java程序设计教程.北京:清华大学出版社,2007.,2023/11/7,3,习题集,雍俊海.Java程序设计习题集(含参考答案).北京:清华大学出版社,2006.,2023/11/7,4,参考文献,本课件的参考文献与下面书的参考文献相同雍俊海.Java程序设计教程.北京:清华大学出版社,2007.雍俊海.Java程序设计习题集(含参考答案).北京:清华大学出版社,2006.雍
2、俊海.Java程序设计.北京:清华大学出版社,2004.,2023/11/7,5,第3章 面向对象程序设计,雍俊海(Jun-Hai Yong)清华大学软件学院School of Software,Tsinghua University,2023/11/7,6,本章总体纲要,类、域、方法和实例对象继承性多态性包(package)封装性关键字abstract、static、final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想,2023/11/7,7,面向对象程序设计整体介绍,面向对象程序设计(OOP)将数据(属性)和方法(行为或功能)封装到类(classes)中数据与
3、方法常常是紧密相关的对象(objects):类的实例对象或类本身三个基本特性:封装性、继承性和多态性,2023/11/7,8,比较,结构化程序设计对应的典型的计算机语言,例如:C面向操作(action)的函数(方法)是程序的基本单位面向对象程序设计对应的典型的计算机语言,例如:Java面向对象(object)的类(class)是程序的基本单位方法(函数)被封装在类中数据也常常被封装在类中,2023/11/7,9,类,类(class)本身也是一种对象类(class)同时也是实例对象的模板类(class)的基本组成:(成员)域和(成员)方法 每个对象:拥有内存存储成员域/方法静态的成员域/方法属于
4、类其它成员域/方法属于实例对象,2023/11/7,10,类的定义,类的定义格式如下:类修饰词 class 类名 extends 父类名 implements 接口名称列表 类体,2023/11/7,11,多个类组成的程序,很多Java程序需要多个类完成一项任务一个文件一般只含有一个类每个文件的长度一般不要太长最长一般不要超过2000行,2023/11/7,12,方法定义,与C+程序不同的是:每个方法都必须隶属于某个类方法定义的格式:方法修饰词 返回类型 方法名(方法的参数列表)方法体 返回类型:返回数据的数据类型除了构造方法,一般要求返回类型:要么为void,要么为某种数据类型int、byt
5、e、float或String最多只能返回一个值方法名:任何一个合法的标识符参数列表:用逗号(,)分隔开,2023/11/7,13,返回控制,如果没有值返回:return;/退出该方法或者遇到该方法的最后一个“”,则退出该方法如果有值返回:return 表达式;/退出该方法返回该表达式的值,2023/11/7,14,构造方法,构造方法在创建新的实例对象时起作用构造方法通常用来初始化实例对象,例如:初始化成员域或设置工作环境构造方法的特点:与类同名没有返回值可以含有多种构造方法(重载)但必须具有不同的参数列表,2023/11/7,15,默认的构造方法,如果没有显式地定义类的构造方法,则系统会为该类
6、定义一个默认的构造方法。该构造方法不含任何参数。这个默认的构造方法首先调用其父类的不含任何参数的构造方法,然后初始化新生成的实例的各个成员域变量默认值:基本数值类型:0;boolean:false;引用数据类型:null最好自己写构造方法一旦在类中定义了构造方法,系统就不会再创建这个默认的不含参数的构造方法。,2023/11/7,16,本章总体纲要,类、域、方法和实例对象继承性多态性包(package)封装性关键字abstract、static、final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想,2023/11/7,17,继承性,继承性 软件重用的一种方法根据已
7、有的类创建新的类采纳了旧的类的属性(域)及其行为(方法)增加了新的能力子类继承父类子类增加了新的成员域或新的成员方法有时可以理解成:(但不绝对!)子类对象是一种特殊的父类对象,2023/11/7,18,继承性的实现,采用关键字extendspublic class J_HelloApplet extends Applet/类J_HelloApplet结束,2023/11/7,19,关键字:instanceof,运算符:instanceof例如:if(p instanceof Circle)上面的条件为 true,当且仅当引用p所指向的对象是类Circle(或其子类)的实例对象,2023/11/
8、7,20,多重继承,在有些计算机语言中,允许一个类有多个直接父类。这种继承关系称为多重继承Java不支持多重继承Java 允许一个类有多个直接父接口(interface),2023/11/7,21,本章总体纲要,类、域、方法和实例对象继承性多态性包(package)封装性关键字abstract、static、final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想,2023/11/7,22,多态性,优点:代码重用简化设计、简化代码便于程序扩展,2023/11/7,23,多态性的种类,静态的多态性重载动态的多态性覆盖,2023/11/7,24,静态的多态性(重载),在编
9、译时就能够被识别针对的是同一个类内的同名方法例如:public int square(int x)return x*x;public double square(double x)return x*x;,2023/11/7,25,识别重载方法,识别标志:参数的个数、类型、数据类型的排列顺序返回值不能做为识别的标志,2023/11/7,26,动态多态性(覆盖),在程序运行时才被识别重写父类的方法要求相同的声明例如:public class J_HelloApplet extends JApplet public void paint(Graphics g)g.clearRect(0,0,getW
10、idth(),getHeight();/清除背景 g.drawString(小应用程序,您好!,10,20);/方法paint结束/类J_HelloApplet结束,2023/11/7,27,源程序:J_Teacher.Java,/文件名: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_workY
11、ear);/方法mb_printInfo结束/类J_Employee结束,2023/11/7,28,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结束 p
12、ublic 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.Java,2023/11/7,29,编译、运行&结果,2023/11/7,30,本章总体纲要,类、域、方法和实例对象继承性多态性包(package)封装性关键字abstract、static、final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想,2023/11/
13、7,31,包,可以将一组相关的类或接口封装在包(package)里,从而更好地管理已经开发的Java代码包含组织类与接口的目录结构方便程序重用,2023/11/7,32,Java 包,Java系统提供了很多已经写好的包数学计算、输入/输出、字符串操作尽量利用已有的包、避免重复工作使用包中类利用import 语句指定类的位置例如:import javax.swing.JApplet;,2023/11/7,33,包,包java.lang包java.util,2023/11/7,34,本章总体纲要,类、域、方法和实例对象继承性多态性包(package)封装性关键字abstract、static、fi
14、nal和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想,2023/11/7,35,类成员的封装性,成员(域或方法)的访问控制方式:1)public2)private3)protected4)default(缺省方式),2023/11/7,36,成员的访问控制方式:public,则该成员可以被任何类中的方法访问表明对外开放的方式少量(或者没有)public 域部分 public 方法,2023/11/7,37,成员的访问控制方式:private,目的:隐藏具体的实现细节只有同一个类的成员方法才能访问私有成员域常常是private 采用 public“get”方法读取数据采
15、用 public“set”方法写数据,2023/11/7,38,成员的访问控制方式:protected,介于public 和private之间同一个包内的所有类的所有方法都能访问该成员如果不在同一个包内的类的方法要访问该成员,则该类必须是该成员所在的类的子类,2023/11/7,39,成员的访问控制方式:default(缺省方式),只有在同一个包内的类的方法才能访问该方法,2023/11/7,40,类成员封装性总结,2023/11/7,41,本章总体纲要,类、域、方法和实例对象继承性多态性包(package)封装性关键字abstract、static、final接口内部类变量作用域范围和参数传
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 程序设计 雍俊海 第三
链接地址:https://www.31ppt.com/p-6510035.html