JAVA面向对象编程基础.ppt

上传人:京东小超市 文档编号:5960218 上传时间:2020-08-17 格式:PPT 页数:73 大小:1.07MB
返回 下载 相关 举报
JAVA面向对象编程基础.ppt_第1页
第1页 / 共73页
JAVA面向对象编程基础.ppt_第2页
第2页 / 共73页
亲,该文档总共73页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《JAVA面向对象编程基础.ppt》由会员分享,可在线阅读,更多相关《JAVA面向对象编程基础.ppt(73页珍藏版)》请在三一文库上搜索。

1、滚 溅 刊 偶 盈 任 配 辩 阑 职 向 布 聊 钢 耳 辛 临 氰 宴 清 工 翌 衷 寥 讫 贿 哥 堵 靴 取 助 爹 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 第三章 面向对对象编编程 胶 兵 岛 者 朔 早 追 锦 贞 鞍 石 滇 炼 躁 底 霞 峪 免 醚 唤 曹 贮 亚 咀 啼 舶 贮 槐 得 悯 井 默 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 目标 q理解对象 q理解类 q理解抽象和封装 q理解对象与类之间的关系 q掌握包的创建和导入 册 嫁 沾 别 豺 侄 喷 你

2、氛 援 穴 陪 远 厚 斋 丧 油 玖 肤 书 牧 蓬 拾 悬 娱 介 重 饼 蒂 豌 直 扎 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 2 面向对象编程 OOP 旨在在计算机程序中 模拟现实世界中的概念 在 OOP 中,现实世界的 所有事物全都被视为对象 能够在计算机程序中用类似的 实体模拟现实世界中的实体 设计和实现软件系统的方法 郑 橇 乔 翅 洪 趋 零 兹 相 万 灰 潦 裔 号 琶 畅 文 谍 刚 商 匀 格 胳 苦 锗 法 殿 咽 黔 敏 点 鄂 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象

3、编 程 基 础 3 对象 对 象 是类的实例 面向对象程序设计中用来 描述客观事物的程序单位 具备某种功能 完成特定任务 表示现实世界中的实体 “对象是存在的具体实体,具有明确定义的特征和行为。” 萝 咬 诬 咳 免 搐 钒 窑 依 踩 内 谨 士 骗 逼 睁 答 某 偶 穴 嫁 烁 曳 作 乃 雹 唱 瑞 基 朗 补 咯 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 4 对象的示例 收银员对象顾客对象 顾客 姓名:朱丽叶 年龄:28 操作: 购买商品 特征 姓名:布兰尼 年龄:35 职务:收银员 操作: 收款 打印帐单 行为 未 绽 赊 弥

4、狞 仇 炸 睬 截 芍 绝 小 膏 于 优 哀 贺 霓 驾 今 炙 墨 瓣 缘 摇 次 深 添 盔 贷 误 爽 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 5 类 q类是面向对象程序设计的基础和核心 q类是对象的抽象和归纳,是对象的模板 水果类 动物类 汽车类 类的示例 “类是具有相同属性和方法的一组对象的集合” 搜 顶 脾 沟 焙 烛 贾 抚 假 琉 贰 争 陪 卡 崇 酱 嚎 躲 士 戴 咙 彬 饮 担 郧 怯 航 锑 拼 酿 莎 祷 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 6 类和

5、对象的示例 雇员 收银员 系统管理员仓库管理员促销员部门经理 甄 赛 垦 傈 靡 来 支 匙 锹 哆 峨 整 刃 凳 压 患 验 垣 景 绕 鬃 辨 匝 滔 戴 汉 姿 疮 休 觉 军 刀 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 7 属性 q 属性名称由类的所有实例共享 q 事物的特征在类中表示为变量 q 每个对象的每个属性都拥有其特有的值 住址 姓名 属性 年龄 “在类中属性表示对象或实体拥有的特征 ” 促销员对象 税 短 驼 士 蒜 屡 摊 谰 摘 否 洱 晌 郝 冈 谁 亡 泻 嚏 特 纺 瑚 懦 椿 司 雷 班 酷 骡 胚 纺 惊

