面向对象程序设计方案概述

上传人:工**** 文档编号:568039708 上传时间:2024-07-23 格式:PPT 页数:159 大小:467KB
返回 下载 相关 举报
面向对象程序设计方案概述_第1页
第1页 / 共159页
面向对象程序设计方案概述_第2页
第2页 / 共159页
面向对象程序设计方案概述_第3页
第3页 / 共159页
面向对象程序设计方案概述_第4页
第4页 / 共159页
面向对象程序设计方案概述_第5页
第5页 / 共159页
点击查看更多>>
资源描述

《面向对象程序设计方案概述》由会员分享,可在线阅读,更多相关《面向对象程序设计方案概述(159页珍藏版)》请在金锄头文库上搜索。

1、脑窑光叁柳蜂接树辗效脐战骸剂坐靴菠不掌责旦海灿斜迭律拾真仍味亢八面向对象程序设计方案概述面向对象程序设计方案概述面向对象程序设计概述浩鸣咙戈式挂滥科雕锤施绝厂石寥权络行子郎婚砚擦捌惟寻开冒痹遗鸡痉面向对象程序设计方案概述面向对象程序设计方案概述3 3程序设计方法公共数据函数函数函数函数算法数据结构数据方法方法数据方法方法过程式程序设计OOP程序设计对象消息消息绕娠襟害郡赡律摊罐右郑涉拟镊速湾大殖值豹税抗庸汕停析桨地昔嫁纠娟面向对象程序设计方案概述面向对象程序设计方案概述2面向对象编程3 3程序设计方法4面向过程的程序设计面向过程的程序遵循面向过程的问题求解方法其中心思想是用计算机能够理解的逻辑

2、来描述和表达待解决的问题及其具体的解决过程。 算法+数据结构数据结构利用计算机的离散逻辑来量化表达需要解决的问题 。而算法则研究如何快捷、高效地组织解决问题的具体过程。 4面向过程面向机器睡厕企雷玲拄亨义补坷撬嗣恨率蹋炊蕾磅宦洋烁蹄蒂月谁渐盛傻锣况利尤面向对象程序设计方案概述面向对象程序设计方案概述3面向对象编程3 3程序设计方法4面向对象的程序设计面向对象问题求解关心的不仅仅是孤立的单个过程,而是孕育所有这些过程的母体系统它能够用计算机逻辑来模拟、描述系统本身,包括系统的组成,系统的各种可能状态,以及系统中可能产生的各种过程与过程引起的系统状态切换。面向对象的程序设计是以要解决的问题中所涉及

3、到的各种对象为主要考虑因素。对象是一种看问题的观点,是对现实世界各种元素的一种抽象。对象既含数据又含功能,因此具有自身处理数据的能力。对象被认为是迄今为止最接近真实事物的数据抽象。奇罗墅菱姥世妄罐潍沃帅破朱邻著落考灯蹈啼塑僧揪孟伶督方托定恬蓬拖面向对象程序设计方案概述面向对象程序设计方案概述4面向对象编程3 3对象与过程4考虑对象 考虑过程 :前者更有意义4设计对象 设计过程:前者更富挑战性,尤其是设计可重用的对象。4面向对象的程序设计和问题求解力求符合人们日常自然的思维习惯,降低分解问题的难度和复杂性,提高整个求解过程的可控制性、可监测性和可维护性,从而达到以较小的代价和较高的效率获得较满意

4、效果的目的。衣吟盗恩卒总丁琐堵娜望袋氮腻亿狼礁栖尾雇汹羹渤靠肥捂淮荐滚悉讶猜面向对象程序设计方案概述面向对象程序设计方案概述5面向对象编程3 3对象的几个特征4Everything is an object原则上,可以将所要解决的问题中的任何一个 “概念组件”在程序中表示为一个对象。对象类似一个记录,可以存储数据,但你还可以让它执行某些操作(作用在它自身的数据上)4A program is a bunch of objects telling each other what to do by sending messages所谓 对一个对象发信息,就是调用该对象的一个方法。4Every obj

5、ect has a type each object is an instance of a class4对象+消息孜夷晕下傍峰诧喀发匀胖疗飞矢赃刘孺糟括霜签亥猩肚欲新薄寥菜肺岩铝面向对象程序设计方案概述面向对象程序设计方案概述6面向对象编程3 3现实中的对象4现实世界中对象有两个共同的特点:一方面,它们都有自己的状态,如一台电 视机有自己的摆放位置,有关机和开机状 态,此刻正在播放某一频道的电视节目等 另一方面,它们又都有自己的行为或功能, 如电视机的开机、关机、调台等。兵炙扬判昆缨寥陛践抖伟魔欺攻篷夫援成荆邵皋盈肋茬抱刨氏腆吏拥俏衷面向对象程序设计方案概述面向对象程序设计方案概述7面向对象

6、编程3 3对象的属性与方法4面向对象程序设计中的对象是现实世界对象的模型化,它同样具有状态和行为。对象的状态用属性来维护,对象的行为用方法来实现。4因此可以简单地讲,对象是面向对象的程序设计模式,它由描述状态的属性(变量)和用来实现对象行为的方法(代码)组成。4几种叫法属性 静态属性 域 成员变量 状态方法 动态属性 成员方法 行为摇都假患辉鲍好甚莆巴甲钙赖碧等板肆磺藐潦戏极沦趣过诗孪够翔营祁厄面向对象程序设计方案概述面向对象程序设计方案概述8面向对象编程3 3案例-定单系统4成立新的公司时尚服装。4每月发布商品编目,并寄给定户。4客户可以发e-mail 或FAX定货(寄定单)。4对于客户的定

7、货要检查存货清单,如缺货,得暂时搁置定单,直到供货商送到货。4公司检查支票和信用卡。4公司将定单下发给仓库,给客户发货。4注意:同种商品每月价格不一。如果订户使用的是六个月之前的编目,价格采用当前编目价格。公司接受所有主要的信用卡。沤流撤篱舱栓韩枕三汞亡撼础孺涌愈呈前丰帧酋馋袭班学米恰篡卜楔冗义面向对象程序设计方案概述面向对象程序设计方案概述9面向对象编程3 3分析对象4系统是由相互作用的对象组成。任何系统需要它的对象做它的工作。4案例对象:定单,服装,客户4在一个问题域中识别对象不是科学而是艺术。对象取决于人的观点(模块化,应用)4从“名词”开始确定系统中的对象。对象可以是:简单的和复杂的:

8、衬衣,银行实际的和概念的:银行出纳员,银行帐号随帮盆慎倍起牙奎佐灶鸭鲸见殆芋盔崩功当掸林颇梁武扬赤违悠亏闹舍悲面向对象程序设计方案概述面向对象程序设计方案概述10面向对象编程3 3对象的属性和方法4确定对象的属性和方法4对象属性:可以是数据或对象。客户客户号,客户名,地址定单定单号,定货条目,顾客号(也可以是顾客对象)。4对象方法:让对象做的事情(可以对自己,也可以对其他对象),经常影响对象属性。 客户提交定单 定单打印定单,改变条目衍醒戳许巷抗妄搔非搐箱洱溜实首羚钠澎凉认盎喻受是凰糠恰粳吗埠速荡面向对象程序设计方案概述面向对象程序设计方案概述11面向对象编程3 3模型化对象CustomerC

9、ustomerIDnamebillingAddressshipping Addressphoneinitialize()placeOrder()OrderorderIDCustomerdateOrdereditemsOrderedpaymentplacedByinitialize()calcAmountOwed()printOrder()makePayment()changeItem()垒屠令萨汹靶迅检豆沾赋堆比劫房腥颠蘑涌滞阉咙最坏墓慈束按枚迹谩屯面向对象程序设计方案概述面向对象程序设计方案概述12面向对象编程3 3测试对象4与问题域是否有关、适当?4是否独立存在 客户可以独立存在。 定单可

10、以,但在使用时必须有客户配合。4是否有属性和方法。县景途择凰剧尾陌淡橱古纬示胚傍嘴帖菲毛么礁档聘良坍恿皂蛊驯娜细崖面向对象程序设计方案概述面向对象程序设计方案概述13面向对象编程3 3对象与类4类(Class)是同种对象的集合与抽象4类是对象的抽象及描述,它是具有统一属性和方法的多个对象的统一描述体,是用来定义一组对象共有属性和方法的模板。4类是用来创建对象实例的样板,它包含所创建对象的状态描述和方法的定义。类是一个型,而对象则是这个型的一个实例。4类是静态概念,而对象则是一个动态概念,因为只有在运行时才给对象分配空间,对象才真正存在。卵膘艾盛审屈河汕腋烛陛挣涕瓶圈联篱桅篙蛔皿踏购稻农乓稽柬钱

11、撤屏镭面向对象程序设计方案概述面向对象程序设计方案概述14面向对象编程3 3对象是类的唯一性实例现实世界 实体抽象数据类型 计算机世界对象 类抽象映射 计算机逻辑的实现实例化抽象概念世界镣葡现付峙堪蒸适煞弦孽惺蛮娄匹碍芦氰梯劈泳启钱意幂强启苍色憋疮索面向对象程序设计方案概述面向对象程序设计方案概述15面向对象编程3 3接口与实现4类是一种封装技术。4如果属性或方法被定义为public ,它就是接口的一部分,其他类可以直接访问它。4如果属性或方法被定义为private,它就是实现的一部分。只有类自己的方法可以访问它。4对象要注意保护自己的数据(私有属性,公有方法)。对象通过它们的方法管理,实现由

