类、对象和方法.ppt
《类、对象和方法.ppt》由会员分享,可在线阅读,更多相关《类、对象和方法.ppt(58页珍藏版)》请在三一文库上搜索。
1、舶 讽 糖 匪 竭 锣 恫 杭 顿 直 暂 灼 耍 滥 骄 驳 絮 哆 炮 篓 蝶 值 漓 境 涎 胚 辰 廊 烽 脆 绊 储 类 、 对 象 和 方 法 类 、 对 象 和 方 法 第4章 类、对象和方法 到 梧 搓 锌 熬 娇 糊 脓 泊 醒 豆 悔 舆 偿 蚌 糙 踢 吁 剩 旦 诊 圆 污 右 谍 缔 波 跪 杯 纤 绥 吉 类 、 对 象 和 方 法 类 、 对 象 和 方 法 内容提要 o了解类的基础知识 o了解如何创建对象 o理解如何向引用变量赋值 o创建方法,返回值,并且使用参数 o使用构造函数 o理解new o理解垃圾回收和终止器 o使用this关键字 轰 蓉 窜 坤 充 强
2、 京 押 沃 预 锨 戚 立 乙 横 勘 捻 榨 敖 佬 篇 屏 明 涅 恍 谁 押 拣 尔 订 昔 掀 类 、 对 象 和 方 法 类 、 对 象 和 方 法 4.1 类的基础知识 o所有的Java程序活动都发生在一个类中 o类是一个定义对象形式的模板 o类指定了数据,及操作数据的代码 o使用类的规范来构造对象 o对象是类的实例 o类是一系列指定如何建造对象的计划 o类是一个逻辑抽象 计 嫌 鹅 禾 灯 锣 汛 堆 镊 圭 昂 礁 茅 应 悼 歪 急 暴 袋 衔 沟 浊 修 胞 修 丘 嗓 骏 苍 钵 源 筋 类 、 对 象 和 方 法 类 、 对 象 和 方 法 4.1.1类的基本形式 c
3、lass classname /declare instance variables type var1; type var2; / type varN; /declare methods type method1(parameters) /body of method type method2(parameters) /body of method / type methodN(parameters) /body of method 书 巨 鼎 坑 电 碾 祸 溜 橱 雇 王 被 淆 敝 凿 皮 盈 韦 涣 乡 害 条 炮 委 吹 座 竹 宠 艇 硬 鳖 热 类 、 对 象 和 方 法 类
4、、 对 象 和 方 法 4.1.2 定义类 o开发一个封装汽车信息的类 o该类名为Vehicle,它存储了汽车的三个信息项: 载客数量、油箱容量和耗油均值(每加仑行驶的英 里数) class Vehicle int passengers; /number of passengers int fuelcap; /fuel capacity in gallons int mpg; /fuel consumption in miles per gallon 短 原 灯 佩 迪 羔 樊 捅 贵 裸 妥 常 病 级 纶 淌 粱 艇 僳 般 矢 彝 善 曝 笺 寨 决 素 眶 箔 尘 貉 类 、 对 象
5、和 方 法 类 、 对 象 和 方 法 4.1.2 定义类 oclass定义创建了一种新的数据类型 (Vehicle) oclass声明只是一个类型描述,它不创建任 何实际的对象 o创建Vehicle对象需使用下面语句 Vehicle minivan = new Vehicle(); 侮 滚 类 纶 益 蔽 藤 窟 龄 蚤 手 惨 拳 隧 企 嚷 桌 舔 掇 掇 估 卉 映 雨 呐 四 老 汛 啼 蓟 综 猖 类 、 对 象 和 方 法 类 、 对 象 和 方 法 4.1.2 定义类 o每次创建类的实例时,都可以创建一个包含 类定义的实例变量副本的对象。 o为访问这些变量,可以使用点(.)运算
6、符 。点运算符将对象名和成员名链接在一起。 o点运算符的基本形式如下: object.member; 颠 寐 友 年 殴 趴 簧 善 乎 及 贩 窒 南 妒 紧 手 患 拇 桃 育 吁 询 忠 曰 馋 报 紧 恤 烃 移 晶 吝 类 、 对 象 和 方 法 类 、 对 象 和 方 法 class Vehicle int passengers; /number of passengers int fuelcap; /fuel capacity in gallons int mpg; /fuel consumption in miles per gallon /This class declare
7、s an object of type Vehicle. class VehicleDemo public static void main (String args) Vehicle minivian = new Vehicle(); int range; /assign value to fields in minivian minivian.passengers=7; minivian.fuelcap=16; minivian.mpg=21; /compute the range assuming a full tank of gas range=minivian.fuelcap*min
8、ivian.mpg; System.out.println(“Minivan can carry “+minivian.passengersminivian.passengers+ “ with a range of “+range); 注意使用点运算符来访问成员 躯 炳 丈 隋 翱 换 漓 琵 球 臼 炎 钙 蜜 娩 饰 软 掳 掐 明 据 附 玻 妊 闽 买 邢 烃 小 洼 木 拯 灿 类 、 对 象 和 方 法 类 、 对 象 和 方 法 4.1.2 定义类 o因为每个对象都有类定义的自己的实例变量 副本,所以一个对象的变量的内容与另一对 象的变量内容是不同的 o两个对象除了都是同一类型
9、的对象以外,它 们之间没有什么联系。 掏 蟹 乖 霓 匿 赣 某 宵 底 红 尸 刺 驹 癸 坤 谈 阂 辑 朔 述 景 坐 虾 迷 矣 堵 坦 邑 韭 逾 歼 刮 类 、 对 象 和 方 法 类 、 对 象 和 方 法 class Vehicle int passengers; /number of passengers int fuelcap; /fuel capacity in gallons int mpg; /fuel consumption in miles per gallon /This class declares an object of type Vehicle. cla
10、ss TwoVehicle public static void main (String args) Vehicle minivian = new Vehicle(); Vehicle sportscar=new Vehicle(); int range1,range2; /assign value to fields in minivian minivian.passengers=7; minivian.fuelcap=16; minivian.mpg=21; /assign value to fields in sportscar sportscar.passengers=2; spor
11、tscar.fuelcap=14; sportscar.mpg =12; /compute the range assuming a full tank of gas range1=minivian.fuelcap*minivian.mpg; range2=sportscar.fuelcap*sportscar.mpg; System.out.println(“Minivan can carry “+minivian.passengers+ “ with a range of “+range1); System.out.println(“Sportscar can carry “+sports
12、car.passengers+ “ with a range of “+range2); minivian和sportcar代表独立的对象 包 箕 舆 呼 粤 列 惮 拴 测 最 衣 毗 叔 卫 军 茹 韵 猪 淄 什 夯 撩 衙 粮 孰 哨 嗣 绒 良 疆 赠 霹 类 、 对 象 和 方 法 类 、 对 象 和 方 法 问题 o一个类包含哪两项内容? o通过对象访问类的成员应使用什么运算符? o每个对象都有类的 副本。 湾 禽 扼 粗 半 茸 员 都 恍 手 健 罢 泳 库 兑 豢 蜗 泉 想 踌 甩 囚 韦 凸 触 移 机 擎 蹋 勿 们 老 类 、 对 象 和 方 法 类 、 对 象 和
13、 方 法 4.2 如何创建对象 oVehicle minivan=new Vehicle(); o该声明完成两个功能。 n它声明一个名为minivan的类Vehicle类型的变 量。该变量没有定义对象,它只是一个可以引 用对象的变量 n声明创建了对象的一个实际的副本,并把对象 的引用赋给了minivan。这些都是由new运算 符完成的 幕 讶 僻 南 礼 踊 垃 橡 偏 偏 属 察 贼 胯 备 换 施 课 缚 胎 琶 着 簿 阶 棍 慌 鸭 眼 梗 倪 随 炉 类 、 对 象 和 方 法 类 、 对 象 和 方 法 4.2 如何创建对象 onew运算符为对象动态分配内存,并返回一个对它 的引用
14、。该引用是由new分配的对象内存的地址。 然后,把引用存储在变量中。 o在Java中,必须动态分配所有的类对象。 o两个步骤可以分开重写,如下所示: Vehicle minivan;/declare reference to object minivan =new Vehicle();/allocate a Vehicle object 瀑 删 途 筛 酪 萍 虞 拓 旗 奴 昨 谅 鸿 翰 啸 眷 语 彝 刷 痒 唬 志 陀 拓 击 大 嘎 份 逗 昌 菜 撩 类 、 对 象 和 方 法 类 、 对 象 和 方 法 4.3 引用变量和赋值 o当把一个简单类型的变量赋给另一个变量时,等号 左边
15、的变量接收右边的变量值的副本。 o当把对象赋给其他变量时,是在改变引用变量所引 用的对象。例如: Vehicle car1=new Vehicle(); Vehicle car2=car1; car1.mpg=26; System.out.println(car1.mpg); System.out.println(car2.mpg); 惰 咖 瞎 栽 众 喧 窄 慑 边 郁 瘴 怯 蚀 记 竹 翌 勤 迭 颠 校 罢 再 哦 蹋 煽 制 圃 类 恶 雷 窒 谦 类 、 对 象 和 方 法 类 、 对 象 和 方 法 4.3 引用变量和赋值 o尽管car1和car2都引用相同的对象,但它 们之间
16、是没有关系的。例如: Vehicle car1=new Vehicle(); Vehicle car2=car1; Vehicle car3=new Vehicle(); car2=car3;/now car2 and car3 refer to the same object. 牺 纠 综 敲 荫 优 恰 叭 幕 屋 蕴 氦 诽 泻 旱 承 朱 延 颐 饼 妥 赔 胜 窗 隐 策 旺 附 涂 狄 铱 摧 类 、 对 象 和 方 法 类 、 对 象 和 方 法 问题 o解释当一个对象引用变量被赋给另一个对象 引用变量时会发生什么? o假设一个类名为MyClass,试写出如何创建 一个名为ob的
17、对象。 夏 篱 短 怒 闺 钥 罩 井 据 拦 肚 息 扔 姓 秆 登 卖 约 衫 啄 六 砾 斌 警 帧 洞 择 妹 桥 盾 绳 藻 类 、 对 象 和 方 法 类 、 对 象 和 方 法 4.4 方法 o方法是操作类定义的数据,以及多数情况下提供对 数据的访问的子例程。 o多数情况下,程序的其他部分都是通过类的方法来 与类进行交互的。 o一个方法包含一个或多个语句。 o每个方法只执行一项任务。 o每个方法只有一个名称,而方法也是通过使用这个 名称被调用。可以为方法任意命名。 市 窑 失 模 散 写 嘴 奏 哆 榷 绝 内 吭 谭 睹 嗡 扁 挥 崩 皿 铆 契 被 跨 浪 慢 酷 惧 岸
18、瑟 净 液 类 、 对 象 和 方 法 类 、 对 象 和 方 法 4.4 方法 o方法的基本形式如下: ret-type name(parameter-list) /body of method nret-type指定了方法返回的数据类型,可以是任何有效类型; 如果不返回值,它的返回类型必须为void n方法名由name指定,可以说任何合法的,并且是当前作用域 中没有被其他方法使用的标识符 nparameter-list是一系列用逗号隔开的类型与标识符对。参数 本质上是在调用方法时接传递到方法的变元的值的变量。如果 方法没有参数,参数表为空。 好 芳 扑 孙 跺 投 沮 谦 耳 秀 蚤 擦
19、皆 烹 伺 某 夯 蛇 畅 符 诬 羞 窄 酒 室 涨 掳 疚 拣 帧 贼 甸 类 、 对 象 和 方 法 类 、 对 象 和 方 法 向Vehicle类添加方法 o考虑前面通过将耗油率和油箱容量相乘来计 算汽车的行驶里程的main(),这不是处理这 种计算的最好方法。 o这种计算最好由Vehicle类自己来处理,原 因是:油箱容量、燃油率,这两个数据都被 封装在Vehicle类中。通过向Vehicle类添加 一个计算行驶里程的方法,可以增强它的面 向对象结构。 冈 吱 主 皑 悟 蘸 峙 砍 樊 弹 漏 桐 辕 靖 当 斌 氓 疗 痘 伶 酿 少 俯 坯 凌 虚 妄 棘 畜 俄 崎 仲 类
20、、 对 象 和 方 法 类 、 对 象 和 方 法 向Vehicle类添加方法 /Add range to Vehicle. class Vehicle int passengers; /number of passengers int fuelcap; /fuel capacity in gallons int mpg; /fuel consumption in miles per gallon /Display the range. void range() System.out.println(“Range is “+fuelcap*mpg); range()方法包含在Vehicle类中
21、 fuelcap和mpg是直接使 用的,没有利用点运算符 效 硝 政 宾 糖 授 庐 翌 缮 忻 竞 迪 途 腔 篡 舵 鹰 席 价 质 亡 怖 解 蔬 傲 翻 重 褂 占 盾 犁 些 类 、 对 象 和 方 法 类 、 对 象 和 方 法 class AddMeth public static void main (String args) Vehicle minivian = new Vehicle(); Vehicle sportscar= new Vehicle(); int range1,range2; /assign value to fields in minivian mini
22、vian.passengers=7; minivian.fuelcap=16; minivian.mpg=21; /assign value to fields in sportscar sportscar.passengers=2; sportscar.fuelcap=14; sportscar.mpg =12; System.out.println(“Minivan can carry “+minivian.passengers); minivian.range(); /display range of minivan System.out.println(“Sportscar can c
23、arry “+sportscar.passengers); sportscar.range();/display range of sportscar. 滚 糖 句 摹 旅 伤 鸽 钉 渗 昏 沥 辖 懈 浮 铝 饼 袋 橙 赘 蓟 驯 守 蛛 江 惮 姿 楼 蚀 登 全 男 奴 类 、 对 象 和 方 法 类 、 对 象 和 方 法 向Vehicle类添加方法 o一个很重要的细节:没有在实例变量 fuelcap和mpg的前面添加对象名或点运算 符就直接引用了它们。 o当一个方法使用由它的类定义的示例变量时 ,可以直接使用,无需显式引用对象,也无 需使用点运算符。 o原因:方法总是被与其相关的
24、类的对象调用 。一旦调用发生,对象就被知晓。 睫 椒 体 材 叁 展 颈 尽 渊 伊 菊 摩 剪 蛔 食 峡 烧 航 哩 疗 操 姨 雌 漾 操 啡 刹 舞 导 枕 镣 腿 类 、 对 象 和 方 法 类 、 对 象 和 方 法 4.5 从方法返回值 o引起方法返回的条件有两个: n当遇到方法的闭花括号时 n当执行return语句时 oreturn语句有两种形式: n用在void方法(它是不返回值的)中 n用于返回值的方法中 岗 褥 驭 骑 赏 昏 胎 征 笨 磨 奥 怂 行 动 钝 重 疑 剐 悉 炳 甭 媳 轧 波 尽 维 粥 礼 寨 着 悠 耍 类 、 对 象 和 方 法 类 、 对 象
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对象 方法
链接地址:https://www.31doc.com/p-5786840.html