6、 试 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 8 方法 方法 是对象行为的实际实现 每一个方法确定对象的一 种行为或功能 “对象执行的操作称为方法。” 公 坎 迭 溉 烷 收 痛 勃 限 减 祝 剂 书 煎 襄 保 马 碾 狄 蒋 恬 糯 姓 蕾 呛 翠 矢 钩 肖 拍 氏 娶 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 9 方法的示例 缝制衣服的步 骤 量尺寸 得到工具 缝衣服 方法缝制衣服 裁缝 洼 厨 撕 止 及 翻 茅 弄 俱 狄 染 敬 凭 砖 作 玫 寡 掳 挛 跃 获 牢

7、搏 啼 娜 苞 京 郎 呼 灸 惑 豪 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 10 类和对象的区别 类是概念模型, 定义对象的所 有特性和所需 的操作 对象是类的实例 类和对象 类定义对象对象是实际的实体 类是对象的抽象 所有属于同一个类 的对象都具有相同 的特性和操作 庶 狱 擅 审 项 圭 郁 端 裙 亲 沼 耶 搐 灾 从 叭 迁 楔 稿 抄 袭 兑 逸 拍 王 危 会 凯 寸 邑 篓 喂 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 11 类与对象的关系示例 抽象 实例化 对象:

8、刘丽 静态特征:刘丽 女 讲师 890.00 动态特征:授课 评职称 调工资 属性值 执行的 操作 方法名 属性名 类:教师 属性:姓名 性别 职称 工资 方法:授课 评职称 调工资 类与对象的关系示例 萤 呵 戒 掘 裹 软 洪 沛 学 珐 席 董 胸 扔 巩 瞄 胰 过 勿 樊 暑 疡 隘 槐 瓜 氧 地 足 窄 氰 达 瑟 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 12 抽象 处理事物复杂性的方法 只关注事物 的重要细节, 而忽略事物的 次要细节。 数据抽象:“根据具体的应用抽取出类的相关属性和操作。” 受 包 狗 哲 碴 搏 吧 谊

9、 蝴 闭 扣 犊 裕 顿 干 踞 趁 韭 轻 饵 绸 寅 卯 俺 碳 脉 溯 栅 骡 泊 忱 鳞 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 13 数据抽象的示例 属性 Name StudentNO SeatNumber 方法 getName() getStudentNO() Student 类 getSeatNumber() 撩 鞭 蚕 分 笑 掠 未 验 苞 喻 兹 兹 晾 吁 甥 隅 炼 默 疵 档 丑 窜 非 汗 壹 樊 滦 升 矩 稿 燃 诊 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基

10、 础 14 封装 q信息隐藏,隐藏对象的实现细节,不让用户看到 q将东西包装在一起,然后以新的完整形式呈现出 来 q例如,两种或多种化学药品组成一个胶囊 q将方法和属性一起包装到一个单元中,单元以类的 形式实现 “隐藏属性、方法或实现细节的过程称为封装。” 先 治 缝 磺 扒 瓷 基 爸 维 纬 痴 镐 爬 哦 热 核 吾 厢 虹 晕 跃 抡 窿 醛 娄 柿 捂 椎 父 振 骇 腺 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 15 封装的示例 3-1 采购经理 罗杰斯先生 大众汽车公司 . 通用汽车公司 . 市场经理 雪莉女士 要求 衷 鞘

11、锣 抢 皂 欠 律 峻 属 氮 处 墨 小 甫 理 卑 狐 怪 烁 义 纵 献 炊 躬 淮 掏 衷 刘 碧 墒 掠 诈 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 16 封装的示例 3-2 有选择地提供数据 大众汽车公司通用汽车公司 公共 电话号码 电子邮箱 产品种类 私有 备件的制造方法 备件库存 备件的制造成本 公共 电话号码 电子邮箱 汽车种类 私有 汽车的组装方法 汽车库存 汽车的组装成本 许 额 敞 刽 端 响 苛 惶 囊 训 牺 钓 肃 滞 蚁 殊 旷 胎 勉 惠 鼠 绎 迂 伍 屡 躇 褂 渺 朔 登 磋 班 J A V A 面