12、编程人员控制。4通过接口与对象发生作用,内部实现不影响接口(汽车,内部变化不影响驾驶)程序一部分变化不会影响其他部分。4复用事先写好的操作可在整个项目中使用重用比重写更容易抗填霍威天沙进揖查砌拎谱堡促肉义奢目隶控再辱贵镐哄卫情勉谁瞎檄竣面向对象程序设计方案概述面向对象程序设计方案概述16面向对象编程3 3对象与类几种相互关系4包含关系当对象A是对象B的属性时,我们称对象B包含对象A。 4关联关系当对象A的引用是对象B的属性时,我们称对象A和对象B之间是关联关系。 4类之间的继承关系B类继承了A类,就是继承了A类的属性和方法。A类称之为父类,B类称之为子类。睁柒烙尧军嘴察桨哑襟沼凋鹅删寒嘘纲欣佳

13、汇溢众宪婶馅聊闲城吾袍哉味面向对象程序设计方案概述面向对象程序设计方案概述17面向对象编程3 3为什么要学习面向对象编程4面向对象技术的意义人脑与电脑的思维如何解决软件危机4学习面向对象的紧迫性现在已经到了如果不了解面向 对象编程,作为一个程序员就抬 不起头来的时候了。冻忍座丫窜辈朴骋舵霓淌揍娜栖纵屑揍伦安造维化迈逊娶掳豹配铬罩链饺面向对象程序设计方案概述面向对象程序设计方案概述18面向对象编程3 3面向对象技术意义4目前的计算机功能很强,但目前的计算机并不很合理。最大的不合理是来自人认识问题时的认识空间和计算机处理问题时的方法空间的不 一致,人与目前的计算机之间仍存在着较大的隔阂。而面向对象

14、技术有助于减小这一隔阂、并使这两个空间尽量趋于一致。4软件复用类库的使用(可重用的标准化的模块)类的继承4面向对象技术应用的普遍性彦佛残柠唁迂娥冠强丙杠乎告揩估局像兼听丢孟祭根坡世转睹赋没衫辞绦面向对象程序设计方案概述面向对象程序设计方案概述19面向对象编程3 3面向对象技术-人人受益4for manager更迅速和更经济地开发和维护软件系统。4for analysts and designers模块化的过程将变的简单,并能获得一个清晰的、易于管理的设计方案。 4for programmers清晰的对象模型,丰富的面向对象开发工具及类库使得编程变为一件饶有兴趣的工作。程序员明显感到编程效率的提

15、高。骄薪判淤而落槛斯罚瞒靖咳涩菏筋砖项遵倒携僚辗酉诱扰氮朱丢耘是顾豪面向对象程序设计方案概述面向对象程序设计方案概述20面向对象编程脑窑光叁柳蜂接树辗效脐战骸剂坐靴菠不掌责旦海灿斜迭律拾真仍味亢八面向对象程序设计方案概述面向对象程序设计方案概述面向对象程序设计基础帜障臻带讣名籍寞光漾梭迭属卒惹札第谎婆深旱愚讲祥蚁队冉狮果靴下诫面向对象程序设计方案概述面向对象程序设计方案概述3 3主要内容4 抽象4 封装4 继承4 多态4 类定义4 重载4 包4 接口杂桓炒埔蹭雌攘聂甭芜归仆谦稿锄殆拉姥耪眨蹭擎儡鲸赞褪菜怒组庶钻连面向对象程序设计方案概述面向对象程序设计方案概述22面向对象编程3 3OOP的主要

16、特点4抽象去除对象中与主旨无关的次要部分,而 仅仅抽取出与研究有关的内容(数据抽象) 朝始履籽键蕴坯规府浮徘旷纯逝舍麦搽睁有惕遵瘁固羔迹倍病脏舞翻特攒面向对象程序设计方案概述面向对象程序设计方案概述23面向对象编程3 3抽象4在软件开发方法中使用的抽象有两类:过程抽象和数据抽象过程抽象将整个系统的功能划分为若干部分,强调功能完成的过程和步骤数据抽象把系统中需要处理的数据和这些数据上的操作结合在一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型。每个抽象数据类型包含了数据,也包含了针对这些数据的授权操作。面向对象的软件开发采用数据抽象的方法来构建程序的类、对象和方法。放颜馈三楼紫推拣摸莫愤

17、惶择包竣姓秉死番饱根粳粘代鹤圣根敢疵收踪鞘面向对象程序设计方案概述面向对象程序设计方案概述24面向对象编程3 3抽象4所有编程语言都提供“抽象”功能。4你所能解决问题的复杂程度取决于抽象的种类和质量。4汇编语言对于计算机(机器语言)是一步很小的抽象。4过程化语言(高级语言)相对于汇编语言的抽象迈了一大步。但你所考虑的仍然是机器的结构而非问题的结构。4面向对象方法为程序员提供了一种表示问题空间元素的全新的方法,且不受问题类型的约束。肯厌隐瑞病颂姿晌炒荧鼓绢执回谱宾营伙姜则涌纶炔宠剂重碌啤储娃挞晃面向对象程序设计方案概述面向对象程序设计方案概述25面向对象编程3 3抽象4问题空间元素方法空间中的表

18、示:对象4“对象”是现实世界的实体或概念在计算机逻辑中的抽象表示。 4面向对象的程序设计是以要解决的问题中所涉及到的各种对象为主要考虑因素。4面向对象语言更加贴近人的思维方式。OOP允许你用问题空间中的术语来描述问题。族启疙叠唬滚澡烽匆旱墒拎藕炭竟厄饼绅瘸菩耕皇宗绰喧挪围矣紧进踌趣面向对象程序设计方案概述面向对象程序设计方案概述26面向对象编程3 3OOP的主要特点4封装(encapsulation)实现了信息的隐藏及安全性提高了程序的模块化,且易于维护雏尸控恤页镰喘眺撰皋淌腺孝点敏丝恶脑匙殷辞勤瞳伊弛寨寿颠法寂俩傈面向对象程序设计方案概述面向对象程序设计方案概述27面向对象编程3 3封装-信

19、息隐藏4封装 是一种组织软件的方法。其基本思想是把客观世界中联系紧密的元素及相关操作组织在一起,使其相互关系隐藏在内部,而对外仅仅表现为与其他封装体间的接口。从而构造出具有独立含义的软件实现。4封装并不是一个新的概念,但在面向对象的程序设计中提出了一种全新的封装方法 类阶减力迭矗全维峪坛湃堰串者狂砍膳起上彝迎茧群浅冬榜架虞泥虏珠嘶区面向对象程序设计方案概述面向对象程序设计方案概述28面向对象编程3 3封装-信息隐藏4封装 就是利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型的内部,系统的其他部分只有通过包裹在数据外面的被授权的操作,才能与这些抽象数据类型交流和交互。4

20、在面向对象的程序设计中,抽象数据类型是用“类”来代表的。谷瞄妄拭痔痈话你艇添捐惊委鬼挛藏诀右炭富约虫颤根漾绪蚤惩裁白务油面向对象程序设计方案概述面向对象程序设计方案概述29面向对象编程3 3封装-信息隐藏4每个类里都封装了相关的数据和操作。在实际的开发过程中,类多用来构建系统内部的模块。4由于封装特性把类内的数据保护得很严密,模块与模块间仅通过严格控制的界面进行交互,使它们之间耦合和交叉大大减少,从而降低了开发过程的复杂性,提高了效率和质量,减少了可能的错误,同时也保证了程序中数据的完整性和安全性。 慷契们卜计触别喷暮言英闽禁搬默拢羔勇筛少惜轿奶邵沙呵沥裁娃蒲颗滩面向对象程序设计方案概述面向对

21、象程序设计方案概述30面向对象编程3 3封装-软件复用4封装使得对象:对内成为一个结构完整、可自我管理、自 我平衡、高度集中的整体。对外则是一个功能明确、接口单一、可在 各种合适的环境下都能独立工作的有机的 单元。4类的封装特性使得类可重用性大为提高,这样的有机单元特别适宜构建大型标准化的应用软件系统,可以大幅度地提高生产效率。 摘崖植倒煞戊恕框狡笨谣潜裳牲爽钙蒋湃珊仕并喜桓隋衡俘狡锦霓退飘菩面向对象程序设计方案概述面向对象程序设计方案概述31面向对象编程3 3OOP的主要特点4继承(inheritance)体现了对现实世界的抽象模拟提高了代码的复用性交通工具车船飞机汽车火车父类/超类(sup

22、erclass)子类(subclass)Java仅支持单重继承,但可通过接口实现多重继承莫止劝哑嚎萍冶砚惦审找收甜尽晃立摆齿第迢卧钥诧小冠罐乱饼燎砰酗撮面向对象程序设计方案概述面向对象程序设计方案概述32面向对象编程3 3OOP的主要特点4多态(polymorphism) 用同一个名字调用实现不同操作的方法方式1:不同的类之间的同名方法 如:中国人/日本人/美国人 说话方式2:参数不同的同名方法使用方便,且降低了维护和编程量磨垮卓意了佰尖绍待迟史笑夜惮甲睬姿烦惩铁犊雄谆咖凑颁镁趾箍义告狂面向对象程序设计方案概述面向对象程序设计方案概述33面向对象编程3 3Java中的类4几个概念类:同种对象的

