《Java与面向对象程序设计.pptx》由会员分享,可在线阅读,更多相关《Java与面向对象程序设计.pptx(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java程序设计程序设计第一章第一章 Java与面向对象程序设计与面向对象程序设计叶保留叶保留叶保留叶保留南京大学计算机科学与技术系南京大学计算机科学与技术系南京大学计算机科学与技术系南京大学计算机科学与技术系2主要内容主要内容vJavaJava语言简介语言简介语言简介语言简介v面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计vJavaJava中的类、方法与变量中的类、方法与变量中的类、方法与变量中的类、方法与变量3Java发展背景发展背景v发展里程发展里程发展里程发展里程1991OAK1991OAK(James GoslingJames Gosling)1994WWW1994
2、WWW快速增长快速增长快速增长快速增长从语言发展成平台从语言发展成平台从语言发展成平台从语言发展成平台(J2EE(J2EE vs.vs.NET).NET)v典型语言的发展典型语言的发展典型语言的发展典型语言的发展现代编程语言的诞生:现代编程语言的诞生:现代编程语言的诞生:现代编程语言的诞生:C C语言语言语言语言 对编程方法的新需要:对编程方法的新需要:对编程方法的新需要:对编程方法的新需要:C+C+语言语言语言语言网络时代的到来:网络时代的到来:网络时代的到来:网络时代的到来:JavaJava语言的出现语言的出现语言的出现语言的出现Java语语言言简简介介4Java语言的特点语言的特点vJa
3、vaJava是什么?是什么?是什么?是什么?JavaJava灵魂:灵魂:灵魂:灵魂:字节码字节码字节码字节码 JavaJava内涵:丰富的类库内涵:丰富的类库内涵:丰富的类库内涵:丰富的类库 vJavaJava特性特性特性特性平台无关性平台无关性平台无关性平台无关性目标代码目标代码目标代码目标代码“没有因机器的不同而不同没有因机器的不同而不同没有因机器的不同而不同没有因机器的不同而不同”或或或或“由编译器由编译器由编译器由编译器决定决定决定决定”安全性强安全性强安全性强安全性强沙箱机制沙箱机制沙箱机制沙箱机制支持多线程支持多线程支持多线程支持多线程面向对象面向对象面向对象面向对象封装性、多态性
4、、继承性、动态链接封装性、多态性、继承性、动态链接封装性、多态性、继承性、动态链接封装性、多态性、继承性、动态链接Java语语言言简简介介5Java语言的编译机制语言的编译机制Java语语言言简简介介6Java语言执行机制语言执行机制源源程程序序Java编译器编译器SPARCPentiumPower PC中中间间码码Power PCPentiumSPARC二进制二进制源源程程序序SPARCPower PCPentiumPower PCPentiumSPARC编译器编译器二进制二进制Java解释器解释器技术特征:字节码技术特征:字节码技术特征:字节码技术特征:字节码+虚拟机技术虚拟机技术虚拟机技
5、术虚拟机技术Java语语言言简简介介7Java的执行流程的执行流程Java源程序源程序(.java文件文件)Java编译器编译器Java Bytecode(.class文件文件)Bytecode 载入器载入器Bytecode 解释器解释器系统执行平台系统执行平台语言定义语言定义publicprotectedprivatefinal取消指针取消指针自动回收自动回收垃圾垃圾Bytecode检查检查限定对象的限定对象的存取权限存取权限系统堆栈溢出系统堆栈溢出参数类型一致参数类型一致程序执行系统程序执行系统WWW浏览器浏览器限制限制Java小应用程序小应用程序的不正当使用的不正当使用Java语语言言简
6、简介介8Java虚拟机(虚拟机(JVM)JavainterpreterJust-In-TimecompilerRuntime SystemOperating SystemsHardware不同操作系统的虚拟机不同不同操作系统的虚拟机不同不同操作系统的虚拟机不同不同操作系统的虚拟机不同类似一个小巧而高效的类似一个小巧而高效的类似一个小巧而高效的类似一个小巧而高效的CPUCPU字节码是虚拟机的机器指令字节码是虚拟机的机器指令字节码是虚拟机的机器指令字节码是虚拟机的机器指令JavaJava字节代码运行的两种方式字节代码运行的两种方式字节代码运行的两种方式字节代码运行的两种方式1)interprete
7、r1)interpreter(解释方式解释方式解释方式解释方式)2)2)Just-In-TimeJust-In-Time(即时编译即时编译即时编译即时编译):有:有:有:有代码生成器代码生成器代码生成器代码生成器将字节代码转换成本机的机器将字节代码转换成本机的机器将字节代码转换成本机的机器将字节代码转换成本机的机器代码代码代码代码,然后然后然后然后可可可可以以较高速度以以较高速度以以较高速度以以较高速度执行执行执行执行。Java语语言言简简介介9Java语言与语言与C语言的差别语言的差别vvJava=Java=“C+C+”-“复杂性和奇异性复杂性和奇异性复杂性和奇异性复杂性和奇异性”+“安全性
8、和可移植性安全性和可移植性安全性和可移植性安全性和可移植性”vv无类外全局变量(与无类外全局变量(与无类外全局变量(与无类外全局变量(与C+C+不同)不同)不同)不同)vv数据类型长度固定数据类型长度固定数据类型长度固定数据类型长度固定vv取消自动类型转换,要求强制转换取消自动类型转换,要求强制转换取消自动类型转换,要求强制转换取消自动类型转换,要求强制转换vv不支持宏,没有不支持宏,没有不支持宏,没有不支持宏,没有#include#include 和和和和#define#definevv不再有不再有不再有不再有structurestructure ,unionunion及及及及typedef
9、typedefvv不再有函数、指针、多重继承不再有函数、指针、多重继承不再有函数、指针、多重继承不再有函数、指针、多重继承vv不再有不再有不再有不再有gotogotovv不再有操作符重载不再有操作符重载不再有操作符重载不再有操作符重载(Operator Overloading)(Operator Overloading)vv自动内存管理自动内存管理自动内存管理自动内存管理Java语语言言简简介介10主要内容主要内容vJavaJava语言简介语言简介语言简介语言简介v面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计vJavaJava中的类、方法与变量中的类、方法与变量中的类、方法
10、与变量中的类、方法与变量11面向对象思想的产生背景面向对象思想的产生背景v软件开发对程序设计的需求软件开发对程序设计的需求软件开发对程序设计的需求软件开发对程序设计的需求提高生产能力提高生产能力提高生产能力提高生产能力扩大处理范围扩大处理范围扩大处理范围扩大处理范围面向新的环境面向新的环境面向新的环境面向新的环境支持分布式协同处理支持分布式协同处理支持分布式协同处理支持分布式协同处理面面向向对对象象程程序序设设计计12面向对象思想的由来面向对象思想的由来v面向过程程序设计面向过程程序设计面向过程程序设计面向过程程序设计程序代码数据程序代码数据程序代码数据程序代码数据编程思想:围绕编程思想:围绕
11、编程思想:围绕编程思想:围绕“正在发生什么正在发生什么正在发生什么正在发生什么”编写代码,即用计算编写代码,即用计算编写代码,即用计算编写代码,即用计算机能够理解的逻辑来描述和表达待解决的问题及其具体机能够理解的逻辑来描述和表达待解决的问题及其具体机能够理解的逻辑来描述和表达待解决的问题及其具体机能够理解的逻辑来描述和表达待解决的问题及其具体的解决流程的解决流程的解决流程的解决流程程序执行机制:程序执行机制:程序执行机制:程序执行机制:代码作用于数据代码作用于数据代码作用于数据代码作用于数据主要特点:适合小规模求解,大规模系统代码控制困难主要特点:适合小规模求解,大规模系统代码控制困难主要特点
12、:适合小规模求解,大规模系统代码控制困难主要特点:适合小规模求解,大规模系统代码控制困难v面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计程序程序程序程序 =对象对象对象对象 +消息消息消息消息编程思想:编程思想:编程思想:编程思想:代码的相关数据代码的相关数据代码的相关数据代码的相关数据为核心点进行程序编写为核心点进行程序编写为核心点进行程序编写为核心点进行程序编写程序执行机制:程序执行机制:程序执行机制:程序执行机制:用数据控制对代码的访问用数据控制对代码的访问用数据控制对代码的访问用数据控制对代码的访问主要特点:代码与其相关数据被分离开来进行处理,有主要特点:代码与其相关
13、数据被分离开来进行处理,有主要特点:代码与其相关数据被分离开来进行处理,有主要特点:代码与其相关数据被分离开来进行处理,有利于程序规模的扩大,而程序的可维护性得到增强。利于程序规模的扩大,而程序的可维护性得到增强。利于程序规模的扩大,而程序的可维护性得到增强。利于程序规模的扩大,而程序的可维护性得到增强。面向对象实质性要素:面向对象实质性要素:面向对象实质性要素:面向对象实质性要素:抽象抽象抽象抽象面面向向对对象象程程序序设设计计13面向对象思想解决问题面向对象思想解决问题v对象对象对象对象 :表示现实世界中某个具体的事物表示现实世界中某个具体的事物表示现实世界中某个具体的事物表示现实世界中某
14、个具体的事物v事物分类事物分类事物分类事物分类 物质:物质:物质:物质:表达具体的事物表达具体的事物表达具体的事物表达具体的事物意识:意识:意识:意识:描述抽象的概念描述抽象的概念描述抽象的概念描述抽象的概念现实问题空间现实问题空间现实问题空间现实问题空间 面向对象解空间面向对象解空间面向对象解空间面向对象解空间 物质物质物质物质 对象对象对象对象(客观存在客观存在客观存在客观存在)意识意识意识意识 类类类类(抽象概念抽象概念抽象概念抽象概念)OOOO OObject-bject-OOrientedriented 面面向向对对象象程程序序设设计计14对象对象v真实世界对象:真实世界对象:真实世
15、界对象:真实世界对象:是一个实体,如汽车、电视是一个实体,如汽车、电视是一个实体,如汽车、电视是一个实体,如汽车、电视状态(如颜色、轮胎)状态(如颜色、轮胎)状态(如颜色、轮胎)状态(如颜色、轮胎)行为(停车、加速、减速)行为(停车、加速、减速)行为(停车、加速、减速)行为(停车、加速、减速)v软件对象:软件对象:软件对象:软件对象:一组变量和相关方法的集合一组变量和相关方法的集合一组变量和相关方法的集合一组变量和相关方法的集合状态:变量状态:变量状态:变量状态:变量行为:方法行为:方法行为:方法行为:方法v软件对象作用软件对象作用软件对象作用软件对象作用描述真实世界中的对象,如控制电动车的程
16、序描述真实世界中的对象,如控制电动车的程序描述真实世界中的对象,如控制电动车的程序描述真实世界中的对象,如控制电动车的程序为抽象概念建模为抽象概念建模为抽象概念建模为抽象概念建模,如如如如GUIGUI中的事件对象(按键中的事件对象(按键中的事件对象(按键中的事件对象(按键、按鼠标)按鼠标)按鼠标)按鼠标)面面向向对对象象程程序序设设计计15软件对象表示现实对象软件对象表示现实对象vv软件对象的状态:软件对象的状态:软件对象的状态:软件对象的状态:变量变量变量变量vv软件对象的行为:软件对象的行为:软件对象的行为:软件对象的行为:方法方法方法方法vv实例实例实例实例(instance)(inst
17、ance):特定对象特定对象特定对象特定对象vv实例变量实例变量实例变量实例变量(instance variable)(instance variable):有具体值的变量有具体值的变量有具体值的变量有具体值的变量vv软件对象内涵软件对象内涵软件对象内涵软件对象内涵现实世界:客观世界中的一个实体现实世界:客观世界中的一个实体现实世界:客观世界中的一个实体现实世界:客观世界中的一个实体计算机世界:一个可标识的存储区域计算机世界:一个可标识的存储区域计算机世界:一个可标识的存储区域计算机世界:一个可标识的存储区域软件对象的描述方法:软件对象的描述方法:软件对象的描述方法:软件对象的描述方法:类类类
18、类面面向向对对象象程程序序设设计计16类类v具有共同属性和行为的对象集合具有共同属性和行为的对象集合具有共同属性和行为的对象集合具有共同属性和行为的对象集合v描述对象的描述对象的描述对象的描述对象的基本原型基本原型基本原型基本原型 v定义一种对象所能拥有的数据和能完成的操作定义一种对象所能拥有的数据和能完成的操作定义一种对象所能拥有的数据和能完成的操作定义一种对象所能拥有的数据和能完成的操作v在面向对象的程序设计中,类是程序的基本单元在面向对象的程序设计中,类是程序的基本单元在面向对象的程序设计中,类是程序的基本单元在面向对象的程序设计中,类是程序的基本单元v类与对象的关系类与对象的关系类与对
19、象的关系类与对象的关系类是对象的抽象类是对象的抽象类是对象的抽象类是对象的抽象对象是类的实例对象是类的实例对象是类的实例对象是类的实例v类具有层次关系类具有层次关系类具有层次关系类具有层次关系面面向向对对象象程程序序设设计计17类的结构类的结构面面向向对对象象程程序序设设计计18类的实例类的实例面面向向对对象象程程序序设设计计19类对对象的伪代码描述类对对象的伪代码描述class Car int color_number;int door_number;int speed;void brake()void speedUp();void slowDown()计算机中计算机中计算机中计算机中的对象
20、的原型的对象的原型的对象的原型的对象的原型 现实生活中现实生活中现实生活中现实生活中的对象的对象的对象的对象面面向向对对象象程程序序设设计计20类与对象实例类与对象实例v在程序中操作对象是类的一个实例在程序中操作对象是类的一个实例在程序中操作对象是类的一个实例在程序中操作对象是类的一个实例:即对象即对象即对象即对象v创建一个对象:创建一个对象:创建一个对象:创建一个对象:Car obj=new Car()obj=new Car();v调用方法:调用方法:调用方法:调用方法:obj.obj.brake();面面向向对对象象程程序序设设计计21面向对象的三大特性面向对象的三大特性v封装封装封装封装
21、v继承继承继承继承v多态多态多态多态面面向向对对象象程程序序设设计计22封装概念封装概念 封装的实体封装的实体封装的实体封装的实体 =数据数据数据数据(属性属性属性属性)+)+方法方法方法方法(行为行为行为行为)vv把对象的所有组成部分组合在一起把对象的所有组成部分组合在一起把对象的所有组成部分组合在一起把对象的所有组成部分组合在一起vv定义程序如何引用对象的数据定义程序如何引用对象的数据定义程序如何引用对象的数据定义程序如何引用对象的数据vv使用使用使用使用方法方法方法方法将类的数据隐藏起来,控制用户对类的修改和访问将类的数据隐藏起来,控制用户对类的修改和访问将类的数据隐藏起来,控制用户对类
22、的修改和访问将类的数据隐藏起来,控制用户对类的修改和访问数据的程度数据的程度数据的程度数据的程度私有数据私有数据 方法方法 方法方法数据数据对象对象A对象对象B公有数据公有数据面面向向对对象象程程序序设设计计23封装效果封装效果v模块化模块化模块化模块化将一个复杂的系统分解为若干个模块,有特定关系的信将一个复杂的系统分解为若干个模块,有特定关系的信将一个复杂的系统分解为若干个模块,有特定关系的信将一个复杂的系统分解为若干个模块,有特定关系的信息尽可能在一个模块中息尽可能在一个模块中息尽可能在一个模块中息尽可能在一个模块中v信息隐蔽信息隐蔽信息隐蔽信息隐蔽将模块的细节部分对用户隐藏起来,用户只通
23、过受保护将模块的细节部分对用户隐藏起来,用户只通过受保护将模块的细节部分对用户隐藏起来,用户只通过受保护将模块的细节部分对用户隐藏起来,用户只通过受保护的接口访问某个模块的接口访问某个模块的接口访问某个模块的接口访问某个模块v外部程序存取状态变量要通过外部程序存取状态变量要通过外部程序存取状态变量要通过外部程序存取状态变量要通过方法方法方法方法方法可以允许可以拒绝方法可以允许可以拒绝方法可以允许可以拒绝方法可以允许可以拒绝方法访问的级别限制方法访问的级别限制方法访问的级别限制方法访问的级别限制面面向向对对象象程程序序设设计计24继承继承v一个对象获得另一个对象的属性的过程一个对象获得另一个对象
24、的属性的过程一个对象获得另一个对象的属性的过程一个对象获得另一个对象的属性的过程v父类父类父类父类和和和和子类子类子类子类之间共享数据和方法的机制之间共享数据和方法的机制之间共享数据和方法的机制之间共享数据和方法的机制v子类利用父类中定义的方法和变量就像它们属于子子类利用父类中定义的方法和变量就像它们属于子子类利用父类中定义的方法和变量就像它们属于子子类利用父类中定义的方法和变量就像它们属于子类本身一样类本身一样类本身一样类本身一样v继承性继承性继承性继承性具有传递性具有传递性具有传递性具有传递性v继承性包括继承性包括继承性包括继承性包括单继承单继承单继承单继承和和和和多重继承多重继承多重继承
25、多重继承v继承的作用继承的作用继承的作用继承的作用使软件系统具有开放性使软件系统具有开放性使软件系统具有开放性使软件系统具有开放性更好地进行抽象与分类更好地进行抽象与分类更好地进行抽象与分类更好地进行抽象与分类增强代码的重用率增强代码的重用率增强代码的重用率增强代码的重用率提高可维护性提高可维护性提高可维护性提高可维护性面面向向对对象象程程序序设设计计25父类与子类关系父类与子类关系 子类子类继承部分个性部分父类父类共性部分面面向向对对象象程程序序设设计计26继承实例继承实例bicycle(super class)Mountain bikesRacing bikesTandem bikessu
26、b class面面向向对对象象程程序序设设计计27单继承与多继承单继承与多继承单继承单继承多重继承多重继承设备输出设备I/O设备输入设备面面向向对对象象程程序序设设计计28继承的伪代码描述继承的伪代码描述class Car int color_number;int door_number;int speed;push_break()add_oil()class Trash_Car extends Car double amount;fill_trash()面面向向对对象象程程序序设设计计29覆盖覆盖v在子类中重新定义父类中已有的方法在子类中重新定义父类中已有的方法在子类中重新定义父类中已有的方
27、法在子类中重新定义父类中已有的方法class Car int color_number;int door_number;int speed;push_break()speed=0;add_oil()class Trash_Car extends Car double amount;fill_trash()push_break()speed=speed-10;面面向向对对象象程程序序设设计计30多态多态v允许一个允许一个允许一个允许一个接口接口接口接口被多个同类动作所使用被多个同类动作所使用被多个同类动作所使用被多个同类动作所使用具体使用哪个动作取决于应用场合具体使用哪个动作取决于应用场合具体使
28、用哪个动作取决于应用场合具体使用哪个动作取决于应用场合v当不同的对象收到相同的消息时,产生不同动作当不同的对象收到相同的消息时,产生不同动作当不同的对象收到相同的消息时,产生不同动作当不同的对象收到相同的消息时,产生不同动作v实质上是实质上是实质上是实质上是使用一个名称来定义不同的方法使用一个名称来定义不同的方法使用一个名称来定义不同的方法使用一个名称来定义不同的方法这些方法执行类似的但又不同的操作,即以相同的接口这些方法执行类似的但又不同的操作,即以相同的接口这些方法执行类似的但又不同的操作,即以相同的接口这些方法执行类似的但又不同的操作,即以相同的接口来访问功能不同的函数,从而实现来访问功
29、能不同的函数,从而实现来访问功能不同的函数,从而实现来访问功能不同的函数,从而实现“一个接口,多种方一个接口,多种方一个接口,多种方一个接口,多种方法法法法”面面向向对对象象程程序序设设计计31多态的伪代码描述多态的伪代码描述v在同一个类中至少有两个方法用同一个名字,但有在同一个类中至少有两个方法用同一个名字,但有在同一个类中至少有两个方法用同一个名字,但有在同一个类中至少有两个方法用同一个名字,但有不同的参数不同的参数不同的参数不同的参数类类void show(int int_num)void show(float double_num)void show(int int_num,float
30、 float_num)1231.23123,1.23面面向向对对象象程程序序设设计计32面向对象中的消息面向对象中的消息v面向对象程序设计范型特征面向对象程序设计范型特征面向对象程序设计范型特征面向对象程序设计范型特征程序程序程序程序=对象对象对象对象+消息消息消息消息面向对象面向对象面向对象面向对象=对象对象对象对象+类类类类+继承继承继承继承+通信通信通信通信v软件对象通过相互间传递消息来相互作用和通信软件对象通过相互间传递消息来相互作用和通信软件对象通过相互间传递消息来相互作用和通信软件对象通过相互间传递消息来相互作用和通信v一个消息由三部分组成一个消息由三部分组成一个消息由三部分组成一
31、个消息由三部分组成接受消息的对象接受消息的对象接受消息的对象接受消息的对象要完成方法的名字要完成方法的名字要完成方法的名字要完成方法的名字方法需要的参数方法需要的参数方法需要的参数方法需要的参数对象对象B对象对象 Amessage面面向向对对象象程程序序设设计计33面向对象编程思路面向对象编程思路v客观世界由各种对象组成客观世界由各种对象组成客观世界由各种对象组成客观世界由各种对象组成任何事物都是对象任何事物都是对象任何事物都是对象任何事物都是对象复杂的对象可以由比较简单的对象以某种方式组合而成复杂的对象可以由比较简单的对象以某种方式组合而成复杂的对象可以由比较简单的对象以某种方式组合而成复杂
32、的对象可以由比较简单的对象以某种方式组合而成v把所有对象都划分成各种对象类把所有对象都划分成各种对象类把所有对象都划分成各种对象类把所有对象都划分成各种对象类每个对象类都定义了一组数据和一组方法每个对象类都定义了一组数据和一组方法每个对象类都定义了一组数据和一组方法每个对象类都定义了一组数据和一组方法v按照子类与父类的关系,把若干个对象类组成一个按照子类与父类的关系,把若干个对象类组成一个按照子类与父类的关系,把若干个对象类组成一个按照子类与父类的关系,把若干个对象类组成一个层次结构的系统层次结构的系统层次结构的系统层次结构的系统v对象彼此之间仅能通过传递消息互相联系对象彼此之间仅能通过传递消
33、息互相联系对象彼此之间仅能通过传递消息互相联系对象彼此之间仅能通过传递消息互相联系面面向向对对象象程程序序设设计计34面向对象思想的优点面向对象思想的优点v与人类习惯的思维方法一致与人类习惯的思维方法一致与人类习惯的思维方法一致与人类习惯的思维方法一致v可重用性可重用性可重用性可重用性v可扩展性可扩展性可扩展性可扩展性v可管理性可管理性可管理性可管理性面面向向对对象象程程序序设设计计35对象的关系对象的关系v包含包含包含包含当对象当对象当对象当对象A A 是是是是对象对象对象对象B B 的的的的属性属性属性属性时,称对象时,称对象时,称对象时,称对象B B包含包含包含包含对象对象对象对象A A
34、v继承继承继承继承当对象是对象当对象是对象当对象是对象当对象是对象B B的的的的特例特例特例特例时,称对象时,称对象时,称对象时,称对象A A继承继承继承继承了对象了对象了对象了对象B Bv关联关联关联关联当对象当对象当对象当对象A A的的的的引用是引用是引用是引用是对象对象对象对象B B的的的的属性时属性时属性时属性时,称对象,称对象,称对象,称对象A A和对象和对象和对象和对象B B之间之间之间之间是是是是关联关系关联关系关联关系关联关系面面向向对对象象程程序序设设计计36面向对象的软件开发过程面向对象的软件开发过程v面向对象的分析面向对象的分析面向对象的分析面向对象的分析明白用户想要什么
35、明白用户想要什么明白用户想要什么明白用户想要什么v面向对象的设计面向对象的设计面向对象的设计面向对象的设计怎么做怎么做怎么做怎么做v面向对象的实现面向对象的实现面向对象的实现面向对象的实现具体编程具体编程具体编程具体编程面面向向对对象象程程序序设设计计37主要内容主要内容vJavaJava语言简介语言简介语言简介语言简介v面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计vJavaJava中的类、方法与变量中的类、方法与变量中的类、方法与变量中的类、方法与变量38Java类类class Car int car_number;void set_number(int car_num)
36、car_number=car_num;void show_number()System.out.println(“My car No.is:”+car_number);class CarDemo public static void main(String args)Car Democar=new Car();DemoCar.set_number(3838);DemoCar.show_number();My car number is 3838Java中中的的类类、方方法法与与变变量量39Java类的继承、关系类的继承、关系class Car int car_number;void set_n
37、umber(int car_num)car_number=car_num;void show_number()System.out.println(“My car No.is:”+car_number);class TrashCar extends Car int capacity;void set_capacity(int trash_car_capacity)capacity=trash_car_capacity;void show_capacity();System.out.println(“My capacity is:”+capacity);Java中中的的类类、方方法法与与变变量量
38、40Java类的继承、关系类的继承、关系vTrashCarTrashCar继承继承继承继承CarCar中的两个方法中的两个方法中的两个方法中的两个方法class CarDemo public static void main(String args)TrashCar DemoTrashCar=new TrashCar();DemoTrashCar.set_number(4949);DemoTrashCar.set_capacity(20);DemoTrashCar.show_number();DemoTrashCar.show_capacity();Java中中的的类类、方方法法与与变变量量4
39、1何时选择继承性何时选择继承性v一个很好的经验一个很好的经验一个很好的经验一个很好的经验:“B:“B是是是是一个一个一个一个A A吗吗吗吗?”?”如果是则让如果是则让如果是则让如果是则让B B做做做做A A的子类的子类的子类的子类常犯的错误常犯的错误A有有一个一个B吗吗?例如让汽例如让汽车轮子成为汽车的子类是错误的车轮子成为汽车的子类是错误的Java中中的的类类、方方法法与与变变量量42Java类的定义及严格修饰字类的定义及严格修饰字类的修饰字类的修饰字 class 类名称类名称 extends 父类名称父类名称 .public,abstract,final或者没有或者没有变量修饰字变量修饰字 变量数据类型变量数据类型 变量名变量名1,变量名变量名2=变量初值变量初值;方法修饰字方法修饰字 方法的返回值类型方法的返回值类型 方法名称方法名称(参数参数1,参数参数2,/方法的内容方法的内容方法和变量的定义及修饰字方法和变量的定义及修饰字public、protected、privateJava中中的的类类、方方法法与与变变量量Java程序设计程序设计第一章第一章 Java与面向对象程序设计与面向对象程序设计叶保留叶保留叶保留叶保留南京大学计算机科学与技术系南京大学计算机科学与技术系南京大学计算机科学与技术系南京大学计算机科学与技术系
限制150内