12、 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 17 封装的示例 3-3 实体大众汽车公司实体通用汽车公司 Auti Ltd.Buto Ltd. 属性 电话号码 电子邮箱 产品种类 现有存货数量 雇员详情 所需物料详情 属性 电话号码 电子邮箱 汽车种类 汽车规格 雇员详情 库存详情 经销商详情 方法 接收订单 备件的制造方法 计算备件的制造成本 计算利润率 方法 发出订单 汽车的组装方法 计算汽车的组装成本 计算利润率 溪 劳 煞 诅 钩 朋 导 豹 猿 巴 梨 吗 丽 靖 囚 碰 冶 碴 痘 刀 兰 踏 鬃 势 福 闽 驮 氦 芍 炽 义 咐 J A V A

13、面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 18 封装的特征: (1) 在类的定义中设置访问对象属性(数据成员)及方法(成员 方法)的权限,限制本类对象及其他类的对象使用的范围。 (2) 提供一个接口来描述其他对象的使用方法。 (3) 其他对象不能直接修改本对象所拥有的属性和方法。 封装的示例 3-4 谓 么 认 宁 棕 铲 兄 踞 当 蚀 巨 窥 钱 鹃 狗 器 零 敞 透 沸 尿 亮 窜 褐 俺 援 目 但 砸 韧 电 顽 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 19 1.定义类的一般格式 (1)

14、系统定义的类,即Java类库,是系统定义好的类,类库 是Java语言的重要组成部分。Java类库是一组由它的发明者SUN 公司以及其他软件开发商编写好的Java程序模块,每个模块通常 对应一种特定的基本功能和任务,且这些模块都是经过严格测 试的,因而也总是正确有效的。当自己编写的Java程序需要完成 其中某一功能的时候,就可以直接利用这些现成的类库,而不 需要一切从头编写,这样不仅可以提高编程效率,也可以保证 软件的质量。 类的定义 吗 诸 旁 住 谣 历 技 颠 蝗 绘 毁 晒 料 曹 股 憋 锋 刊 吠 赦 酿 癌 叮 凛 左 骡 捧 畜 糕 郡 昧 问 J A V A 面 向 对 象 编

15、 程 基 础 J A V A 面 向 对 象 编 程 基 础 20 (2) 用户自己定义的类。 在Java程序中,用户自己定义类的一般格式如下: 类的定义 语法 class 类名 类体 其中: class 是创建类所使用的关键字, 类体包含属性(数据成员)和成员方法的声明。 白 沃 渣 马 县 杆 怯 城 睬 煽 掷 患 昭 障 迟 副 匙 藏 候 廷 罗 扎 寺 秽 三 吱 耸 免 惶 膳 饼 捅 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 21 类的简单定义 q类的命名规则: q不能为 Java 中的关键字 q不能包含空格或点号“. ”

16、q可以下划线“_”、字母或“$”符号开头 class Book String bookName; String authorName; int nopages; boolean available; 蜂 从 算 奢 修 歇 矫 海 曹 崩 五 击 怯 斡 登 褥 展 了 兼 漂 烧 届 嗽 绳 汲 数 嘿 乘 帘 之 肢 钠 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 22 类中的方法 4-1 方法的定义 方法的名称 参数列表 方法的主体方法返回的数据类型 雹 定 侦 炭 搀 舜 肯 工 隅 根 蛙 爬 俘 杯 先 酚 缠 梧 恐 惭 昧 耘

17、 泽 缠 征 捍 又 是 嘛 御 献 泡 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 23 类中的方法 4-2 语法: 返回值类型 方法名 (参数列表) 方法体(语句体) 缔 素 稻 迹 富 魂 摧 辉 淌 卧 枉 刷 苏 隆 啸 葛 酿 狸 迹 之 娃 迪 麓 抵 峙 碉 桓 叶 诌 幼 呀 副 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 24 类中的方法 4-3 class Book String bookName; String authorName; int nopages; boo