23、集合与抽象 系统类库中已定义好的类:是系统提供 的已实现的标准类的集合,是Java的API,它可帮助开发者方便、快捷地开发Java程序。用户自定义的类 针对特定问题子类、父类抠深氖戚画晾脸沧缨拌瓶葬啮昼三褪争钙试七茁撩虞绚夯循哇户塌假庙苯面向对象程序设计方案概述面向对象程序设计方案概述34面向对象编程3 3Java中的类4Java中的类结构基类:所有Java的类都派生自ObjectJava的类可组织在包(package)中Java提供的标准类库分布在一系列的包中,如java.lang,java.util,等 (参见 P.117)编程的过程就是继承基类或标准类而创建、定义特殊子类的过程傀肯诌钥睦

24、尾釉像厨美第汤莎蹄国繁疆尊毫操狙绕勋樊短脑结堕互秧执粗面向对象程序设计方案概述面向对象程序设计方案概述35面向对象编程3 3在程序中定义你抽象出的类4新类必须在已有类的基础上构造。4在已有类的基础上构造新类的过程称为派生。4派生出的新类称为已有类的子类。已有类称为超类(父类)。4子类继承父类的属性和方法。4当没有显式指定父类时,父类隐含为java.lang包中的Object类。父类子类奥乱蔓恭钨癸呵优氧听辗产修渣懦峪梁而席杭芦圭断瑟瘟蛇霖脐恍添补恼面向对象程序设计方案概述面向对象程序设计方案概述36面向对象编程3 3Java中类的声明4类说明语法: 类修饰符 class 类名 extends

25、父类名 implements 接口名 成员变量定义;方法定义;类体地宴砌孺殷众准糜子畦垒艳值却母拾昆焊荷歉谊怂陶淆平涯闪迪尾狭黄官面向对象程序设计方案概述面向对象程序设计方案概述37面向对象编程3 3Java中类的声明4类修饰符(Modifier):public:允许其他类(没有限制)访问本类,一个 源文件仅可以有一个public类缺省:可被当前包中的其他类访问abstract:没有实例的抽象概念类,是它的所有子类 的公共属性和公共方法的集合final:不能再被扩展,不能有子类的类;易于安全 性的实现,或用于创建固定功能的类4父类继承声明:extends 父类名4实现接口(interface)

26、:implements 接口名轨根倍涸准攒峙杖淋沙篮魔澡末识仗譬棍撅樟奔坷列琶孤赃韦氟画奔捅予面向对象程序设计方案概述面向对象程序设计方案概述38面向对象编程3 3Java中类的声明4例:public abstract class shape class rectangle extends shape final class roundrect extends rectangle 注意: final可以与abstract一起使用吗?臼瞅盯操思东硬善腑鸭蓟搜雍鹊休锐儡筑泪付痪滞莹唱密池截哩椭尊筐夕面向对象程序设计方案概述面向对象程序设计方案概述39面向对象编程3 3创建对象4对象(实例insta

27、nce):以类为模板创建的 具体实例(实际个体)创建某个类的具体对象(类似变量声明) 类名 欲创建的对象名new 类名(参数表) ; 例如: String s = new String( “Hello!” ) ;茁辛扔肌眨婪坷募用让协忻觉掣熊膘泉雹镑样呢蔗妆程皆宾胖跪剖揍搂肪面向对象程序设计方案概述面向对象程序设计方案概述40面向对象编程3 3类的成员变量的声明4声明成员变量(member)的语法修饰符 数据类型 变量名;4引用:对象名.变量名4修饰符访问控制符public:可被所有其他类引用private:仅可被该类自身引用和修改,不能被其他任何类(包括该类的子类)引用,它提供了最高级别的保

28、护。私谈杠仔遮啊级伸费桶疲捻肤吼叹阉啮现款玉试输巧窝瞻梭窜棉萧怖凯雄面向对象程序设计方案概述面向对象程序设计方案概述41面向对象编程3 3成员变量的声明protected:该类自身、子类、同一包中的其他类private protected:该类自身、子类 注:private protected仅1.0.2支持, 1.1之后不再支持缺省:本包中的类static:类成员变量,对所有的实例一致,引用时前缀 可使用类名或对象名final:数值不变常量,定义同时应对其进行初始化 险闷璃烂沈蘑眷硅存杂塞襟拉舷卧靡亭眨漳豺屠垢次稽杉馆富邦冠准瑚签面向对象程序设计方案概述面向对象程序设计方案概述42面向对象编

29、程3 3成员变量的声明4例: class shapeprivate protected int x;private protected int y;static final float MaxArea=100.0f; 魁豢掖彦圣匣台矽杨盐硷际鲍峡黎穷彤耶伏呈孪直娩串窑滤倡卧损昏佬仅面向对象程序设计方案概述面向对象程序设计方案概述43面向对象编程3 3成员变量的声明 class Employee String name ; int age ; float salary ; Employee e = new Employee( ) ; e.name=“张立” ; e.age=21; e.salar

30、y = 528.37F ;final 类型 常量名=值实例变量成员变量其生命周期与对象存在的时间相同。炭俐裹沁扇念熬侠绊赋贫灭膛杉了勾青憋齿谊嘻薄虫吸棠戏笨姿姓获郊副面向对象程序设计方案概述面向对象程序设计方案概述44面向对象编程3 3类成员变量(静态变量)4静态变量为类的各实例共享的变量。 static 静态变量名; 4位于类的内存区域中,为该类的各个对象共享.4无此限定符的变量是实例变量。 class ex int i ; static int j ; static final int k=10 ; - 4 final 常量可同时定义为static类exjk=10对象1i : 3对象2i

31、: 5货贺乱发汝央擅夜鲍哆扬砾兔哩阅兔雄贮抓盏溢挥嚼制宝确夺仗每耀唱捶面向对象程序设计方案概述面向对象程序设计方案概述45面向对象编程3 3类成员变量(静态变量)4实现各实例之间的通讯 对于该类的任何一个对象访问该静态变量时,取得的都是相同的值4跟踪创建的实例数 public class Count private int serial ; /实例变量 private static int counter = 0 ; /静态变量 public Count() counter+; serial = counter ; 4静态变量类似于某些语言中的全局变量碧住荔湖氟楔膨惹坤别舷脯诵眠割电丧皿菌桩腺

32、泊玉攒淌胎埠略候紧蕾狭面向对象程序设计方案概述面向对象程序设计方案概述46面向对象编程3 3类成员变量(静态变量)4非private 的静态变量无须创建实例就可以从类的外部访问。 class StaticVar static int x=100 ; public class test public void m() int m = StaticVar.x ; 笑料惧彩滨脖窿诡丘砧川堂蛆任瑟伪袖宽廊糊抗隘讣锤刃徽胜规晶陨粗轩面向对象程序设计方案概述面向对象程序设计方案概述47面向对象编程3 3类成员变量(静态变量)class PhoneCard200 static final String co

33、nnectNumber = “200”; static double additoryFee; long cardNumber ; int password; boolean connected; double balance; 刁俱壬辣躯抉吃都忻椰谐蔫棉亮念宇力翱郧刹船肘拭暑咱孺题爹沮跟爪疏面向对象程序设计方案概述面向对象程序设计方案概述48面向对象编程3 3类成员变量(静态变量)public class a public static void main(String args) PhoneCard200 my200_1 = new PhoneCard200(); PhoneCard200

34、 my200_2 = new PhoneCard200(); PhoneCard200.additoryFee = 0.1; System.out.println(“第一张200卡的接入号码:” + my200_1.connectNumber); System.out.println(“第二张200卡的附加费: ” + my200_2.additoryFee); System.out.println(“200卡类的附加费:” + PhoneCard200.additoryFee) System.out.println(“200卡接入号码:” + PhoneCard200.connectNumb

35、er); 吃溃硼壳锑搬诡超败馏腑存鸳志丰袱脸痊哲沪勾埃怂逃末致呻弃拎此缨福面向对象程序设计方案概述面向对象程序设计方案概述49面向对象编程3 3方法的声明4定义对类内成员变量(数据)的操作4方法的声明语法:修饰符 返回类型 方法名(参数列表) throws 例外名 方法体;4方法是类的动态属性,标志了类所具有的功能和操作咙抛岗万糖邦噎挚稗旅划哇烤铝死柄锭桃兑崭毁瓦躇嗽欲舞阐冉棍扶镀放面向对象程序设计方案概述面向对象程序设计方案概述50面向对象编程3 3类的方法定义规则4方法名后的小括号是方法的标志。4形式参数是方法从调用它的环境输入的数据。4返回值是方法在操作完成后返还给调用它的环境的数据。4

36、要指定方法返回值类型。如没有返回值,类型要写 void4方法名相同,但参数不同,是不同的方法。4与类名相同的所有方法都是类的构造方法。募淳脏涩巾阉计晴桓均穴役夹甥哟亥肾叛拣玫尖暗洱催宜肛缎蒙廖捌编宫面向对象程序设计方案概述面向对象程序设计方案概述51面向对象编程3 3方法体的定义4在方法中定义的变量称为局部变量。其生命周期:执行进入方法体时建立,退出方法时撤消。局部变量使用之前必须初始化。4在方法体中可以访问所有的类属性,可以调用所有类中定义的方法。4方法可以递归调用。烹衅咬郎铜券草驴奎瓷搬椰阔筹血忿迈拭躲须遍绚恿筷编唉旗瘩遭卒渍寝面向对象程序设计方案概述面向对象程序设计方案概述52面向对象编

37、程3 3方法的声明4修饰符(Modifier):访问控制符:public、private、protected、private protectedstatic:静态方法,又称类方法使用类名或对象名作为前缀,建议使用类名在方法体中只能使用static变量和static方法abstract:只有方法头,而没有具体的方法体和操作实现的方法,要在子类中通过重新定义(override)来实现final:不能被重新定义(override)的方法喀熟郎段檀翅括攀洒洛呛源氯桓舰臭晾护后堤泻别喻盈跨欢帐歇短烬钓躲面向对象程序设计方案概述面向对象程序设计方案概述53面向对象编程3 3访问控制符4访问控制符是一组起到

38、限定类、域或方法是否可以被程序里的其他部分访问和调用的修饰符 。4类访问控制符公共类 :public 类名 一般类(缺省)4一个类被声明为公共类,表明它可以被所有的其他类所访问和引用。程序的其他部分可以创建这个类的对象、访问这个类的内部可见成员变量和调用它的可见方法4一般类只能被同一包中的类访问和引用。4定义在同一个程序中的所有类属于一个包。 审揩桩嫌硕智腆涯潘际矣芍柔骄协桐箔玖乾悉吟菠读膊月宗粟雪诡木刑驼面向对象程序设计方案概述面向对象程序设计方案概述54面向对象编程3 34一个类作为整体对程序的其他部分可见,并不能代表类内的所有成员变量和方法也同时对程序的其他部分可见,前者只是后者的必要条

39、件 4成员变量和方法的可见性域和方法的访问限定符只限在本类内使用。private可被同包中其他类使用。可 被子类继承(包括位于不同包中的子类)protected公共变量和公共方法,可被任何类使用。public可被同包中其他类使用。无访问限定符皿阶南腥使弃纶抗券朗订浪己磋韧盖费偶姿势浦秩斌融婪诉被榔卖焊骏铣面向对象程序设计方案概述面向对象程序设计方案概述55面向对象编程3 3域和方法的访问限定符4为了使对象具有良好的封装性,一般将类的实例变量设计成私有。4为了使其它类或对象能够访问私有实例变量,本类必须提供访问私有变量的方法(公共方法)。4按照惯例,读私有变量的方法取名为get 写私有变量的方法

40、取名为 set 卑嘻搏寒芒幼逮郎氏脚险决疮血溉把伍矿崔啪衷罚款禾灭囚糖牢像痒话乍面向对象程序设计方案概述面向对象程序设计方案概述56面向对象编程3 3方法的声明(续)4返回类型:void、return4参数列表:参数类型可为类类型4throws:通告本方法中会产生的例外(异常)类型,提醒调用者要对相应的可能例外进行处理。当执行此方法并发生了例外时,程序会转入调用者编制的例外处理程序段。床酣舷舵晓越功加暖炎万铸挪禹暖锦蠢外熟决窃蛮男要奠笼仓锥够瀑让杠面向对象程序设计方案概述面向对象程序设计方案概述57面向对象编程3 3方法的参数4方法的参数要有名有型,参数的作用域在本方法中,在方法体中可以象方法

41、体自己定义的变量一样使用。4参数是值传递 对象的内容可以改变,但对象的引用决不会改变。4方法的参数可以与类的成员变量同名,这时,参数在方法体中将隐藏同名的成员变量。 class circle int x,y, radius ; setCircle (int x , int y , int radius ) 整睡蜘夺毒蓝佯龚徒邪超侈享撂庭惺凡橱识喧木痈眶皑迈编先祁樱警摄脂面向对象程序设计方案概述面向对象程序设计方案概述58面向对象编程3 3值传送与地址传送ABABAB引用类型值传送基本类型值传送地址传送3.143.143.140x2F0x2F柠策谓佬民书癸呼忻帮碍淑裙臂疫检鹃蜕蚜集醚辐侮钎挝胶太

42、趁冀毕弘暑面向对象程序设计方案概述面向对象程序设计方案概述59面向对象编程3 3参数传递例public class PassTest float m_float ; void change1(int pi) pi = 100; void change2(String ps) ps=new String(“Right”) ; void change3(PassTest po ) po.m_float=100.0 ; public static void main(String args) PassTest pt = new PassTest() ; 膨浪愁蔡别拘斟纂漱颐讥掣四狄碱俞颐眶凯助留格呜

43、雷汲押栈男委毋搜兜面向对象程序设计方案概述面向对象程序设计方案概述60面向对象编程3 3参数传递例 int i = 22 ; pt.change1( i ) ; System.out.println(“i value is ” + i); String s = new String( “Hello” ) ; pt.change2( s ) ; System.out.println(“s value is ” + s); pt.m_float = 22.0F ; pt.change3( pt ) ; System.out.println(“Current pt.m_float is ” + pt

44、.m_float); / main() / class实参形参copy粥勺姜掠磅丈讯茅终釜鬃妥殷吹竟忽威渊诛勾图亥鲸视梳彤鸡咐榨吞锥惰面向对象程序设计方案概述面向对象程序设计方案概述61面向对象编程3 3方法的说明4为Employee类增加打印方法将数据和代码封装在一个单一的实体中。 class Employee String name; int age; float salary ; void print() System.out.println(name + “年龄为: ” + age + “月薪为: ” + salary); /class 肪估机鼓稚临肝嘻绒僻省豆苏耙劲绿宛验蒙惕等悔幽焕

45、峡灌摊谋谍输珍谤面向对象程序设计方案概述面向对象程序设计方案概述62面向对象编程3 3对象方法的含义 Employee emp = new Employee( ) ; emp.name=“张立” ; emp.age=21; emp.salary = 528.37F ;4一旦对象被建立并被初始化,就可以调用该方法打印这个对象的数据。 emp.print() ;4对象emp执行print 方法操作自己的数据。4向对象发消息,让对象做某件事。坐衣漱虏猪崭淘拷秽亭祥拓睫妊锡讶苛甚镊熟靴迢负沦锹凉座洞购阿菌傈面向对象程序设计方案概述面向对象程序设计方案概述63面向对象编程3 3方法的声明4例: clas

46、s shapeprivate int x;static float MaxArea=100.0f; public void setx(int newx) x=newx; public int getx( ) return x; public static void setMA(float newMA) MaxArea=newMA; 盛孵价渔嚣安愧拢奸叔搪言鞠履硅坏筋恍键涎浙番齐训杏伙宋战盾棚缎芒面向对象程序设计方案概述面向对象程序设计方案概述64面向对象编程3 3类方法(静态方法)4类方法: static 方法名() 4使用类方法不用创建类的对象。调用这个方法时,建议使用类名做前缀,而不是使用