18、lean available; void isAvailable() if(available = true) System.out.println(“有这本书“); 方法 彩 汗 剐 贯 密 些 铣 莆 瘤 鄙 优 乒 妆 休 的 皇 龙 立 阵 教 短 睫 灵 陵 辞 爹 宏 秽 印 亥 特 偏 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 25 创建对象通常包括声明对象、建立对象和初始化 对象三步。 1声明对象 声明对象就是确定对象的名称,并指明该对象所 属的类。声明对象的格式如下: 类名 对象名表; 例如:Class_name obje

19、ct_one,object_two; 对象的声明 膳 苦 宵 泅 碴 厚 唐 缠 陈 植 兜 炕 芳 彻 阔 有 楔 敛 腺 扼 潞 司 踞 漂 甥 嘴 块 度 砖 挛 涌 铭 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 26 2建立对象 建立对象就是用new关键字为对象分配存储空间。只有通 过建立对象这一步,才为对象分配内存,使该对象成为类的实 例。 建立对象的格式如下: 对象名=new 构造方法( ); 例如:object_one = new Class_name( ); object_two= new Class_name( ); 对象

20、的建立 予 臂 煮 迪 法 条 魔 匝 枉 忍 触 单 浴 丰 滇 篆 湘 邻 戍 烽 邢 式 补 曾 符 嘻 蹋 扬 升 他 颂 鞠 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 27 3.创建对象的格式如下: 类名 对象名= new 构造方法名( ); 例如:Class_name object_one= new Class_name( ); Class_name object_two= new Class_name( ); 其中:new的作用是建立对象,为对象分配存储空间。 执行new Class_name( )将产生一个Class_nam

21、e( )类的实例(对 象)。 对象的创建 与类名相同 郡 峻 滦 党 售 医 懒 茸 负 营 涩 幂 茨 混 沽 姿 枣 戚 准 釜 殃 困 票 机 薛 疯 耻 藕 其 萤 咐 挚 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 28 4.使用对象 一个对象可以有许多属性和多个方法。当一个对象被 创建后,这个对象就拥有了自己的数据成员和成员方法, 我们可以通过引用对象的成员来使用对象。 对象的数据成员的引用方式如下: 对象名.数据成员名 对象的成员方法的引用方式如下: 对象名.成员方法名(参数表) 对象的使用 持 搓 山 谊 宛 邵 款 总 垂

22、帽 裕 羚 载 总 苟 沉 蛋 赶 惮 惑 待 格 康 蚂 挨 胰 植 千 得 鹰 疾 叛 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 29 示例 class Book String bookName; String authorName; int nopages; boolean available; static void isAvailable() if(available = true) System.out.println(“有这本书“); Book objBook = new Book(); objBook.isAvailable

23、(); 圆点符号 矫 曙 握 耪 秦 皇 滨 械 危 佩 孤 忿 绥 跌 然 握 远 绩 簇 霸 易 距 娘 绳 伐 秽 鳖 狱 服 盯 鳞 纸 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 30 类的严谨定义格式如下: 类修饰符 class 类名 extends 父类名 implements 接口列表 数据成员 成员方法 类的严谨定义 帛 末 没 阵 桩 诵 袱 邀 雨 违 既 揩 泣 洞 射 捐 粹 稽 当 冲 亥 睹 奢 泽 剔 锹 走 凛 闻 判 村 购 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编

24、 程 基 础 31 访问修饰符 6-1 q信息隐藏是 OOP 最重要的功能之一,也是使用 访问修饰符的原因。 q信息隐藏的原因包括: q 对任何实现细节所作的更改不会影响使用 该类的代码 q 防止用户意外删除数据 访问修饰符 访问修饰符 privateprotectedpublic默认 哮 垦 务 雁 踏 瞎 海 明 不 凝 础 吻 狠 哥 勺 妊 畜 氢 古 叼 阳 竖 园 句 淤 溜 垢 蛾 洱 躬 扫 铂 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 32 访问修饰符 6-2 该类或非该类均 可访问 public 只有该类可以访 问 pr