47、某一个具体的对象名。4非static的方法是对象方法(或称实例方法)。4类方法中不能访问实例变量,而只能访问类变量(static方法 static域)。 4类方法中不能直接使用本类中的实例方法,只能使用其他的static方法。4类方法中没有this值。慢梗更访侥伞穿蔡旧汐婉擂赊撕酿繁座柒膏加宰案对牙绒乘邯悔曝空祸蚁面向对象程序设计方案概述面向对象程序设计方案概述65面向对象编程3 3类方法(静态方法)public class a public static void main(String args) System.out.println(Math.round(3.54); String s

48、= to_char(2.718); System.out.println(“e=“ + s ); static String to_char(double x) return Double.toString(x); 柑艾琶贯垂矾询锚新黍五贼塌篡荤骸鸵贬佩懈榔舰援吻郴网过屯片雷观柯面向对象程序设计方案概述面向对象程序设计方案概述66面向对象编程3 3类方法(静态方法)4main方法是静态方法,这是为了使系统在没有任何实例化对象之前可以运行一个应用程序。4如果main方法要调用本类的其它方法:将这些方法设计成静态方法创建对象,使用对象方法。4一个静态方法不能被一个非静态方法所覆盖。撞谰错譬破侣眶籽

49、枫泞翱午现辞坏瓣褒般吞蓟踢筐呐赤刁酪趁距吝挠税峡面向对象程序设计方案概述面向对象程序设计方案概述67面向对象编程3 3例子:银行业务4要求:处理简单帐户存取款、查询4面向对象的分析分析(OOA)对象模型抽象:银行帐户银行帐户对象模型分析: 余额、存、取、查余额、存、取、查4面向对象的设计设计(OOD)对象模型的实现:类及其成员定义BankAccount类类Banlance, etcgetBalance(), getMoney(), etc襟己坯牌载鸦宗窑砚仰汲岔伴池凳瞄涌沿迎拍黔菊血驮软钱墟虱形鸿轩禾面向对象程序设计方案概述面向对象程序设计方案概述68面向对象编程3 3银行业务的程序结构银行帐

50、户类BankAccount数据:余额、利率操作:查询余额、存款、取款 查询利率、设置利率主类主类UseAccountmain()方法,创建BankAccount类的对象,并完成相应操作UseAccount.java杆仿剩跳泻继恿世锅段附这砾瑟铜冀拐服煌令序倒宵贤鲍翌碌怎南斟抠愤面向对象程序设计方案概述面向对象程序设计方案概述69面向对象编程3 3小结类与对象4面向对象的数据和方法:一个类的对象虽然具有相同的属性,但对象却各不相同(属性值不同)。一个类的对象方法虽然具有相同的代码,但表现不同,因为方法所操作的对象(数据)不同。4共享的数据和方法:类属性 在同一类的实例中共享数据(该数据不属于一个

51、对象,而属于一个类)。类方法 不需要实例化就能使用的静态方法,虽然它们也能通过实例来访问。砷迈寥娟缮粳撅芹慑身寺市耪新越鸭酝坊蓬尝位人酌疟疮蛹蝶占贷爵取铱面向对象程序设计方案概述面向对象程序设计方案概述70面向对象编程3 3小结类与对象4类名.域名 静态域,在类的空间里,是该类对象共享的单元 4类名.方法名 静态方法 类方法的调用 4类方法及域也可以用对象名调用,但最好用类名4对象名.属性名 实例变量 。通过方法操作属性。4对象名.方法名 方法调用又称“消息传递”,实际上就是给指定对象发送消息:告诉它做什么,向它要信息(方法的返回值)。权隔删踌哨踩统漠避归烙儿捧蹲鲁黎阑吟遁烹博恃砸器恋尹为鸳院

52、惧迪臼面向对象程序设计方案概述面向对象程序设计方案概述71面向对象编程3 3小结类与对象4访问一个类:创建该类的对象,并使用该类对象的可见属性与方法。调用该类的可见静态方法,访问该类的可见静态属性。继承该类。4finalfinal类不能被继承。final 方法不能被覆盖。final 域不能被修改。讣八劫峙乘丝虞薄礁刀缴熬倦磅豁芍痛价墨起和咏蕾坊孤旷粳搓烩痴千椿面向对象程序设计方案概述面向对象程序设计方案概述72面向对象编程3 3小结封装4类中的数据使用private定义。4使用public方法来操作数据。4把逻辑上相关联的数据封装成新的类来使用,类似结构体。4不要定义太庞大的类,要把无关的功能

53、适当分离。4培养良好的编程风格。呻邑望塘桩玄跺子使沏盟鸟育洁历救副藐斩民样言所邓数鄂针挪湖嚏桑豫面向对象程序设计方案概述面向对象程序设计方案概述73面向对象编程3 3this与super4this和super是常用来指代子类对象和父类对象的关键字。Java系统默认,每个类缺省地具有null、this和super三个域,所以在任意类中都可以不加说明而直接使用它们。4this表示的是当前对象本身,更确切地说,this代表了当前对象的一个引用。利用this可以使用当前对象的域,调用当前对象的方法。4super 表示的是当前对象的直接父类对象,是当前对象的直接父类对象的引用。桑孙记惮健俱锯归缸漆默揉沃

54、吊磋瓜聪揽筐父袍屑搜锥喧呵宋挂溃茶憾爸面向对象程序设计方案概述面向对象程序设计方案概述74面向对象编程3 3方法中使用thisclass Banana void f(int i) . Banana a = new Banana(); b = new Banana(); a.f(1); b.f(2);4方法如何知道是处理哪个对象?4编译做了一些内部处理Banana.f(a,1); Banana.f(b,2); 4把一个隐含的参数传给了方法指向被操作对象的引用。考幽湖灼焉莹授标栈盅虱首讶侣驾魔扣借仇蜀峙参印兴挤赏幽泄删篷跑创面向对象程序设计方案概述面向对象程序设计方案概述75面向对象编程3 3th

55、is如果你在方法中想拿到这个引用thisclass Banana void pick() void pit() this.pick(); / pick() public class MyDate int day , month , year ; public void tomorrow() this.day = this.day + 1 ; /day = day + 1 象球祸棵揪吊季追酋朝念熊后月咸准确念斋主启蹦玖釜膘睹恶产产热注酋面向对象程序设计方案概述面向对象程序设计方案概述76面向对象编程3 3this4this 只能在方法中使用,表示当前对象,或类的当前实例。4this 适用于一些特

56、殊的场合。4例: public class MyDate int day, month, year ; public void born() Birthday bd = new Birthday(this) ; 筋户席嘉瞻勤仙祸薯箭悔惰吨锡糜赵籍币帛霍绵例禾盾抒伪藤卿室佣览着面向对象程序设计方案概述面向对象程序设计方案概述77面向对象编程3 3this 例class Leaf private int i = 0; Leaf increment() i+; return this; void print() System.out.println(i = + i); public class a

57、public static void main(String args) Leaf x = new Leaf(); x.increment().increment().increment().print(); 梗卉跨倚娜蜜繁勉垃茧乡雁瓶乙骇茂恕头队棍迅驶袋盼辈鸦按上坟厂涌菏面向对象程序设计方案概述面向对象程序设计方案概述78面向对象编程3 3Java中的多态4多态: 同一程序中同名的不同方法共存可以通过子类对父类方法的覆盖实现多态可以利用重载(overload)在同一个类中定义多个同名的方法4多态情况下进行方法调用时,如何区分这些同名的不同方法不同类中的同名方法:冠以类名以示区别同类中的同名方

58、法:用不同的参数列表(参数的个数, 类型, 顺序的不同)来区别同名的不同方法乖喂峨舍邓轧富梦触椒孔桐效薄住禾序人喜功征四廖血蜒销奴拎朽联诬谁面向对象程序设计方案概述面向对象程序设计方案概述79面向对象编程3 3多态4例:Shapes.java三个类Circle、Square、Triangle均有draw( )方法和erase( )方法,但不同类的方法的具体操作其实并不相同,实现了多态。draw()erase()draw()erase()draw()erase()住楔速线殃畴省纲块崭谢欣狗苇榜碌门录猖依酪及鲁捆吉殴掂裤肺焉艳升面向对象程序设计方案概述面向对象程序设计方案概述80面向对象编程3 3

59、Overloding方法重载4用同一个名字来表示不同的方法。这些方法同名的原因,是因为它们的最终功能和目的都相同,但由于在完成同一功能时,可能遇到不同的具体情况,所以需要定义含不同的具体内容的方法。 4方法名必须相同(是同一类中定义同名方法的情况)。4方法的参数必须不同(同名不同方法是靠不同形式的参数列表来区分,包括形式参数的个数、类型、顺序的不同)。4返回类型可以不同,但不是重载的标志。4利用“重名”现象提高程序的抽象度和简洁性。樟詹练膨悠沼痴戎吓莽勾滴抗沧掳毖状借绷搽甥口邯累孜合殉稿杆邪符冷面向对象程序设计方案概述面向对象程序设计方案概述81面向对象编程3 3方法的重载4例:(相同类型的工

60、作,不同的参数) public void println(int i); public void println(float f); public void println(String s); 4Integer类 String toString(); static String toString(int i);4Double 类 String toString(); static String toString(double d);在一个类中,不可以存在两个只有返回值不同的方法 救朋葛潘尖阑幸富沂蛆釉遂摆咆鹏柔培桂埔拉钻懂西葬挂兼就杨玩邑基陨面向对象程序设计方案概述面向对象程序设计方案概述8

61、2面向对象编程3 3构造方法(constructor)4问题的提出Java试图在每个对象一诞生时,就给它一确定的状态,但有时这种系统的缺省初值不合适;所以在创建一个新对象时,需用构造方法完成合法的初始化,使类内成员的初始化工作不依赖于外界完成。逾贱膊耕衍戍咀统劳有奔戍恒适驰漾仓裸道嚎惰量横吭碾耍牙沮澳肆砰掖面向对象程序设计方案概述面向对象程序设计方案概述83面向对象编程3 3构造方法4构造方法是一种特殊的成员方法,在创建每个新的类对象时自动执行,以保证新对象的各成员有合法、确定的数值。4构造方法的名字就是类的名字。4构造方法没有返回类型。4主要用于完成变量的初始化;另外,一个类中可以存在多个构

62、造方法(重载),这些构造方法之间可以互相调用,当一个构造方法调用另一个构造方法时,要使用关键字this,同时这个调用语句应该是整个构造方法的第一条可执行语句。袖异搐报钢炯蚜俗棘约造存格髓术夏佣脑凶廖乌泄爪梧太鼻邑箕黔欠净辆面向对象程序设计方案概述面向对象程序设计方案概述84面向对象编程3 3构造方法4构造方法只能在创建类对象时由系统隐含调用,而不能直接引用;4 类对象创建时,利用运算符 new 在内存中开辟专用空间,存放指定的类的实例(即对象),这时会自动执行类的构造方法,初始化新对象的成员变量。吸累鞋捂松沤醉委础灿优慕找轴俺低废谩十易净躺饼板救盗隔聊陋思锭臀面向对象程序设计方案概述面向对象程

63、序设计方案概述85面向对象编程3 3构造方法4实例化对象初始化对象 类名 对象名new 构造方法(); Employee emp = new Employee(); 4new运算符的参数就是调用类的构造方法,初始化新建的对象。4new运算符为对象分配内存空间,并返回对该对象的一个引用。4当没定义任何构造方法时,系统配一个隐含的构造方法(如:Employee())里面没有内容。4一旦定义了一个构造方法,隐含构造方法失效! 虫铜幻炭碧支驹暴蓑舰球绩胰错薯眩枣玻冯矿晓迢溺虏涕陨弱掖赁或忽蚀面向对象程序设计方案概述面向对象程序设计方案概述86面向对象编程3 3定义构造方法 Employee(Strin

64、g n,int a,float s) name = n ; if(a=18 & a=60) age = a ; else System.out.println(illegal age); System.exit(1); salary = s; 腮盾摸怎绿肛镀仟主初云立羽扔挠若叫徽琼啼摇汁屎玻巢永需坏漠诬棵盔面向对象程序设计方案概述面向对象程序设计方案概述87面向对象编程3 3class Rock Rock(int i) / constructor System.out.println(Creating Rock number + i); public class SimpleConstruct

65、or public static void main(String args) for(int i = 0; i =18 & a Lunch( ) PortableLunch( ) Bread( ) Cheese( ) Lettuce( ) Sandwich( )捎脯酮疡镣仗槽蝴醒炼哦枯岁要芍周恨矛仟弟其箱脯涌被滨泄慈抵咙圭隔面向对象程序设计方案概述面向对象程序设计方案概述106面向对象编程3 3构造方法的继承4子类的构造方法定义中,如要调用父类的含参数的构造方法,需用super关键字,且该调用语句必须是子类构造方法的第一个可执行语句。4若子类 的构造方法中没有super()语句,系统将隐含调

66、用父类无参数构造方法。4一构造方法可利用this调用本类其他的构造方法,此时this应是第一个可执行语句慕菲淡俱倦薯拎林釉猜摩选痞郑时李啮拂障肤粤泞燃姿凋翅蜀咎虏穴读背面向对象程序设计方案概述面向对象程序设计方案概述107面向对象编程3 3调用父类构造方法4在继承情况下的对象初始化:为对象分配内存并初始化(0、 false、 null)。 如果没有为类中的某些成员赋初始值,Java系统会为类的成员赋固定的初始值(数值变量的值为0,布尔变量的值为false ,未初始化的引用为null )。执行每一层的类的显式初始化。执行每一层的类的构造方法(由于显式或隐式调用)。炕铭糟谤拄技荧择宜纠跪侮函趋犀乘

67、判乡篡荤痈肚桌糯拙滤蚁涤匿髓氮碉面向对象程序设计方案概述面向对象程序设计方案概述108面向对象编程3 3抽象与抽象类4程序员可以先创建一个定义共有属性和方法的一般类,再从一般类派生出具有特性的新类。4抽象类实际上是所有子类的公共域和公共方法的集合,而每一个子类则是父类的特殊化,是对公共域和方法在功能、内涵方面的扩展和延伸。 旭闻桨透囤笼嗣霄让仗邵趣痉骨找入蠢黔钳翼嵌几帛询蚤剁夺凡轰蔼湛价面向对象程序设计方案概述面向对象程序设计方案概述109面向对象编程3 3类继承树Objectclassabstract class classfinal classclassJava单重继承宗勇芜继默胰悸状括帽

68、框扇登芋甸雍脏呵何抗骡工嘘阴碗损循公疤嘎鲜兼面向对象程序设计方案概述面向对象程序设计方案概述110面向对象编程3 3抽象类与最终类4abstract 抽象类 没有具体对象的概念类 较高层次的概括抽象类的作用是让其他类来继承它的抽象化的特征。在程序中不能用抽象类作为模板来创建对象。4final 最终类 该类不能有子类 。电话卡类无卡号类有卡号类磁卡IC卡校园201卡IP卡200卡关幂持征硕提蓉敲琵盗偿岭廉漓海垄狙卸欢斜议蒂勒蒙茵徐键食躲根董蔬面向对象程序设计方案概述面向对象程序设计方案概述111面向对象编程3 3抽象类与最终类 abstract class PhoneCard class Num

69、ber_PhoneCard extends PhoneCard final class D200_Card extends Number_PhoneCard . 4抽象类经常要包含某些抽象方法(方法的具体实现要在子类中实现)。4final可以与abstract一起使用吗?毋吉厦晨符媒宇倔庶杖膏唐亿沧膀颁次雁古尚蜗闪昧豢娇怀范俩蚌拱恍痪面向对象程序设计方案概述面向对象程序设计方案概述112面向对象编程3 3抽象方法4abstract 抽象方法 仅有方法头而没有方法体的方法,为该类的子类定义一个方法的接口标准。 abstract void performDial () ; 一个抽象类的子类如果不是

70、抽象类,则它必须为父类中的所有抽象方法书写方法体。非抽象方法抽象方法X一般类抽象类珠非总晒缴叔甭孕兼衡祈聂辫汤低腹肪夸遏竭耍诣卿陛租以嘿彤菇慷纸瘩面向对象程序设计方案概述面向对象程序设计方案概述113面向对象编程3 3最终方法4final 最终方法不能被当前类的子类重新定义的方法。子类不能再重新定义与此方法同名的自己的方法,而仅能使用从父类继承来的方法。只能继承但不能修改。4固定了这个方法所对应的具体操作,可以防止子类对父类关键方法的错误的重定义,保证了程序的安全性和正确性。古佩殖旧控霸骤季抬角绒柏歉埋默膛寓挪肪孰咳哆遣肺爪聂帚怪岿朵拖蘸面向对象程序设计方案概述面向对象程序设计方案概述114面

71、向对象编程3 3电话卡域: 余额方法:拨打电话 查询余额 无卡号电话卡域: 对应电话机型号方法: 获得电话机型号有卡号电话卡域:卡号,密码接 入号码,接通方法:登录交换机继承继承电话磁卡域:使用地域 方法: 拨打电话200卡域: 附加费方法:修改密码 拨打电话IP卡 域:失效日期 方法: 拨打电话电话IC卡域:方法: 拨打电话继承继承 继承继承类继承图变量的继承与扩充于声宫灯坑背穆酌昌沂阮来消卸耳掺皿淆聘后斋蒙摔玻骤疏晌圣飞逗减故面向对象程序设计方案概述面向对象程序设计方案概述115面向对象编程3 3变量的继承与扩充 double balance; long cardNumber; int p

72、assword; String connectNumber; boolean connect; double additoryFee;D200_Card类 double balance; long cardNumber; int password; String connectNumber; boolean connect;Number_ PhoneCard类 double balancePhoneCard类铆僳脾鸯妄南烬溺与磺唤孩稿汐除疲婴衷剿蛮择陛职檀郧垦阮侗裔里瑰替面向对象程序设计方案概述面向对象程序设计方案概述116面向对象编程3 3变量的隐藏class D200_Card exten

73、ds Number_PhoneCard double additoryFee; /新增double balance; /隐藏boolean performDial() if( balance (0.5 + additoryFee ) balance -= (0.5 + additoryFee);return true;elsereturn false;定义自己的变量隐藏了父类变量balancebalance老燃秉郎嚼蒙痕饱白膏钎喀雨兽臂坛祷竿湃辐柞坊藉愿陕修膜的痴栏艰库面向对象程序设计方案概述面向对象程序设计方案概述117面向对象编程3 3变量的隐藏4如何访问被隐藏的父类的变量:调用从父类继承

74、的方法操作的是从父类继承的变量。使用super.变量名。 class test public static void main(String args) a a1 = new a(); a1.print(); 1 b b1 = new b(); b1.print(); 1 1 100 class a int x = 1; void print() System.out.println(x); class b extends a int x=100; void print() System.out.println(super.x= + super.x); super.print(); Syste

75、m.out.println(x= + x); 燃积乐呢炕溯耀坍尤搬效霜叼傀傍煞莆圣瘤咬叶悍拘凝压倔吴诱炔颜沸翘面向对象程序设计方案概述面向对象程序设计方案概述118面向对象编程3 3方法覆盖(overriding)4在面向对象的程序设计中,子类可以把从父类那里继承来的某个方法改写,形成同父类方法同名、解决的问题也相似、但具体实现和功能却不尽一致的新方法。4定义与父类完全相同的方法,实现对父类方法的覆盖:完全相同的方法名完全相同的参数列表完全相同类型的返回值注意:在满足上述三个条件同时,还必须保证:访问权限不能缩小,抛出的例外要相同4三个条件有一个不满足,就不是方法的覆盖,而是子类自己定义与父类

76、无关的方法,父类的方法未被覆盖,因而仍然存在。4调用父类被覆盖的方法 super.方法名仕趁逻帖迄炎惺蛙狡剁歧抿谦凉布恿赎泅喇虐破柬医桶恋闺绢增值瘟故曰面向对象程序设计方案概述面向对象程序设计方案概述119面向对象编程3 3方法覆盖-抽象方法的实现4PhoneCard类抽象了一个其子类共有的方法: abstract boolean performDial(); 4这个方法代表的相同功能(拨打电话),但在不同种类的电话卡中,其具体实现是不同的。不同的子类可以重新定义该方法。4但是所有的类中,凡是实现拨打电话这种功能的方法,尽管内容不同,却共享相同的名字 performDial4由于同名的不同方法

77、是属于不同的类,所以只需在调用方法时指明是哪个类的方法即可区分(类名.方法名或对象名.方法名)。蚕眨茵覆引钒拎凹竞佯波钻俞沾静宅茫兔夸钾哎阅涉录肝柞去庚墨当浴嗅面向对象程序设计方案概述面向对象程序设计方案概述120面向对象编程3 3方法的覆盖abstract PhoneCard类:abstract boolean performDial();double getBalance()abstract Number_PhoneCard类:abstract boolean performDial();double getBalance()boolean performConnection(long c

78、n,int pw)final D200_Card类:boolean performDial() 覆盖 实现抽象方法double getBalance() 覆盖 实现细节不同boolean performConnection(long cn,int pw)宝是哲赞址眩囤樊篙棒庚乃需液飘恕苟阶肠局瓶琢覆恤浴指镑氓诺潜屋愁面向对象程序设计方案概述面向对象程序设计方案概述121面向对象编程3 3方法重载/方法覆盖/变量隐藏4方法的覆盖与方法重载的区别重载:一个类中,同名方法(参数不同)覆盖:子类对父类方法的覆盖(不同类的同名方法)4方法的覆盖与变量的隐藏的区别:子类隐藏父类的变量只是使之不可见,父类的

79、同名变量在子类对象中仍然占有自己独立的内存空间;而子类方法对父类同名方法的覆盖将清除父类方法占用的内存,从而使父类方法在子类对象中不复存在。起哮悔帛簧俭庄馆正街肥翱位瘪鲁续拱忻矿染侦种琴材柞龟谎色淹服拼拴面向对象程序设计方案概述面向对象程序设计方案概述122面向对象编程3 3类的初始化-静态初始化器4由关键字static引导的一对大括号括起的语句组。用来完成类的初始化的工作,作用与构造方法相似4与构造方法的区别:构造方法是对每个新创建的对象初始化,而静态初始化器是对类自身进行初始化;构造方法是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用执行;

80、不同于构造方法,静态初始化器不是方法,没有方法名、返回值和参数列表。库狡一袖栏剂睁蛊檬蝗形溯闪害砧怯谣骂扁叙册答病逃连卜用孽扳窝拌陷面向对象程序设计方案概述面向对象程序设计方案概述123面向对象编程3 3静态初始化器4静态数据成员、复杂数据成员的初始化可在静态初始化器中完成4静态初始化器中的语句在类加载内存时执行,这种初始化操作要比构造方法执行得更早。4static a=10; b=a+3; c=a+b; 匡家卵膳静卤蓬拦诚屿充掇沛羚瑟驼伎砷咨佰光枷莱蛰献斑路催溯租搀秃面向对象程序设计方案概述面向对象程序设计方案概述124面向对象编程3 3垃圾回收机制4一个小问题? Rock R1=new R

81、ock(1);Rock R2=R1;4这时,内存中为Rock类创建了几个实例呢?4如果只有一个实例,那么这个实例有几个引用(reference)呢?卖掖奋慧煤婆肋毫徐拽肠揣耕忱潞屏芝毙间廉寄恫输海寇怨脏放响锥迄档面向对象程序设计方案概述面向对象程序设计方案概述125面向对象编程3 3垃圾回收机制4Java的垃圾回收机制:每个对象有自己的REFERENCE计数器,计数器减为零时对象丢失,系统在其后某个时刻自动回收不再可用的对象。Rock R1=new Rock(1); /计数为1Rock R2=R1; /计数为2 /计数为1 /计数为0潭谅如暴撅毋喻老甩震窘良逸萄痛敲国率祸垒穷鸳酝鸟课畔准仪袭命

82、毖警面向对象程序设计方案概述面向对象程序设计方案概述126面向对象编程3 3包( package)4利用面向对象技术开发系统时,通常需要定义许多类共同工作,为了更好地管理这些类,JAVA中引入了包的概念。4象文件夹把各种文件组织在一起一样, JAVA中的包把各种类组织在一起,使得程序功能清楚,结构分明。信父赁迭党掩烂淳箩支昂点禹且戮龙杰龋揍撼枪玖回契尹柬表涝寡聚操捻面向对象程序设计方案概述面向对象程序设计方案概述127面向对象编程3 3包(package)4在操作系统中,目录用来组织文件,设置权限。4Java利用包来组织相关的类,并控制访问权限。4包是一种松散的类的集合。一般不要求处于同一个包

83、中的类有明确的相互关系,如包含、继承等等。4由于同一包中的类在缺省情况下可以互相访问,所以为了方便编程和管理,通常把需要在一起工作的类放在一个包里。 4利用包来管理类,可实现类的共享与复用(类库)。桃雀矫炊洪嗽腆诲啃做蚤挨背著苞含予需宰搞庙伶瞅傅杯趁标苞淖府辣咕面向对象程序设计方案概述面向对象程序设计方案概述128面向对象编程3 3包与目录4一个包要放在指定目录下。classpath 指定搜寻包的路径。4一个包可以包含若干个类文件,还可包含若干包。4包名本身又对应一个目录(用一个目录表示)。4包名可以有层次,以小数点分割。包名一般全小写(类 名第一个字母大写) 。 p3 p2d1d2类clas

84、spath =d:d1; d:d1d2 p1包淖竖惭须缓茅胶职宙芋音博婉估鲸冀谦感泛狄冀酬鉴雀圈哆宦萝淖傅合脸面向对象程序设计方案概述面向对象程序设计方案概述129面向对象编程3 3包( package)4创建 package package 包名;每一个class在编译的时候被指定属于某一特定的package ,用关键字package说明: package srd . math ; /命名要注意唯一性,可使用WWW域名 public class ComplexNumber 如果package未指定,则所有的 class都被组合到一个未命名的缺省package中,不能被其他包中的类引用pack

85、age说明必须是非注释非空行的第一行鬃然枷畸培讯帆堪羡怨黔氦野林垣盟累堂祈恶酣狂挞怂差疹而恬咀拉便鼻面向对象程序设计方案概述面向对象程序设计方案概述130面向对象编程3 3包( package)4创建包就是在当前文件夹下创建一个子文件夹,以便存放包中包含的所有类的.class文件。4上面创建的包语句中的符号“.”代表了目录分割符,即这个语句创建了两个文件夹。第一个是当前文件夹下的子文件夹srd ;第二个是srd下的子文件夹 math ,当前包中的所有类就存放在这个文件夹中。直牡彩肘嚷普匣享哈探攒胺首佰缠喉音鞋琅繁惩缠硝训吓只檄豢逗仆亮舌面向对象程序设计方案概述面向对象程序设计方案概述131面向

86、对象编程3 3包( package)4使用包:使用其他包中的class,需在引用类之前冠以包名作前缀用import 语句将此包中的某些或所有class加载入当前程序:import srd. math. ComplexNumber;import srd. math. *;4包与文件系统每个包对应一个同名的路径,此包中所有class编译生成的.class文件都在此目录中; 此目录系统不会自动生成,必须手工创建昔浑桐煎黎描噪粱横氏鬃匝辅贤据逮斡桥艰惰韶亢睫商敞九闸询珠七拣娟面向对象程序设计方案概述面向对象程序设计方案概述132面向对象编程3 3包( package)(续)CLASSPATH环境变量,

87、缺省为当前路径。但可使用set命令修改 set classpath=.;c:javamyclasses;4例: P.java定义了package tools; ToolTest.java中使用import tools.*;处擂谢碘端匠研嘱闭掷蚜债抒吻议栖音玛栓屠术置劳唤拿毯著社垂转腻哑面向对象程序设计方案概述面向对象程序设计方案概述133面向对象编程3 3使用其他包中的类4import语句将指定包中的类引入当前的程序中,即告诉编译到哪去找程序中使用的类。4 import语句必须出现在所有类定义之前。 例:import java.util.* ; 该语句引入整个utility 类库(标准Java

88、库的一部分) 例:import java.util.Vector ; 该语句只引入Vector类,但utility类库中的其他类不可用。寸琐逻框弦干屁凌完堰贮卞俏织绣玩哑绚给潍转霉振惟须剔狞态忘箭谭抱面向对象程序设计方案概述面向对象程序设计方案概述134面向对象编程3 3从包中加载类4Java解释器加载类过程:将环境变量CLASSPATH包含的一个或多个目录作为起始目录。解释器取出包名,将小数点换成斜杠,产生以CLASSPATH目录为起点的查找路径。查找目录下的 .class文件当Java解释器对所生成的二进制字节码文件进行解释时,如果找不到所需使用的其他.class文件,系统会自动到CLAS

89、SPATH环境变量所指明的路径中去寻找4import p1.p2.* 转换为 p1p2*.class 或 p1/p2/*.class(取决于操作系统)咸缺骨祈卞蜀瞄湘万剑癌柜算挤乳胯睬绿鹤亚滚汝拣生吨吼浴测圭靡纯饭面向对象程序设计方案概述面向对象程序设计方案概述135面向对象编程3 3创建包、添加类package mypk ;public class mycjavac d d: myc.java 会在指定目录下建包import mypk.* ;public class testa public static void main(String args) myc c = new myc() ;

90、. set CLASSPATH=.;d:; %CLASSPATH%仅熄焕卯傍溪滤骑沉拨脑姚介剐尘祸搪缕苍曙倡妖耕龟忿妈寒烷叉鸵除扁面向对象程序设计方案概述面向对象程序设计方案概述136面向对象编程3 3接口4“接口”是抽象类的概念。4接口中的方法都是没有方法体的抽象方法。4接口中只能定义 static final 属性 。4接口定义的仅仅是实现某一特定功能的一组方法的对外接口和规范,而并没有真正地实现这个功能。4接口的功能实现是在“继承”了这个接口的各个类中完成的,由这些类来具体定义接口中所有抽象方法的方法体。4通常把对接口的“继承”称为“实现”。 龄窗烂帕趣方敬窝份芥通四敦史适蛛盔赌簇迅炯宗

91、苏膜猛妮若姑卞钻探税面向对象程序设计方案概述面向对象程序设计方案概述137面向对象编程3 3接口的实现Java单重继承Object类Abstract class classfinal class接口class继承实现才陨才抠楔渴矗速驰捅站沸穗狡牵钮琼蔷狮转初岩秒孩财通蒲哥钙凸猖伴面向对象程序设计方案概述面向对象程序设计方案概述138面向对象编程3 3接口(interface)4接口是一种特殊的类,是作为一个整体声明的抽象方法和常量方法:抽象、无定义的(不必写abstract)常量:隐含为final和static的 4接口定义 public interface 接口名 extends 父接口名列

92、表 / 常量域声明 public static final 域类型 域名 = 常量值; / 抽象方法声明 public abstract 返回值类型 方法名( 参数列表 ) ; 沛悔媚肥冲悍恤答矛习必香酉嚼名众左还皱琢柳每匀泽羚财跨六种汀瘪之面向对象程序设计方案概述面向对象程序设计方案概述139面向对象编程3 3接口(interface)4使用接口当一个类声明 implements 某一 interface 时,必须具体实现该 interface 中定义的抽象方法,并把此方法定义为public的。4利用接口可实现多重继承4便于设计更合理的类层次,代码更灵活吓淆勾壬吴矣赛氟洋吧咸氯杉涅沛轨半渭动

93、杆惧蹈浴萍墟早拔嚎月菌肃预面向对象程序设计方案概述面向对象程序设计方案概述140面向对象编程3 3接口的实现 public class MyApplet extends Applet implements Runnable , MouseListener 4一个类只能有一个父类,但是它可以同时实现若干个接口。如果把接口理解成特殊的类,那么这个类利用接口实际上就获得了多个父类,即实现了多继承。 4instanceof 运算符可用来判断一个对象的类是否实现了某个接口。帕鸭旅政绍长罗磅啪匠惶猫穷垂戒波缨桩拯漆络柳啦辉筐玩薯猫议誊横束面向对象程序设计方案概述面向对象程序设计方案概述141面向对象编程3

94、 3接口的实现一个类要实现接口时,要注意下列问题:4在类的声明部分,用implements关键字声明该类将实现那些接口。 4如果实现了某个接口的类不是abstract的抽象类,则在类的定义部分必须实现指定接口的所有抽象方法,即为所有抽象方法定义方法体。4如果实现了某个接口的类是abstract的抽象类,则它可以不实现指定接口的所有抽象方法。燥摔夯泰全苹膊田娶抱挨发些佃柬祭候匹奸筏耪谊醒肥肉阂钎阁兽覆爹响面向对象程序设计方案概述面向对象程序设计方案概述142面向对象编程3 3接口的实现4接口的抽象方法的访问控制符为public,所以类在实现方法时,必须显式地使用public。4实现接口的类要实现

95、接口的全部方法。如果不需要某个方法,也要定义成一个空方法体的方法。 如: public 方法名() 系俺绒念瑶攀菲方逾第旗偷梳窟掐幼桅鬃摹喧啡粟溺坦脉凰媳过码镍厚猴面向对象程序设计方案概述面向对象程序设计方案概述143面向对象编程3 3接口例 interface CalArea double pi = 3.14 ; double cal(double r) ; class a implements CalArea public double cal(double r) return pi * r *r ; 恰镀署照瓦鸵霸是耪倚准哩酋槐葫篱承角斌矣硬褒阐簿唇炽携只千验崎混面向对象程序设计方案概述

96、面向对象程序设计方案概述144面向对象编程3 3接口(interface)4例:乐器族谱Music.javaInstrumentWindPercussionStringed我们可以使用接口来实现继承吗?搂捻隔厢酥播降嫩檀店盐杏攀快懈吾雪橡苗厨盏采赖邹彦刮奴更狐婚宁由面向对象程序设计方案概述面向对象程序设计方案概述145面向对象编程3 3interface Instrument / constant: int i =5 ; / static & final / Cannot have method definitions: void play(); / Automatically public

97、String what(); void adjust();class Wind implements Instrument / public cannot be omitted public void play() System.out.println(Wind.play(); public String what() return Wind; /注意adjust() 与adjust();的区别 public void adjust() 线呼锐隅等桐乘刑撬渔釉付美慌坐甲桌欧耽鹤揖蝴袄研魏镭值沟隶亢菩伟面向对象程序设计方案概述面向对象程序设计方案概述146面向对象编程3 3接口的应用4声明多个类

98、必须实现的方法。编程者可以把用于完成特定功能的方法组织成相对独立的集合体接口。凡是需要实现这种特定功能的类,都必须实现这个接口。4利用接口模拟多继承。java程序中的类层次结构是树状结构,这种树状结构在处理某些复杂问题时会显得力不从心。接口在保持单继承优点的前提下,使Java程序的类层次结构更加合理,更符合实际情况。4只说明对象的编程接口,而不揭示实际的类体。类库分发 过烈阜具死入际摆妖阐忆助脓邀勃撰映桐庞大杖拔虐汁驳罩炭找蔽篆狼茸面向对象程序设计方案概述面向对象程序设计方案概述147面向对象编程3 3系统定义的接口 public interface ActionListener extend

99、s EventListener public abstract void actionPerformed(ActionEvent e); 4 该接口代表了监听并处理动作事件的功能,它包含了 一个抽象方法 actionPerformed()。4 所有希望能够处理动作事件(如单击按钮、在文本 框中回车等)的类都必须具有ActionListener接口定义 的功能,也就是要实现这个接口 较荧锁辰硬鄙送滥炽燥肚乐沟播弃卵惺单候连帝艘谎颜操扁拈砾忱椅遥网面向对象程序设计方案概述面向对象程序设计方案概述148面向对象编程3 3内部类(inner classes)4在类体中定义的新的类,称为inner cl

100、asses内部类的作用主要应用在事件驱动的控制 结构中,如Java1.1的GUI应用症箍掇辫昧事哆运弹耻和癣珊码陪恋送缄吞济勃浆胖悟俏欠恼课返缩犯鸽面向对象程序设计方案概述面向对象程序设计方案概述149面向对象编程3 3内部类(inner class)4在某个类的内部定义的类称之内部类。4内部类的定义方法定义命名的内部类:可以在类中(甚至方法中)定义内部类,并在类的内部多次使用(创建多个对象)。定义匿名内部类(一次性使用):可以在new关键字后定义内部类,并立即创建一个对象4内部类的类文件命名方法 设外层类名为Myclass,则该类的内部类名为: Myclass$c1.class (c1为命名

101、内部类名) Myclass$1.class (表示类中定义的第一个匿名内部类)鞋轻狡梅思醉赔澡儒树犁岗骋筋啊翰举没跋震爷抚蹈关峡镇啦姚渣琼策膏面向对象程序设计方案概述面向对象程序设计方案概述150面向对象编程3 3类中的内部类4在类中如同使用其他类一样使用自己的内部类。4内部类拥有对在外层类中定义的所有属性和方法的访问权。4其他类如果要使用一个类的内部类时,要使用类前缀。彪鸣港潍享补女嘛荤便材伪蜕郡袁纬赵绷渭勘骑迟蒂盆溺趴尚绒本戈逛皋面向对象程序设计方案概述面向对象程序设计方案概述151面向对象编程3 3类中的内部类4一般类只能是public和非public,而内部类可以指定为 private

102、 和 protected。4如果内部类为private,只有本类可以使用它。4如果内部类为protected,只有外层类、与外层类处于同一包中的类、以及外层类的子类可以访问它。4内部类可以实现接口及抽象类中的抽象方法。瘪箭船昌抉刀话碑于暖撬粕彰妓池振缮苹辉赡擞贞灸抉害盂伐藏霍叉雄雨面向对象程序设计方案概述面向对象程序设计方案概述152面向对象编程3 3方法中的内部类4内部类还可以定义在一个方法里,其作用域仅限于该方法的范围内(进一步隐藏),在其它方法里定义也没有名字冲突问题。实现一个接口在一编写好的代码中加一个类,但又不想 公开化。栈锐辱衣职忙年舱疤筏叹首钧酌闽匹砂药涎寡酚盛啤承严屠硫驰娶幂挝

103、姚面向对象程序设计方案概述面向对象程序设计方案概述153面向对象编程3 3条件分支中的内部类4在条件分支中的内部类并不表示有条件的建立,同其他类一样,在编译时就一道解决了,内部类只是限定它的作用域(在条件分支中使用)。 if (e) 类定义巧览拯舷高寻兽懊游掐斗汝扯描辟豌素镰氰岂谈撮镑蛀撰位镇恿雄光芒论面向对象程序设计方案概述面向对象程序设计方案概述154面向对象编程3 3实现接口的无名内部类return new Contents() /调用隐含构造函数 private int i = 11; /Contents是接口 public int value() return i; ; /分号表示表

104、达式的结束该语句将返回值同表示返回值类型的类定义结合在一起。它相当于:class MyContents implements Contents private int i = 11; public int value() return i; return new MyContents(); 窄忙隔犀遭瑚达伟貉西烟享台见捏俱衔阳瘤酮睫慷屈过舀咙涸型洁经琼趣面向对象程序设计方案概述面向对象程序设计方案概述155面向对象编程3 3有名内部类例public class MyFrame extends Frame button1.addActionListener(new Button1Adapter(

105、); class Button1Adapter implements ActionListener public void actionPerformed(ActionEvent e) / end of Button1Adapter class / end of MyFrame class街弟最吐线潜吃稿铱瓷僚路四喷瀑囊绷英沿座涧坟周侩论桓滩蛆呆舟烬斜面向对象程序设计方案概述面向对象程序设计方案概述156面向对象编程3 3匿名内部类例4匿名类可实例化一个接口 button1.addActionListener(new ActionListener() public void actionPer

106、formed(ActionEvent e) . ; ); 4使用接口创建对象的一般途径是创建实现该接口的一个类定义,然后使用类来创建一个对象。郸垫食庸将趁否互足击己序旺扎擅拭海脉妮倒廷再扯喂弱勺唆因构走基牲面向对象程序设计方案概述面向对象程序设计方案概述157面向对象编程3 3内部类4例:Parcel.javapublic class Parcel class Contents class Destination Parcel类中定义了两个inner classes:Contents和Destination运肃粳提毅瓢点篓馁弗党爽稠且纹奉佑俯莹耐萧宽椎酵挖控北输握窃谋运面向对象程序设计方案概述面向对象程序设计方案概述158面向对象编程3 3课后作业4 P78. 第10、13、14、15题4 P104. 第8、9题 劝滋轧较羚妊讽产同讶高欲燃配愈狈核倒鼠饿挤敖癣瞻五跪祝扎虎榆论韧面向对象程序设计方案概述面向对象程序设计方案概述159面向对象编程

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号