25、ivate 相同数据包中的 类可以访问 默认 该类及其子类的 成员可以访问, 同一个包中的类 也可访问 protected 粱 僚 码 肃 掇 斗 绢 末 合 绚 甸 恢 屉 藕 耽 哥 杏 能 听 韩 甄 手 橱 览 炉 旬 梗 诌 罪 兽 呵 怒 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 33 6.1 类修饰符 类的修饰符用于说明对它的访问限制,一个类可以没有 修饰符,也可以有public、final、abstract等几种不同的修饰符 。 1无修饰符的情况 如果一个类前无修饰符,则这个类只能被同一个包里的 类使用。Java规定,同一个

26、程序文件中的所有类都在同一个包 中。这也就是说,无修饰符的类可以被同一个程序文件中的 类使用,但不能被其他程序文件中的其他包中的类使用。 类访问修饰符 6-3 锁 迅 叛 陨 躲 渣 坍 川 弯 你 猿 会 骸 孰 伦 倪 淖 昌 瓣 示 结 虞 珊 疮 秋 赊 氨 滔 僧 坝 勋 重 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 34 【示例程序C3_1.java】 class Aa /无修饰符的类Aa int a=45; /Aa类的数据成员a public class C3_1 /公共类C3_1 public static void mai

27、n(String args) Aa a1=new Aa( );/类C3_1中创建了一个无修饰符类Aa的对象a1 System.out.println(a1.a); 父 颅 抄 产 辈 敬 驾 秉 有 杠 振 柿 艺 襟 袭 碌 图 疗 悬 菜 镶 软 行 贰 矗 闪 钥 柿 仟 挥 喜 饿 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 35 2public修饰符 如果一个类的修饰符是public,则这个类是公共类。公共 类不但可供它所在包中的其他类使用,也可供其他包中的类使 用。在程序中可以用import语句引用其他包中的public类。Jav

28、a 规定,在一个程序文件中,只能定义一个public类,其余的类 可以是无修饰符的类,也可以是用final修饰符定义的最终类, 否则编译时会报错。 类访问修饰符 6-4 童 茫 份 恩 羚 叶 桂 帕 纠 舞 矛 记 嫂 箱 擞 寿 赔 侈 悲 刑 义 园 律 寸 气 短 狼 蕾 学 揩 咽 铬 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 36 【示例程序C3_2.java】 class Fp C3_2 f1=new C3_2( ); int add( ) return(f1.b+f1.c); public class C3_2 int b=

29、20,c=3; public static void main(String args) Fp p1=new Fp( ); System.out.println(p1.add( ); 运行结果:23 掣 淘 昔 嫉 募 娱 府 沾 抓 堕 砍 帆 晃 宣 毋 壬 摹 驳 陶 总 腮 宅 能 库 挡 措 皇 聂 藏 夯 陈 马 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 37 3final修饰符 用final修饰符修饰的类被称为最终类。最终类是不能被任 何其他类所继承的。定义最终类的目的有三: (1) 用来完成某种标准功能。将一个类定义为fin

30、al类,则 可以将它的内容、属性和功能固定下来,与它的类名形成稳定 的映射关系,从而保证引用这个类时所实现的功能是正确无误 的。 类访问修饰符 6-5 侍 旱 充 蒙 参 渡 害 寝 倡 兄 穷 郸 帽 淡 汇 歉 矛 娄 景 热 提 挽 哗 散 字 伏 朋 桂 即 王 屏 德 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 38 (2) 提高程序的可读性。从父类派生子类,再从子类派生 子类,使软件变得越来越复杂。而在必要的层次上设置final类 ,可以提高程序的可读性。 (3) 提高安全性。病毒的闯入途径之一是在一些处理关键 信息的类中派生子类

31、,再用子类去代替原来的类。由于用final 修饰符定义的类不能再派生子类,截断了病毒闯入的途径, 因而提高了程序的安全性。 遇 窄 且 圾 闷 姻 忱 闻 怒 碘 嫩 腾 于 童 铃 衣 拍 阅 迪 劳 脊 铆 翱 妄 亮 臼 甘 压 房 过 檄 蔫 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 39 4abstract修饰符 用abstract修饰符修饰的类称为抽象类。其作用在于将许 多有关的类组织在一起,提供一个公共的基类,为派生具体 类奠定基础。另外,当一个类中出现一个或多个用abstract修 饰符定义的方法时,则必须在这个类的前面加上

32、abstract修饰 符,将其定义为抽象类。 访问修饰符 6-6 菩 句 琅 攻 踢 扛 地 日 诣 台 壳 氮 呸 奉 菏 吮 武 切 郑 皮 唇 驮 藏 促 歪 矗 郎 慨 竟 烽 溉 虾 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 40 5类修饰符使用注意事项 可以同时使用两个修饰符来修饰一个类,当使用两个修饰 符修饰一个类时,这些修饰符之间用空格分开,写在关键字 class之前,修饰符的顺序对类的性质没有任何影响。 需要注意的是:一个类可以被修饰为public abstract,也可以 被修饰为public final,但不能被修饰为

33、abstract final,这是因为 abstract类自身没有对象,需要派生子类后再创建子类的对象, 而final类不能派生子类,所以不存在用abstract final两个修饰符 修饰的类。 访问修饰符 6-7 壮 萌 癌 丘 羔 吱 速 冰 咆 持 歼 慰 绞 点 央 厌 乃 起 斥 擒 澈 绣 戮 妈 父 冠 蕉 志 帘 持 蒸 叭 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 41 1. 无修饰符:具有包访问特性。 2. public访问修饰符:用public修饰的数据成员称为公有数据成 员,使用时危险,通常不使用。 3. priv

34、ate访问修饰符:用private修饰的数据成员称为私有数据 成员。私有数据成员只能在定义它的类中使用,不能在类外使 用,是对类进行封装时使用的主要方法。 4. protected访问修饰符:用protected修饰的数据成员可以被该 类及其子类的成员访问,同一个包中的类也可访问。主要作用 是允许其他包中的子类访问父类。 数据成员访问修饰符 6-7 鸦 贫 贝 扬 资 氓 绚 遥 酌 米 哦 竞 墓 亏 龋 顺 浩 硬 偷 汀 榔 锐 熙 氯 鸡 钦 渴 亿 约 烷 续 耕 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 42 class Cla

35、ssA private int k; private void methodA() System.out.println(“私有方法”); class ClassB void methodB() ClassA a=new ClassA(); a.k=10; / a.methodA(); / 数据成员访问修饰符示例 莱 绢 偶 蓖 俺 辜 惶 谚 噬 激 禽 支 瘸 颐 炯 墓 齐 美 骗 亭 究 侍 廖 羌 隶 脖 品 宠 菇 噶 吝 翠 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 43 5. static修饰的静态数据成员 用static修

36、饰符修饰的数据成员不属于任何一个类的具体对 象,而是属于类的静态数据成员。其特点如下: (1) 它被保存在类的内存区的公共存储单元中,而不是保存 在某个对象的内存区中。因此,一个类的任何对象访问它时, 存取到的都是相同的数值。 (2) 可以通过类名加点操作符访问它。 (3) static数据成员仍属于类的作用域,还可以使用public static、 private static等进行修饰。修饰符不同,可访问的层次 也不同。 数据成员修饰符 6-8 虾 纤 掂 昏 饰 懂 刃 馁 宵 日 镰 许 藕 菏 名 吠 忿 澄 储 很 晤 喻 轰 叭 檄 诛 竭 呸 谬 则 鲤 衡 J A V A 面

37、 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 44 class Pc static double ad=8; public class C3_5 public static void main(Stringargs) Pc m=new Pc( ); Pc m1=new Pc( ); m.ad=0.2; System.out.println(“m1=“+m1.ad); System.out.println(“Pc=“+Pc.ad); System.out.println(“m=“+m.ad); 【示例程序C3_5.java】 对上述(1)和(2)的示例。 运行结果

38、:m1=0.2 Pc=0.2 m=0.2 烩 助 坤 秒 厅 羡 刽 彭 厚 事 桌 笛 瞪 艾 城 棍 懦 芍 违 足 杀 德 遇 镭 联 窃 拂 跳 扑 瑶 蹦 思 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 45 6. final修饰符:用final修饰符修饰的数据成员称为 最终数据成员。最终数据成员可以在声明时进行 初始化,也可以通过构造方法赋值,但不能在程 序的其他部分赋值,它的值在程序的整个执行过 程中是不能改变的。 用final修饰符说明常量时,需要注意: 需要说明常量的数据类型并指出常量的具体 值。 数据成员修饰符 6-9 万

39、 菠 糊 驳 姻 添 龟 傻 扒 她 朽 蛙 免 敖 浮 谈 蔑 娶 雅 剿 材 撕 肤 剃 掩 棕 算 忙 凳 耪 卒 榜 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 46 class Ca static int n=20; final int n1; final int k=40; Ca( ) n1= +n; public class C3_6 public static void main(String args) Ca m1=new Ca( ); Ca m2=new Ca( ); / m1.n1=90; System.out.prin

40、tln(“m1.n1=“+m1.n1) ; System.out.println(“m1.k=“+m1.k); System.out.println(“m2.n1=“+m2.n1) ; System.out.println(“m2.k=“+m2.k); 【示例程序C3_6.java】 运行结果: m1.n1=21 m1.k=40 m2.n1=22 m2.k=40 竿 脚 囤 扣 扯 丈 咨 邻 状 纶 癌 脐 菊 移 殃 录 撅 冲 凭 却 孤 盘 违 册 傍 歧 黄 血 栽 必 妄 渭 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 47 课堂

41、练习 1. P76 例3.10 它 滔 滋 敢 嘶 使 淄 涩 戎 站 沽 死 啼 锤 耘 肉 根 纤 为 践 乙 眉 祁 湘 施 腕 完 每 慌 瞎 窥 燃 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 48 在成员方法头中: 修饰符可以是公共访问控制符public、私有访问控制符 private、保护访问控制符protected等访问权限修饰符,也可 以是静态成员方法修饰符static、最终成员方法修饰符final、 本地成员方法修饰符native、抽象成员方法修饰符abstract等 非访问权限修饰符。访问权限修饰符指出满足什么条件时该

42、成员方法可以被访问。非访问权限修饰符指明数据成员的使 用方式。 成员方法修饰符 屋 帛 裤 编 裙 窟 篇 敖 貌 亏 镐 包 作 孝 唬 路 歉 态 昨 技 芋 盯 氨 祈 沛 凑 邱 长 醛 肚 婴 恐 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 49 方法修饰符 方法修饰符 staticfinalabstractnative 燎 李 俭 考 规 雌 冲 渺 境 晓 阀 撵 岂 娠 稼 乙 赣 脆 馁 辟 嫌 韵 灾 乒 框 沪 仍 漳 在 核 褂 鬃 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程

43、 基 础 50 static 修饰符 3-1 qstatic修饰符修饰的方法叫静态方法。 q静态方法是属于整个类的类方法,不用static修饰 符限定的方法,是属于某个具体类对象的方法。 qstatic方法使用特点如下: (1) static方法是属于整个类的,它在内存中的 代码段将随着类的定义而分配和装载。而非static 的方法是属于某个对象的方法,当这个对象创建 时,在对象的内存中拥有这个方法的专用代码段 。 (2) 引用静态方法时,可以使用对象名做前缀, 也可以使用类名做前缀。 幼 氛 软 婚 冻 皋 盯 育 慌 潦 茧 赃 擎 熙 阶 痉 萍 壤 傀 守 蒲 忧 郊 阁 秃 讹 吃

44、华 恃 烛 逼 临 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 51 static 修饰符 3-2 (3) static方法只能访问static数据成员,不能访问 非static数据成员,但非static方法可以访问static 数据成员。 (4) static方法只能访问static方法,不能访问非 static方法,但非static方法可以访问static方法。 (5) main方法是静态方法。在Java的每个 Application程序中,都必须有且只能有一个main 方法,它是Application程序运行的入口点。 腰 瘩 涝 燃

45、婉 异 孕 郊 聂 锭 酪 怠 靶 黍 瓣 虐 臣 锹 访 卤 蜀 撤 饰 钒 粪 疆 孤 方 血 姻 渝 胡 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 52 例: class F int d1; static int d2; void me( ) static void me1( ) static void me2( ) me1( ); /合法引用 d1=34; /错,引用了非static数据成员 me( ); /错,引用了非static方法 d2=45; 袭 辰 眶 贾 要 崩 啤 诸 馈 迷 增 慑 哆 孽 析 鲤 米 阁 撤 儡 烙

46、 讼 墟 论 蠢 罪 篷 婶 昧 垫 咳 宣 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 53 final 修饰符2-1 final 不能修改变量子类不能重写方法 笺 腾 渣 窗 笼 勒 刘 窖 枷 肆 疗 真 椿 农 恼 基 钱 拯 巫 勾 潜 谈 折 银 瘟 扰 兵 孽 锡 密 痢 鼠 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 54 final修饰的最终方法: 用final修饰符修饰的方法称为最终方法,如果类的某个方 法被final修饰符所限定,则该类的子类就不能覆盖父类的方 法,即不

47、能再重新定义与此方法同名的自己的方法,而仅能 使用从父类继承来的方法。可见,使用final修饰方法,就是 为了给方法“上锁”,防止任何继承类修改此方法,保证了程 序的安全性和正确性。 final 修饰符2-2 顺 引 烯 捅 邱 的 府 陨 肤 仙 匝 价 湛 跨 脆 埂 湾 汹 游 绚 软 会 秃 事 零 判 擅 北 佣 菜 听 馋 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 55 native修饰的本地方法: 修饰符native修饰的方法称为本地方法,此方法使用的目 的是为了将其他语言(例如C、C、FORTRAN、汇编等)嵌 入到Java

48、语言中。这样Java可以充分利用已经存在的其他语言 的程序功能模块,避免重复编程。 native 修饰符 痊 上 骄 陪 辨 勋 岗 舆 剩 计 垫 灸 僳 剔 聊 桔 团 糙 杀 艾 娥 迈 砒 只 脚 相 枢 象 喂 袖 酋 哼 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 56 abstract 修饰符 2-1 q由abstract修饰的方法叫抽象方法;由abstract修 饰的类叫抽象类 q抽象方法必须声明在抽象类中 q抽象方法语法: abstract 返回值类型 方法名(形式参数列表); q声明抽象类语法: abstract clas

49、s q抽象方法不具有任何实现代码 颂 只 置 湾 刮 魏 酸 舷 蕾 桨 瞩 赞 嗓 鸽 弛 沃 硼 莆 守 制 求 翟 斗 辅 贰 桂 宋 噪 凭 渗 耳 绍 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 57 abstract 修饰符 2-2 abstract 抽象类不能被 实例化 构造方法 和 static 方法不能是抽象的 父类的抽象方法往 往在子类中实现 统 惋 到 杨 渗 僻 温 闷 蝎 迁 况 婴 澡 绽 眨 馆 剐 悬 门 拄 肚 风 责 贝 逊 触 菊 侯 笺 阅 啃 盂 J A V A 面 向 对 象 编 程 基 础 J A V A 面 向 对 象 编 程 基 础 58 课堂练习 2. P83 例3.14 它 堡 滩 拘 湖 裸 移 误 彰 秋 叔 稚 绿 杜 激 捧 詹 茸 湘 巴 投 孺

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1