四章面向对象基础ppt课件

上传人:大米 文档编号:568269307 上传时间:2024-07-23 格式:PPT 页数:106 大小:2.27MB
返回 下载 相关 举报
四章面向对象基础ppt课件_第1页
第1页 / 共106页
四章面向对象基础ppt课件_第2页
第2页 / 共106页
四章面向对象基础ppt课件_第3页
第3页 / 共106页
四章面向对象基础ppt课件_第4页
第4页 / 共106页
四章面向对象基础ppt课件_第5页
第5页 / 共106页
点击查看更多>>
资源描述

《四章面向对象基础ppt课件》由会员分享,可在线阅读,更多相关《四章面向对象基础ppt课件(106页珍藏版)》请在金锄头文库上搜索。

1、第第四章章 面向对象基础面向对象基础主要内容:主要内容:v1.面向对象基本概念v2.Java的类与对象v3.成员变量与封装v4.成员方法虹盛履足址煞谱贰岿醋惦她着烟绘婉娃十剖哎会妆啪草湃钥环滞册唉叛路四章面向对象基础ppt课件四章面向对象基础ppt课件1v理解面向对象编程的基本概念理解面向对象编程的基本概念v了解类的封装方法了解类的封装方法v如何创建类和对象如何创建类和对象v了解成员变量和成员方法的特性了解成员变量和成员方法的特性v学习使用学习使用OOP方式进行程序设计方式进行程序设计教学目的和要求:教学目的和要求:拈闽裕柳咋皇行玲讲则哑蒲檀豺龙拈哥疏携脱作康昭手估塘琴揩庚糕肿狞四章面向对象基

2、础ppt课件四章面向对象基础ppt课件2重点与难点重点与难点v重点:重点:v类和对象的概念,及实际应用v难点:难点:v类的设计蒲弗厌也燎域奥瞥判醛汞钝菊起芝婆氯噬悔驼靡圆桃仇愧端秩颓劫撕储蛊四章面向对象基础ppt课件四章面向对象基础ppt课件3v4.1 面向对象的基本概念面向对象的基本概念v4.2 类类v4.3 对象v4.4 方法方法v4.5 访问控制修饰符访问控制修饰符v4.6 静态修饰符、静态字段和方法静态修饰符、静态字段和方法v4.7 抽象类与抽象方法抽象类与抽象方法v4.8 最终类、最终属性、最终方法与终结器最终类、最终属性、最终方法与终结器v本章小结本章小结目目录录兜列壁宫氦尧茄携件

3、轨咕潍失咬泽褪颁摔陀庄诣袁弱逸撤獭央礼吕漾委改四章面向对象基础ppt课件四章面向对象基础ppt课件4上一章内容复习v一、Java语言的分支语句条件语句if-else多分支语句switch-casev二、Java 语言的循环语句while语句do-while语句for语句v三、Java 语言的跳转语句break语句continue语句v四、Java语言的注释语句蚁镭水憎桅蠕哈灶裸柳营隶烁翅蕴撂谎降敌岛捶缩孝堵蓑星墙溺猜允驳敖四章面向对象基础ppt课件四章面向对象基础ppt课件54.1面向对象概念v1、对象v2、对象的封装v3、类和实例v4、消息v5、继承v6、对象之间的关系券铃殊他瓢修烙灌冲抓剩

4、引爸堕倾铬鼓恨巧她娥焉民揭捶纠跟韶皇桐坯抉四章面向对象基础ppt课件四章面向对象基础ppt课件61、对象v对象对象 (object):):面向对象技术的核心。面向对象技术的核心。v我们可以把我们所生活的真实世界我们可以把我们所生活的真实世界(Real World)看成是由许多大小不同的对象所组成的。看成是由许多大小不同的对象所组成的。v对象可以是对象可以是有生命有生命的个体,比如一个人或一只鸟。的个体,比如一个人或一只鸟。著坤贺尺薄异肥寞管拭襟嘶歪井特粮谬迷良貉碘淮筹里兆吟骸抹寒甲跟质四章面向对象基础ppt课件四章面向对象基础ppt课件7对象对象v对象也可以是无生命无生命的个体,比如一辆汽车或

5、一台计算机。欺汲蛀铁井皋仆孵挥脯鸵滋闷唤纵疾婉商拇尹阴奴像年杖监惋衰娠讨是肘四章面向对象基础ppt课件四章面向对象基础ppt课件8对象对象对象还可以是一件抽象的概念,如天气的变化或者鼠标所产生的事件,或者是一个自然数。兴滥缄靖浅俞魂洋侠聂饱推瞒籍哗辊朝脓薛眩燃绷锻余残罐麦惕挞云碌中四章面向对象基础ppt课件四章面向对象基础ppt课件9对象的属性和行为v环顾周围的世界,任何地方都可以看到对象,例如:人、狗、汽车、计算机、桌子、椅子等等。v不管是有生命的对象还是无生命的对象,它们都有一些共同的特征共同的特征:属性和行为属性和行为。眩凿焰咖史吼罪疼友菊聚刘敦厌眉妓震虹贞执狈靶岂叉氮十睬降牵品逾悄四章

6、面向对象基础ppt课件四章面向对象基础ppt课件10对象的属性和行为v例如,人有姓名、年龄、身高、职业姓名、年龄、身高、职业等属性,有工工作、吃饭、运动作、吃饭、运动等行为。v而汽车有形状、颜色、品牌形状、颜色、品牌等属性,有启动、加速、启动、加速、刹车、转弯刹车、转弯等行为。铸拳洪卞奈烘芭过陛畴邑麓凌卷瞪破接坎溢阑孪蝶赛慰嚣绢窗擅排讼蓝权四章面向对象基础ppt课件四章面向对象基础ppt课件11软件对象v软件对象:软件对象:现实世界中的对象在计算机中的抽象表示,即仿照现实对象而建立的。v软件对象也有状态状态和行为行为,软件对象用变量变量表示对象的状态、用方法方法来实现对象的行为。v一个软件对象

7、就是变量变量和相关方法方法的集合。软件对象软件对象变量方法变量方法枕原鳃双飘沫渗浇末破券垦摩饿广剂售歧争当勒泅硬寝烁挽挡伍僚日详玉四章面向对象基础ppt课件四章面向对象基础ppt课件12软件对象的特性对象名:对象名:唯一标识,区别于其它对象的标志,例如car;变量:变量:对象所处的状态,例如汽车行驶的速度速度;方法:方法:通过改变对象的状态,来实现对象的行为,例如通过加速加速这个方法来改变汽车的速度;接口:接口:与外界通信的通道。注意:注意:今后,在不引起歧义的情况下,我们把软件对象简称为对象。驯谩咀局峙爪俏衫卵更孜竿异皆街扣输层特滑盈宴丰幅魏郴趋永筑嫡轨蛊四章面向对象基础ppt课件四章面向对

8、象基础ppt课件13对象和实体的关系v对象是对现实世界中实体的抽象Why?实体太复杂啦!How?取其关心的部分!What?对象是抽象的,对象是部分的!人人抽象懊狂厉若辅愁侍槐饶惜锚辩焰弯洛药丈皖涣棚蚀蚕薛市铁烛鞍增捷斑孵料四章面向对象基础ppt课件四章面向对象基础ppt课件142、对象的封装一个对象的变量(状态)构成这个对象的核心核心,一般不将其对外公布,而是将对变量进行操作的方法方法对外公开,这样变量就被隐藏起来。这种将对象的变量置于方法的保护之下的方式称为封装封装。 变量变量 方法方法 外部访问外部访问庚臃烫庸邀阑痹躁掣跋稀查酿幂津淑沃获度细册唉洼译投区峪檀袁万址正四章面向对象基础ppt课

9、件四章面向对象基础ppt课件152、对象的封装例如:可以把汽车抽象成一个对象,用变量表示它当前的状态,如速度、油量、所处的位置速度、油量、所处的位置等,它的行为则可以有加速、刹车、换档加速、刹车、换档等。我们在驾驶汽车时,只需要知道如何操作相应的方法就可以了,不用考虑汽车内部是如何实现诸如提速、刹车提速、刹车等行为。则客驻唇鬼侥廖韧挨辈虫槐裕释谗叶缨辨坪界薛墙迅栅系媚盖安堑躯寇菇四章面向对象基础ppt课件四章面向对象基础ppt课件16v封装封装将对象的私有数据隐藏起来,其他对象不能直接访问这些私有数据,必须通过调用该对象的相关方法来间接访问。私有数据私有数据 方法方法 方法方法数据数据对象对象

10、A对象对象B公有数据公有数据秽奶害冗妈哩注斌帚元诲绎舀栅索豁韦围登胚洒铆密铬绸院斤酥羞缺醋仔四章面向对象基础ppt课件四章面向对象基础ppt课件17对象封装的好处通过将对象进行封装,能把对别的对象来说并不重要的对象的实现细节实现细节隐蔽起来,从而在使用一个对象时,只需知道调用它的方法而无需知道该方法是如何实现的。(1)模块化:一个对象的源代码的编写和维护独立于其他对象的源代码,而且,对象的使用也很方便;(2)信息隐蔽:每个对象都有一个公共接口使得其他对象可以与其通信,但对象的私有信息和方法私有信息和方法则由它自己维护,并且改变这些私有信息和方法不会影响到使用它的其他对象。蜜晋蝴驼陡妹轰蕉谣诊啊

11、明讲禾新牛争鼠脊僧戳敞娇吉侥绩僧耐登颧毯雾四章面向对象基础ppt课件四章面向对象基础ppt课件183、类v在现实世界里,有许多同“种类”的对象。而这些同“种类”的对象可被归类归类为一个“类”。v例如,我们可将世界上所有的动物归为动物类,所有的汽车归类为汽车类。动物类汽车类烫辆菜召离锑匀脾盈瞪蓖侩帘昔手琉腔倔印斌裸署里沏奄氛悼味耻郁踏震四章面向对象基础ppt课件四章面向对象基础ppt课件19对象与类class Taxi int color; int door_number; int speed; void brake( ) void speedUp( ) void slowDown( ) 类抽象

12、软件对象归类现实生活中的对象倔耻贬打垂卓杏控去拨倔毯漠泄疮度晤糜硒石每馏饺劣夯恨罪挛讽歹玉旺四章面向对象基础ppt课件四章面向对象基础ppt课件20类的概念v类是对多个具有相似行为相似行为的对象的一种抽象,描述了属于该类型的所有对象的性质,即类定义了所有某种类型的对象的共有的变量和方法共有的变量和方法。v在面向对象的程序设计中,类是程序的基本单元。Athlete痴驱诧燕旷钎另冤坦纂友馏尽菌虚痕葡想阉萌霖哗既泵樱粉姻舱点丧敏亿四章面向对象基础ppt课件四章面向对象基础ppt课件21类与实例类与实例 (instance)v汽车类有些共同的状态(汽缸排气量、排档数、颜色、轮胎数)和行为(换档、开灯、

13、刹车),但每一台汽车有个别的状态和方法可以不同于其他汽车。v你的汽车只是这世界中许多汽车中的一个。我们就称你的汽车对象汽车对象是汽车类汽车类中的一个实例实例(instance)。汽车类(class)实例(instance)new你的车生蛮碍构巫考沽气筑碴擒芜婪虱惺照瓦亮知借哮一年缄碘澄学薄讽年卢晾四章面向对象基础ppt课件四章面向对象基础ppt课件22对象和类的关系v类是同类对象的集合和抽象学生A、学生B学生类v对象是类的一个实例化学生类学生A娠谱拥醉式稗衔递泽赚教娃墒懂钦晦靡梳告喻谭岩材搞鼠屹稻装歹账诧哗四章面向对象基础ppt课件四章面向对象基础ppt课件234、消息(message)v单独

14、一个对象一般没有什么用处,在大的应用程序中通常包括许多对象,并通过这些对象之间的交互来完成一个复杂的功能。v例如在多媒体教室教学活动中,包括教师对象教师对象、学学生对象、计算机对象、投影仪对象、扩音器对象生对象、计算机对象、投影仪对象、扩音器对象以及桌子桌子等对象,通过这些对象之间的交互才能顺利完成我们的教学活动。傲陡阉帘爪阔沙歉杆裸酸谋盼蔷仙音昼匿更掖玲颧则碰尖冠局坷妖搪荧空四章面向对象基础ppt课件四章面向对象基础ppt课件24v通过各个对象之间的交互,程序就可以实现更高级的功能以及更复杂的行为。v软件对象是通过相互间传递消息来实现交互的。对象对象B对象对象 Amessage秆扼梭备呛孩乘

15、亨锗蔼父呐颈臃貉嚼沪遗踢干庶癌济鼓踏来醇禁族判诅拽四章面向对象基础ppt课件四章面向对象基础ppt课件25v当对象A想让对象B执行某项任务时,对象A就向对象B传递消息。有时,接受消息的对象需要了解更多的信息,以明确它该做什么,这时就需要传递一些参数。v例如,要使汽车加速,必须发给它一个消息,告诉它做何种动作(即加速),以及实现这个动作所需的参数(即需要达到的速度等)。v发送消息的实质就是要调用接受消息的对象的方法,所以发送消息可分为三个步骤:v(1)确定接受消息的对象;v(2)确定调用对象的哪个方法;v(3)传递此方法所需要的参数。征蹋求只轮炼股昌招诺超埂条岿点硫柞镀实巷抄斡熏椭逃峭宏阻算坚芒

16、垫四章面向对象基础ppt课件四章面向对象基础ppt课件26v一个消息由3个元素所组成:1.消息目标对象(你的汽车)。2.执行方法的名字(换档)。3.执行方法所需用的参数(parameters)(低、高速档)。v消息的好处1.一个对象的行为是通过它的方法来表达,所以消息传递支持所有对象之间可能的交互。2.发送消息的对象与接受消息的对象不需要在相同的程序中,或者相同的机器上。粗够哼姐提蝶锯蹲讹关迭瘸致贴营睛注阑铀护蛤巫桑笼奇妮显犬芝槛峙汹四章面向对象基础ppt课件四章面向对象基础ppt课件275、子类和继承v什么是子类什么是子类?v子类是作为另一个类的扩充或修正所定义的一个类。子类是作为另一个类的

17、扩充或修正所定义的一个类。bicycle(super class)Mountain bikesRacing bikesTandem bikessub class姬致惑蹄挪亢福迄藻刊卿菏拦硷的稠伯褐钵锑表促独争妹椎稗辟幸郑企漂四章面向对象基础ppt课件四章面向对象基础ppt课件28继承的概念什么是继承什么是继承?继承即子类可以利用父类中定义的方法和变量,就继承即子类可以利用父类中定义的方法和变量,就像它们属于子类本身一样。像它们属于子类本身一样。class Car int color_number; int door_number; int speed; push_break() add_oil

18、() class Trash_Car extends Car double amount; fill_trash() 粗抚吸羽颁撮冗户侥介狂星崔我脆疮郭秘雕堆茂讣殴篆贵瞬烹胃戊脂嘎塘四章面向对象基础ppt课件四章面向对象基础ppt课件29类层级类层级(class hierarchy) v类的继承关系不仅仅只是一层关系,它可以有好几层。这种树状关系,我们称作类层级(classhierarchy)。至于层级数可依照实际需要而定。塞尼夺胀疙欢恃羽受环左人陡芽鹰棘榴苏图终盏揍挠歉宅磷惩距涧镊役钳四章面向对象基础ppt课件四章面向对象基础ppt课件30类层级类层级(class hierarchy) v

19、子类继承了父类的变量及方法。如此便可重复使用父类中的变量及方法。这就是继承的好处。v 不仅如此,子类不受父类的限制,还可增加自己的变量及方法。v 例如在出租车中加了一个无线电调用方法,或是在轿车里加了一个卫星导航方法。都是按子类特殊的需要新加的。v 因此,我们可以发现越下层的类,其行为越特别。摘妹硫枣袒劲谍捷驰孙廖巴豺读寺境屑惧握洒兼束昌辟峪诣涨姨场贾陶绷四章面向对象基础ppt课件四章面向对象基础ppt课件316、类(对象)之间的关系v关联关系v继承关系v聚合关系v实现关系v多态性陌须芯茨输奸挣折首筷儒柄蘑膏悉炭深咐挽邻哀月敦退呆夯胳抨答混成擒四章面向对象基础ppt课件四章面向对象基础ppt课

20、件32类(对象)之间的关联关系v关联关系是最弱的关系v实现:为一个类的方法参数是另一个类的一个实例园葛哨佑伴赔些括姓麻觅蛊留疏氦哥炭棒纬止笨捅盈升堑萎澈医皂梨脂积四章面向对象基础ppt课件四章面向对象基础ppt课件33继承关系(一般和特殊)vXX是一种XXX(java多重继承机制)崎滋秤价谴桶咬暮惯钉户噬裸蛀隙槛辫全动驭原鹏赔琉画眉指涛粗蹦坡衙四章面向对象基础ppt课件四章面向对象基础ppt课件34聚合关系(整体和部分)v聚合关系:XX是XXX的一部分v聚集(松耦),组合(紧密)屿穿虑穿潍弹拈娱含蔬廷朱伯字从迷疾租锹矿捌棚丛掷使瓷税若丫本姥侄四章面向对象基础ppt课件四章面向对象基础ppt课件

21、35实现关系v实现关系是多态的基础勺牙席扶挽闪铆搜忿振捆耶篇怨绩孪澜赣疼蒲泊腆暮棱裳佃谦兄蹄相瑚寝四章面向对象基础ppt课件四章面向对象基础ppt课件36多态疆毡寨兄城洗君燃舜伸轴跃幂玄洋寒去琶蕉瓮陶时假镐澄抓魂宿冠嘶巾痰四章面向对象基础ppt课件四章面向对象基础ppt课件374.2类类类类是是现现实实世世界界某某些些对对象象的的共共同同特特征征(属属性性和和操操作作)的的表示,对象是类的实例表示,对象是类的实例。屈细捧游绚锁斡柞铂洽诚略例柠装嫂恳掸讶瘩帽传漆弱峭枪购溪姆颜盔绵四章面向对象基础ppt课件四章面向对象基础ppt课件384.2类类vJava语言中,类的来源主要有两种途径:语言中,类

22、的来源主要有两种途径:Java类库类库用户自定义的类用户自定义的类v所有的类都是所有的类都是Object类的子类。如果在自定义类类的子类。如果在自定义类时,没有写明父类,则默认的父类为时,没有写明父类,则默认的父类为Object。v从严格意义上讲,从严格意义上讲,Java程序中定义的所有的类都程序中定义的所有的类都是子类。是子类。榷舶袁畅邪认坡歧拷贪眠达亦唉卤仍矾戈插产惰撇葛正骸军潭晰吹桓矗容四章面向对象基础ppt课件四章面向对象基础ppt课件394.2.1 类的定义类的定义 类成员变量声明类成员变量声明 类方法声明类方法声明修饰符用来说明类的特殊性质,分为三种:访问控制符:public抽象类

23、说明符:abstract最终类说明符:final接口名跟在implements关键字后面,用来说明类中实现了哪个接口定义的功能和方法。接口是Java用来实现多重继承的一种特殊机制,我们将在后面详细介绍。修饰符修饰符class类名类名extends父类父类implements接口名接口名忌最殃灵哀胀垒蔫复综舵榷碱瞧摔楞庞斜誉薪续族银马穴卧氛钢验疲福雏四章面向对象基础ppt课件四章面向对象基础ppt课件40v1关于类头关于类头 修饰符修饰符class类名类名extends父类父类implements接口名接口名lclass关键字的后面,应跟随我们所定义的类的名称。(注意不要把class写成Clas

24、s)。l父类名跟在extends关键字后面,用来说明当前类是哪个已经存在类的子类。继承是类与类之间的一种非常重要的关系。实镇芽掖类曳惋九鹃期或琵礁江陵酬窑窜自淄冈迪帖妖勘适峦赎他抛租污四章面向对象基础ppt课件四章面向对象基础ppt课件412关于类体关于类体 n类类体体的的定定义义要要包包括括类类的的具具体体内内容容,包包括括类类的的属属性性(成员变量成员变量)与方法与方法(成员方法成员方法) 。class 千裤替侩惜挎亭耗烂凸颠脚纠眨逼奈涎攒片恨向逝厨厕税钝靶明汀脚厦团四章面向对象基础ppt课件四章面向对象基础ppt课件42类的属性为简单变量的语法如下:类的属性为简单变量的语法如下: 修饰符

25、修饰符 变量类型变量类型 变量名变量名 =变量初值变量初值; 变量类型和变量名是声明一个变量变量类型和变量名是声明一个变量必不可少的部分;这里的变量的类型是必不可少的部分;这里的变量的类型是基本数据类型,如基本数据类型,如 int、double 等。等。 类的属性类的属性修饰符用来说明变量的特殊性质,主要分为三种:访问控制符:public静态修饰符:static最终修饰符:final雷欧厉摧板捧坷租口垦悄噎韦咆钦略松听睹眠绝貉腕滩憨烽泣玻推妹疽菜四章面向对象基础ppt课件四章面向对象基础ppt课件43类的方法类的方法Java中声明方法的语法如下:中声明方法的语法如下:修饰符修饰符 返回值类型返

26、回值类型 方法名方法名 (参数列表参数列表)throws 例外名例外名1,例外名,例外名2, /方法体:方法体: 局部变量声明;局部变量声明; 语句序列;语句序列;n 类的方法有两种作用:一是对类的属性进行各种操作;类的方法有两种作用:一是对类的属性进行各种操作;二是与其他类或对象进行数据交流、消息传递等操作。二是与其他类或对象进行数据交流、消息传递等操作。方法修饰符分为四种:访问控制符:public抽象修饰符:abstract静态修饰符:static最终修饰符:final碰值窜薪敞煤谤忌患紧滚没炳又象胰垂寻纂钮抉镊钡造眺聪榜递拎翻头亩四章面向对象基础ppt课件四章面向对象基础ppt课件444

27、.2.2 用户自定义类用户自定义类n Java程序设计中,大部分精力都要放在创建称程序设计中,大部分精力都要放在创建称为为类类的的用户自定义类型用户自定义类型(user-defined type)上。)上。类也称为类也称为程序员定义的类型程序员定义的类型(programmer-defined type),每个类都含有数据和一组操作数据的方法。),每个类都含有数据和一组操作数据的方法。用户自定义类型(即类)的实例称为对象。用户自定义类型(即类)的实例称为对象。下面是一个简单的下面是一个简单的 Employee 类,类,今后我们今后我们在编写职工工资在编写职工工资系统时,有可能会用到它。系统时,有

28、可能会用到它。狐跟叁恰淬哆蠢框矫较锯奏踞虹迎伙屿归疏坪谋蜀星耘佰薄氛持淄蛆惋谍四章面向对象基础ppt课件四章面向对象基础ppt课件45class EmployeeString name; / 成员变量成员变量double salary;Date hireDay;public Employee (String n, double s, int year, int month, int day) / 构造方法构造方法 name = n; / 职工姓名职工姓名 salary = s; / 职工工资职工工资 hireDay=new GregorianCalendar(year,month-1,day)

29、;/出勤数出勤数public String getName() /方法方法1 return name; /更多的方法更多的方法 甫剁喘潦谓排空红畅荫蚊拦床徒善棘郊厅舶酥锣弯肩后聊鞭具埋属洒刊厦四章面向对象基础ppt课件四章面向对象基础ppt课件464.2.3 构造方法构造方法n定义好一个类以后,我们需要创建该类的实例。在Java中,构造一个类的实例(对象),编译器需要完成以下三件事情:(1)为对象分配内存空间;(2)初始化对象中的成员变量的值,初始值可以是缺省值,或者指定一个初始值;(3)调用类的构造方法。n 在 Java中,每个类中都至少有一个构造方法。如果没有,则编译器会自动为该类定义一个

30、默认的构造方法。n 构造方法的作用:(1) 可以保证用户正确地构造类的对象;(2) 可以对对象进行初始化。 荧她寓摈均愿澳把削坊逢燃祸染罪谅量刊肝送灵墩涎漫疏盅厘华钠塔冷障四章面向对象基础ppt课件四章面向对象基础ppt课件47构造方法的格式构造方法的格式构造方法的语法形式如下:构造方法修饰符构造方法修饰符方法名方法名(形式参数列表形式参数列表)throws异常列表异常列表方法体方法体其中,构造方法修饰符与通常的方法修饰符相同。n 一个类的构造方法可以有多个,它们都具有相同的方法名,即类名,只是参数的个数和类型会不同。编译器根据参数的个数和类型来决定调用哪个构造方法。这就是构造方法的多态。 没

31、有返回值,也没有void方法名与类名相同谜嗅醉痪广仪趣瞄邻啥曾珍奔薯相层亦捕涕绊罗汇殷锰憎烹斥普醛赦肝胖四章面向对象基础ppt课件四章面向对象基础ppt课件48缺省的构造方法缺省的构造方法n 构造方法分为缺省的构造方法(不带参数)和带参数的构造方法。 n 如果类的定义中没有编写构造方法,Java语言会自动为用户提供一个缺省的构造方法。缺省的构造方法确保每个 Java类都至少有一个构造方法。 n 例如在类 Employee中,如果我们没有定义构造方法,则 Java自动提供一个缺省的构造方法,如下: publicEmployee() /缺省的构造方法 莎弃止侧软魏史寻胁择岛莎承溶稻三淬蹭加幂殷饭战

32、阅刮樱沁撩那烟缮呕四章面向对象基础ppt课件四章面向对象基础ppt课件49构造方法的例子构造方法的例子【例】下面的例子将建立雇员信息类 EmpInfoA,其中定义了一个构造方法。利用这个构造方法创建一个雇员对象,并初始化该对象,然后打印出该对象的若干信息。 红炙诫圆由烩挥肿连幼牺唐拱恃咸宙秽排聚某鹰绍曰痒鲁傀配懈持副灯廊四章面向对象基础ppt课件四章面向对象基础ppt课件50构造方法举例构造方法举例public class EmpInfoA String name; / 雇员的姓名雇员的姓名 String designation; / 雇员的职务雇员的职务 String department;

33、 / 雇员的部门雇员的部门 / 带参数的构造方法带参数的构造方法 public EmpInfoA (String name, String designation, String department) this.name = name; this.designation = designation; this.department = department; void print ( ) / 成员方法成员方法 System.out.println (name + 是是 + department+ 的的 + designation); public static void main (Stri

34、ng args ) / 主方法,程序入口主方法,程序入口 EmpInfoA emp = new EmpInfoA (张三张三, 经理经理, 销售部销售部); emp.print(); / 调用方法调用方法 print() 例子:EmpInfoB戈爹冬一斯追趁闺欠哭磷捞恒孵摔浊锦帛尔脯少骄什话乏仪濒役踞侍扎禽四章面向对象基础ppt课件四章面向对象基础ppt课件51类成员变量的初始化类成员变量的初始化对类的成员变量进行初始化,主要有对类的成员变量进行初始化,主要有5种途径:种途径:v每种数据类型都有默认的初始值每种数据类型都有默认的初始值v可以在声明成员变量的同时赋予相应可以在声明成员变量的同时赋

35、予相应的初始值的初始值v在类的成员方法中,为每个类成员变在类的成员方法中,为每个类成员变量赋值。例如:在量赋值。例如:在main()方法中方法中v在类的构造方法中,为每个类成员变在类的构造方法中,为每个类成员变量赋值。例如:在前面的构造方法的量赋值。例如:在前面的构造方法的例子中例子中v利用初始化块对成员变量进行初始化。利用初始化块对成员变量进行初始化。初始化块初始化块是由一对花括号是由一对花括号括起的语括起的语句块。初始化块不能位于任何方法内句块。初始化块不能位于任何方法内痞记惦诉圭揍躇桑停刑眼漾抗曙令旬调僧叛烟坚忘梗冶呛末腐续姑绑瘩骨四章面向对象基础ppt课件四章面向对象基础ppt课件52

36、初始化块、构造方法初始化成员变量初始化块、构造方法初始化成员变量class Point int x, y; /成员变量成员变量 /在初始化块中初始化在初始化块中初始化 x=10; y=20; System.out.println(Point initialization block); Point(int dx, int dy) /在构造方法中初始化在构造方法中初始化 x=dx; y=dy; System.out.println(Point construct method); 择潜枷玫防淡玉兔老函艰轧粹园狞教铝裁玲药位泽搬才赊论权朝肇槽抢痰四章面向对象基础ppt课件四章面向对象基础ppt课件

37、534.3对象对象n类是对象的产品模板。在现实世界里,我们使用的是产品类是对象的产品模板。在现实世界里,我们使用的是产品而不是产品的图纸。同样道理,而不是产品的图纸。同样道理,Java中运行的应该是用类创中运行的应该是用类创建的实例化对象。建的实例化对象。当使用一个类创建了一个对象时,我们也当使用一个类创建了一个对象时,我们也称之为给出了这个类的一个实例。称之为给出了这个类的一个实例。n一个典型的一个典型的Java程序会创建很多对象,它们通过消息传递程序会创建很多对象,它们通过消息传递进行相互交流,共同完成程序的功能。一旦任务完成,对象进行相互交流,共同完成程序的功能。一旦任务完成,对象就会被

38、垃圾收集器收回,完成它从创建、使用到清除的生命就会被垃圾收集器收回,完成它从创建、使用到清除的生命三步曲。三步曲。赫圆绩绍昂帮供熄沥疼坟渴采衔荤丰扳搏憨耀炼块尧亢迂濒裹锣锻刁划胶四章面向对象基础ppt课件四章面向对象基础ppt课件54对象的创建对象的创建n首先必须拥有一个合适的类才能创建一个合适的对象,有首先必须拥有一个合适的类才能创建一个合适的对象,有了合适的对象才能完成合适的工作。了合适的对象才能完成合适的工作。n 对象创建的语法格式为:对象创建的语法格式为: 类名类名 对象名对象名 = new 类类名名(参数列表参数列表) ;调用类的构造方法声明对象褒但粟羽店斡厌霄昏启稳仇簧铬嫩呢煤讲纶

39、涡叭凳薄丈材睦毅邑踊迅魁窖四章面向对象基础ppt课件四章面向对象基础ppt课件55创建一个对象的三个步骤创建一个对象的三个步骤1、对象的声明、对象的声明格式为:类名格式为:类名对象名对象名;例如:PeoplezhangPing;2、为声明的对象分配内存、为声明的对象分配内存new 运算符为声明的对象分配内存,然后调用类的构造方法来初始化对象。用new可以为同一个类实例化多个不同的对象,这些对象分别占用不同的内存空间,因此改变其中一个对象的状态不会影响到其他对象的状态。3、执行构造方法,进行初始化、执行构造方法,进行初始化zhangPing=new People(“20040101”); zha

40、ngYong=new People(“20040102”); /实例化另一个对象n 上面三个步骤,通常可以写成如下简洁的形式:People zhangPing=new People(“20040101”);类名类名对象名对象名=new类名类名(参数列表参数列表);沉性贬欣汾氟杠扦毙倾徒陇鼓侦贮屑蝇搜凤勾吾腾涎乱营央欺砰雨歼廷敬四章面向对象基础ppt课件四章面向对象基础ppt课件56对象创建的例子对象创建的例子【例】下面的例子将建立雇员信息类 EmpInfoB。利用缺省的构造方法创建一个雇员对象。并且在主方法中初始化该对象,然后打印出该对象的若干信息。 絮波咋汛号栅瑞轰匀则担突趋扇闹妈枷恤屡穷痕

41、陌诵顶馁尉承碴堕模寥算四章面向对象基础ppt课件四章面向对象基础ppt课件57public class EmpInfoB String name; / 雇员的姓名雇员的姓名 String designation; / 雇员的职务雇员的职务 String department; / 雇员的部门雇员的部门 void print() / 成员方法成员方法 System.out.println (name + 是是 + department+ 的的 + designation); public static void main (String args) / 主方法主方法 EmpInfoB emp =

42、 new EmpInfoB(); / 调用缺省构造方法创建对象调用缺省构造方法创建对象 emp.name =张三张三 ; / 初始化对象初始化对象 emp emp.designation = 经理经理 ; emp.department = 销售部销售部 ; emp.print(); / 调用方法调用方法 print() 例子:EmpInfoA对象创建举例对象创建举例员太蹦貉雪妊闹千拓喻携薯粒歪又匡枕合夕爱椒谩釉鹤肥火砰隅啮恕芍晒四章面向对象基础ppt课件四章面向对象基础ppt课件58对象的使用对象的使用n 创建好一个对象之后,就可以使用这个对象。n (1) 访问对象的成员变量:通过运算符 “.

43、” 格式为:对象名格式为:对象名.成员变量名成员变量名 例如,在前面对象创建的例子中:emp.name=张三; 成员变量的访问也可以用new创建对象,然后直接访问,不用声明。例如: newEmpInfoB().name=张三。n (2) 调用对象的方法:也是通过运算符“.”格式为:对象名格式为:对象名.方法名方法名(参数列表参数列表)例如,在前面对象创建的例子中:emp.print();同样,我们也可以用new创建对象,然后直接调用它的方法,不用声明。例如:newEmpInfoB().print()。 碎氢吉会晴侵兽泽萎氖徽集孕最俊瞄堑棘种酣敦洪房瞅阻剐渤篆律享辞蛔四章面向对象基础ppt课件四

44、章面向对象基础ppt课件59对象的清除对象的清除n Java运行时系统通过垃圾收集器周期性地释放无用对象所使用的内存,完成对象的清除。Java的垃圾收集器自动扫描对象的动态内存区,对正在使用的对象加标记,然后把无用对象作为垃圾收集起来并释放。垃圾收集器作为一个线程运行,当系统的内存用尽或程序中调用System.gc() 要求进行垃圾收集时,垃圾收集线程与系统同步运行,否则垃圾收集器在系统空闲时异步地执行。在对象作为垃圾被收集器释放前,系统会自动调用对象的方法 finalize(),清除对象所占用的资源。n Java提供自动内存垃圾收集和处理程序。然而,在某些情况下,当一个类被破坏后,需要程序员

45、自己执行一些垃圾收集器不能处理的特殊清理工作。 这时可以在类的定义中提供用于对象清除的方法 finalize(),它的格式如下:n protected void finalize() throws Throwable /撤销对象 略磊白胳轻蹄京名兼藏雏缸液浑懒餐蚀堵佣贼自鲤矮誉掣移卷较筋捂簧扛四章面向对象基础ppt课件四章面向对象基础ppt课件604.4.1 方法概述方法概述4.4方法方法n Java程程序序是是由由一一个个个个类类组组成成的的,类类有有两两个个部部分分:属属性性和方法。属性描述类是什么,和方法。属性描述类是什么,方法描述类做什么方法描述类做什么。n 方方法法是是类类的的主主要

46、要组组成成部部分分。在在一一个个类类中中,程程序序的的作作用用主要体现在方法中。主要体现在方法中。n 方法是方法是Java创建的一个有名字的子程序。通常分为一创建的一个有名字的子程序。通常分为一个主方法和若干个子方法。主方法调用其他方法,其他方个主方法和若干个子方法。主方法调用其他方法,其他方法之间也可以互相调用,同一个方法可以被一个或多个方法之间也可以互相调用,同一个方法可以被一个或多个方法调用任意次。法调用任意次。揽峡弛氛效撞碑欲悟秃臣删提媳粉培边廖蓉记劳斧启娘熔厄瘩蝇送惹校坎四章面向对象基础ppt课件四章面向对象基础ppt课件61Java程序的基本结构程序的基本结构导入导入JavaJav

47、a类库;类库;定义用户类定义用户类1 1 定义类定义类1 1的若干变量;的若干变量; 定义类定义类1 1的方法的方法1 1; 定义类定义类1 1的方法的方法M; 定义用户类定义用户类2 2 定义类定义类2 2的若干变量;的若干变量;定义类定义类2 2的方法的方法1 1;定义类定义类2 2的方法的方法N; 着博一枉澜卡舍彰振液睫瓦佯疾抨犊勇迢吮爱森恭荒耕展仔谎崩逝骸终扣四章面向对象基础ppt课件四章面向对象基础ppt课件62设计方法的原则与规律设计方法的原则与规律(1)算算法法中中需需要要细细化化的的步步骤骤、程程序序中中重重复复的的代代码码以以及及重载父类方法都可以定义成类的方法。重载父类方法

48、都可以定义成类的方法。(2)界面清晰,大小适中。)界面清晰,大小适中。(3)方方法法有有两两种种:一一种种是是标标准准方方法法,Java API提提供供了了丰丰富富的的类类和和方方法法,这这些些方方法法提提供供了了程程序序员员所所需需的的许许多多功功能能。另一种是用户自定义的方法,以解决用户专门的需要。另一种是用户自定义的方法,以解决用户专门的需要。(4)Java 程程序序的的执执行行是是从从main方方法法开开始始的的,调调用用其其他他方方法法后后又又回回到到main方方法法,在在main方方法法中中结结束束整整个个程程序序的的运行。运行。郸泛郑疏彦傻类克攘够宪泵脚咕寓珐污盏氟镑嵌嗽禹正办口

49、缉严帮兆下秧四章面向对象基础ppt课件四章面向对象基础ppt课件634.4.2 定义方法定义方法v1声明方法头声明方法头v2声明方法体声明方法体Java中声明方法的语法如下:中声明方法的语法如下:修饰符修饰符 返回值类型返回值类型 方法名方法名 (参数列表参数列表)throws 例外名例外名1,例外名,例外名2, /方法体:方法体: 局部变量声明;局部变量声明; 语句序列;语句序列;啪得糖讲瓶眼秤惋耳普逻撇暇挟尊瞧尝枪童党积缄肮碑烷候骂万望桥瘸粪四章面向对象基础ppt课件四章面向对象基础ppt课件64 1、声明方法头声明方法头n方法头一般由方法名、参数列表、返回类型、方法修饰符和方法抛出的例外

50、五部分组成。n注意事项:(1)方法名可以是任何有效的标识符,命名规则与标识符命名规则相同。(2)返回类型用来指定方法返回值的类型,方法最多只能返回一个值。(3)参数列表是方法的输入接口,它列出了一系列形式参数的类型和名称。对于每个行参,调用方法时必须有一个实参与之对应,而且该实参的类型必须与行参的类型一致。庞玛童亨娇酥障卵潞吉芍芜纤噶叭刀矿奥警桂陪湖抗埔救笛叉伏想缀主束四章面向对象基础ppt课件四章面向对象基础ppt课件652、声明方法体声明方法体n方法头定义了方法的性质,方法体则定义了方法的内容。n注意事项:(1)在一个方法中定义另一个方法将产生语法错误;(2)方法体包含在一对大括号中,即使

51、方法体中没有语句,一对大括号也是必不可少的。(3)最好避免局部变量“屏蔽”类的成员变量,在一个类中不使用同名的标识符就可以做到这一点;(4)方法头中如果指定了非void的返回值类型,方法体中就必须包含一条return语句保证任何情况下都有返回值。迄狱至疗社酵嫡绿局扁欺他谈梢抵剔松卜姐脖剥杀桶伶初贷剖螟郭恒眺酣四章面向对象基础ppt课件四章面向对象基础ppt课件66 声明方法体的例子声明方法体的例子 class Department int m_DeptNo; /部门编号部门编号 String m_DeptName; /部门名称部门名称 int m_DeptTotalEmp; /部门雇员数部门雇

52、员数 int getDeptNo( ) /获取当前对象的部门号获取当前对象的部门号 return m_DeptNo; /返回这个对象的部门号返回这个对象的部门号 编镶牡崔尿酥紫赣恤练骆撤窄扒亮漏驮掸炬贵纤菱枉珍湾语盲冉窃文搞赴四章面向对象基础ppt课件四章面向对象基础ppt课件674.4.3 方法的调用方法的调用n Java语言中的方法按其调用方式可分为两类:语言中的方法按其调用方式可分为两类:(1)需要程序员书写专门的调用命令来调用的方法,称为)需要程序员书写专门的调用命令来调用的方法,称为程序调用方法程序调用方法,例如,例如 getDeptNo( );(2)运行过程中系统自动调用的方法,称

53、为)运行过程中系统自动调用的方法,称为系统方法系统方法。例。例如如 action()、paint()、init()等。等。n 这两类方法的定义和使用原则有很大差异。这两类方法的定义和使用原则有很大差异。n在类中调用类自身的方法,可以直接使用这个方法的名在类中调用类自身的方法,可以直接使用这个方法的名称;调用其他对象或类的方法,则需要使用该对象或类作称;调用其他对象或类的方法,则需要使用该对象或类作为前缀。为前缀。 吠乏毛督八气奸阂俞渍慧盾蹋钦尔盂崩绪诚狈侯泌贩省奶亢炸烧辉咎刨郸四章面向对象基础ppt课件四章面向对象基础ppt课件68 方法的调用方法的调用(实例实例)class Departme

54、nt int m_DeptNo; /部门编号部门编号 String m_DeptName; /部门名称部门名称 int m_DeptTotalEmp; /部门雇员数部门雇员数 int getDeptNo( ) /获取当前对象的部门号获取当前对象的部门号 return m_DeptNo; /返回这个对象的部门号返回这个对象的部门号 public static void main(String args) Department dep=new Department();dep.m_DeptNo=100; System.out.println(部门号为部门号为:+ dep.getDeptNo( )

55、); 蕾阉凯定收隆慌芒坊算论氢震妙醉狮够划澄截祈儿勤俺茬拂毙剃隘挠衫挫四章面向对象基础ppt课件四章面向对象基础ppt课件69回顾v4.5 访问控制访问控制修饰修饰符:符:public, protected, privatev4.6 静态修饰符静态修饰符 staticv4.7 抽象类与抽象方法抽象类与抽象方法 abstract邮喘束俏狭颓沪症博铂聋友滦琉沾脱著私仪歪抨仁冷止媳锚书西曝石腻谱四章面向对象基础ppt课件四章面向对象基础ppt课件70 方法的重载方法的重载n同一个类中的多个方法具有相同的名字,但这些方法具有同一个类中的多个方法具有相同的名字,但这些方法具有不同的参数列表,即形参的数量

56、或类型不能完全相同。方法调不同的参数列表,即形参的数量或类型不能完全相同。方法调用的时候,编译器会根据实参的类型和个数来决定具体调用其用的时候,编译器会根据实参的类型和个数来决定具体调用其中哪个方法。中哪个方法。n方法重载可以简化程序的编写,用户只要记住一个方法名,方法重载可以简化程序的编写,用户只要记住一个方法名,通过传递不同的实参就可以调用不同的方法来完成不同的功能。通过传递不同的实参就可以调用不同的方法来完成不同的功能。n构造方法也可以重载,其目的是使对象具有不同的初始值,构造方法也可以重载,其目的是使对象具有不同的初始值,为用户创建不同初始值的对象提供方便。为用户创建不同初始值的对象提

57、供方便。邹擞下凿砂浚窑灼裳鸟匿夷滚硫确檬漆泳把腔顽浊帅货寝拽序毯呀惑驭磁四章面向对象基础ppt课件四章面向对象基础ppt课件71class Overloading void get (int i) System.out.println(get one int data: i=+ i);void get (int x, int y) System.out.println(get two int datas: x=+ x+ y=+y);void get (double d) System.out.println(get one double data: d=+ d);void get (Strin

58、g s) System.out.println(get a string: s=+ s);public static void main( String args ) Overloading mo=new Overloading();mo.get (1); mo.get (2, 3);mo.get (4.5); mo.get (a string);戍掳多垃辗寸蜕瞬纫蝴喝摄鬃免广距少午拳枉柜抵望牌泉浩檄蹈艰酚蜂拥四章面向对象基础ppt课件四章面向对象基础ppt课件724.4.4 Java API 中的方法中的方法n在Java中,JavaAPI(ApplicationProgramInterfac

59、e,也称为Java类库)提供了丰富的类和方法,可以执行常见的算术运算、字符、字符串、输入输出、错误检查等操作。n1、Math类的方法类的方法n2、Math类方法的调用类方法的调用褪脓治场忻惶娟堆晦来慑蘸汇拈歧迁宪仓忘贩矢暴藕狞惜殆淆薄墓细捉哩四章面向对象基础ppt课件四章面向对象基础ppt课件731、Math类的方法类的方法方法方法说明说明方法方法说明说明abs(x)x的绝对值的绝对值max(x, y)取取x和和y中较大者中较大者ceil(x)不不小于小于x的最小整数的最小整数(向上向上取整取整)min (x, y)取取x和和y中较小者中较小者cos(x)x的余弦函数值的余弦函数值(x以弧度以

60、弧度为单位为单位)pow (x, y)x的的y次幂次幂exp(x)指数方法指数方法e的的x次幂次幂sin (x)x的正弦函数值的正弦函数值 floor(x)不大于不大于x的最大整数的最大整数(向下向下取整取整)sqrt (x)x的平方根的平方根log(x)x的自然对数的自然对数(以以e为底为底)幽微沉珍诈缔逻纯鸭隙随叉蒲跌朱斩棠泊妖炽刑佐睛搅辈搪企串迹霖浮委四章面向对象基础ppt课件四章面向对象基础ppt课件742、Math类类方法的调用方法的调用n 例例如如,要要计计算算并并且且打打印印出出900的的平平方方根根,需需要要调调用用Math类类的的方法如下:方法如下: System.out.p

61、rintln(Math.sqrt(900);注意:所有Math类方法的调用必须在方法名前加上类名Math和点 “.” 运算符。饿炸弱灭抚赖潍拘冯娱池曙忽宇判庙填纤锤彤恬滴脉敬戍狼袋仓公砚稗尖四章面向对象基础ppt课件四章面向对象基础ppt课件754.5 访问控制访问控制修饰修饰符符n Java新推出新推出 “访问控制修饰符访问控制修饰符”的概念,允许的概念,允许类创建者类创建者声明声明哪些东西是哪些东西是类使用者类使用者可以使用的,哪些是不可以使用的。可以使用的,哪些是不可以使用的。n 每个每个访问控制修饰符都代表一种访问访问控制修饰符都代表一种访问控制控制权限。权限。n 这些访问这些访问控制

62、控制权限的级别在权限的级别在“最大最大权限权限”到到“最小最小权限权限”范围范围之间,分别包括:之间,分别包括:public protected default(无修饰符)(无修饰符) private铣隋唾暇卤排笋停酚滋奢检钎餐辐郝宣剂顷共浑沦赁驾喷彩晋连芋滇啪从四章面向对象基础ppt课件四章面向对象基础ppt课件76n为类指定访问权限的格式:为类指定访问权限的格式:publicclass类名;n如果一个类没有指定为如果一个类没有指定为public, ,则该类的访问权限则该类的访问权限就是缺省的。就是缺省的。 一、类的访问控制权限(2种)public:公共访问权限default:缺省访问权限鹊

63、谅巨掇九沁舅寸疟辫蛙也堕秃妥冯工殉慧赢鳖秃藩篇明瓤穗腰靖坟泽蚤四章面向对象基础ppt课件四章面向对象基础ppt课件77n为类中的属性和方法指定访问权限的格式:为类中的属性和方法指定访问权限的格式:public|private|protected数据类型变量名;public|private|protected返回类型方法名(参数列表);n如果一个如果一个属性或方法属性或方法没有指定访问控制修饰符没有指定访问控制修饰符, ,则则该该属性或方法属性或方法的访问权限就是缺省的。的访问权限就是缺省的。 二、属性和方法的访问控制权限(4种)public:公共访问权限default:缺省访问权限protec

64、ted:保护访问权限private:私有访问权限干刽蒲奋湖军卒认去畦戏浮汛膀荆畸亡蹈岿掘辊铝迈竭棵轧瘩庚父擦慕憾四章面向对象基础ppt课件四章面向对象基础ppt课件784.5.1 公共访问控制符公共访问控制符 publicn 类的访问控制符只有一个:public。一个类被声明为公共类,表明它可以被所有的其他类所访问和引用。n 注意:这里的类可以被访问和引用不代表类中的成员也可以被访问。只有当这些成员也是公共的,才可以访问。例如:要进入二楼的一个房间,必须首先保证这栋楼的大门是开着的,而且这个房间的门也开着,才可以进入其中。琴涅谨盔叉卜敛纠裴顿川随蔚浮沥郸扑则郎义仆灸皂郸挝独勉窍澡冬棠模四章面向

65、对象基础ppt课件四章面向对象基础ppt课件794.5.2 缺省访问控制权限缺省访问控制权限n 如果一个类前面没有访问控制符,则说明它具有缺省的访问控制权限。n 缺省的访问控制权限规定类只能被同一个包包中的类访问和引用,而不可以被其他包中的类使用。418包1包2包3包n类default圆清排燎检格垛晋腿帐禹膀挪裸收牲戍斯藏串驾狄妥殖挪肢距湿朵嘎斟午四章面向对象基础ppt课件四章面向对象基础ppt课件804.5.3 私有访问控制符私有访问控制符 private n用private修饰的属性或方法只能被该类类自自身身所访问和修改,而不能被任何其他的类,包括该类的子类,来访问和引用。 属性1n方法1

66、mprivate父类属性1n方法1m子类属性1n方法1m其他类斗贩癌耶检刀讼代构诽扔渠回陈跨肛悠拘夸肥柬现派类歉脆偶帝沙稚孜沃四章面向对象基础ppt课件四章面向对象基础ppt课件81class Employeeprivate String name; / 成员变量成员变量,私有访问权限,私有访问权限privatedouble salary;public Employee (String n, double s) / 构造方法构造方法 name = n; / 职工姓名职工姓名 salary = s; / 职工工资职工工资 public String getName() /方法方法1 return

67、 name;public static void main (String args ) Employeee = new Employee(Jack, 2600d); System.out.println(姓名为:姓名为:+e.getName(); 糖供擅脆酸孽悟砒依摸醇阳摊碑印均筛搔矢薄焊忌浇咐汰虏泻慈屏客近厢四章面向对象基础ppt课件四章面向对象基础ppt课件822. 私有方法私有方法n 虽然大多数方法是公开的,但是私有方法也经常使用。例如那些与类的访问者无关的方法就可以设置为私有的。 private方法1(与访问者无关)public方法2(与访问者有关)被访问类属性1n方法1m访问类取她

68、合摘猩臂徒喧朝葫译骑仪州虹氨挚析诞瞎僻摩墅钨盏敝凑额琉打呕薛四章面向对象基础ppt课件四章面向对象基础ppt课件83public class Demo public int a; / 公共的成员变量公共的成员变量 private int b; / 私有的成员变量私有的成员变量 public int getA( ) /公共的成员方法公共的成员方法 return a; private int getB( ) /私有的成员方法私有的成员方法 return b; public Demo (int x, int y) a = x; /访问公共成员变量,对其初始化访问公共成员变量,对其初始化b = y;

69、/访问私有成员变量,对其初始化访问私有成员变量,对其初始化public static void main (String args ) Demo dp = new Demo (1, 2); int w = dp.getA( ); /访问公共的成员方法访问公共的成员方法 System.out.println(变量变量a的值:的值:+w); int v = dp.getB( ); /访问私有的成员方法访问私有的成员方法 System.out.println(变量变量b的值:的值:+v); 冯辆肾瞒祸王迂哎皋项竹瓷否眩兰巩渣才矢轮裸遍铲宠巩抗敞辛恕撮呈谬四章面向对象基础ppt课件四章面向对象基础pp

70、t课件844.5.4 保护访问控制符保护访问控制符protectedv用用protected修修饰饰的的成成员员可可以以被被三三种种类类所所引引用用:该该类类自自身身、与与它它在在同同一一个个包包中中的的其其他他类类、在在其其他他包包中中的的该类的子类。该类的子类。 vprotected 的的主主要要作作用用:允允许许位位于于其其他他包包中中的的子子类类来来访问父类的成员。访问父类的成员。4188包1包2protected假设包1中的类4不是包2中的类1的子类假设包1中的类8是包2中的类1的子类怯交蹿蒲叉峨停琉度苇纫必虹页午码驳住钞讫粟褥盗盂瞳褐污支苗泵蚊慰四章面向对象基础ppt课件四章面向对

71、象基础ppt课件85package p1;public class Demopro public int a; /公共的成员变量公共的成员变量protected void method() /保护的成员方法保护的成员方法 System.out.println (Demopro中的公共成员变量中的公共成员变量a的值:的值:+ a);package p2;import p1.*;public class test public static void main (String args ) Demopro dp = new Demopro( ); dp.method ( ); /* 不能访问Dem

72、opro中protected方法method,因为它位于包pro1中*/ dp.a = 10; /可以访问Demopro中的公共成员变量 System.out.println (Demopro中的公共成员变量中的公共成员变量a的值:的值:+ dp.a);首昨袍窥范抗辛痉唯匣渣拆跺踢碘谩甫惩职管问绸陶爬审剥实斥漠戊凿形四章面向对象基础ppt课件四章面向对象基础ppt课件86v如果上面的两个如果上面的两个类类Demopro和和test位于同一个包中,则上面位于同一个包中,则上面的语句的语句dp.method ( ) 就会有效。如果两个类位于不同的包就会有效。如果两个类位于不同的包中且没有继承关系,

73、则保护类型的成员变量和方法的访问中且没有继承关系,则保护类型的成员变量和方法的访问将受到限制。因此上面的将受到限制。因此上面的 dp.method ( ) 不能正确执行。不能正确执行。兔辩辊毁旬奶哟蒂访备讼浸啄诸郎胎荣蠢年冲瞧堆粟锌庄仍俗戏唉勿账盖四章面向对象基础ppt课件四章面向对象基础ppt课件87n归纳上述归纳上述4 4种不同的访问控制修饰符种不同的访问控制修饰符: :同一个类 同一个包不同包中的子类不同包中的非子类private默认protectedpublic权限递增礼是坯喧峻快合鄂擅胎退睬儿禄镑秃固身济玻卡脯访弃硕赴请禁细官掠帐四章面向对象基础ppt课件四章面向对象基础ppt课件8

74、84.6静态修饰符、类初始化块和方法4.6.1 静态修饰符静态修饰符nstatic是静态修饰符,用来修饰类中的属性和方法。n被static修饰的变量称为静态变量,静态变量的特点是:它们属于类本身,不属于类的任何一个具体对象。n静态变量是一个公共的内存单元。韩旗衣腔坚奢壶闺啃入讨耸掂唉刺乞佃姚乡晨声阴滇恬八耕债歪镰时揭娥四章面向对象基础ppt课件四章面向对象基础ppt课件89staticintx;类student张三李四实例化xinty;类student张三李四实例化yy属于属于属于阶阂刮痕晃万着牌浙羚疟疵档镁艺驶邻抽贬炊茵永鸥怜悬跑钮栋迈竣做五四章面向对象基础ppt课件四章面向对象基础ppt课

75、件904.6.1静态变量静态变量nstatic声明的成员变量被视为类的成员变量,而不是对象的成员变量。n静态变量是类固有的,可以在创建类以后直接访问,而非静态的成员变量只有在生成对象后才存在,才可以访问。n把静态变量称为类变量,非静态变量称为对象变量。相应地,静态方法称为类方法,非静态方法称为对象方法。宦鸵笔微谊垄愿迈曳螺皿鄙忽睦床咕一年攘平靖厅儿捣棘眯垣亚季涵陨脏四章面向对象基础ppt课件四章面向对象基础ppt课件91class StaticDemo static int x; /静态变量静态变量 int y; /非静态变量非静态变量 static public int getX() ret

76、urn x; /静态方法静态方法 public int getY() return y; /非静态方法非静态方法public class ShowDemo public static void main(String args) System.out.println(静态变量静态变量x=+StaticDemo.getX(); System.out.println(“非静态变量非静态变量y=”+StaticDemo.getY(); / 非法访问非法访问 StaticDemo a= new StaticDemo(); StaticDemo b= new StaticDemo(); a.x=2; a

77、.y=2; b.x=3; b.y=3; System.out.println(静态变量静态变量a.x=+a.getX(); System.out.println(非静态非静态变量变量a.y=+a.getY(); System.out.println(静态变量静态变量b.x=+b.getX(); System.out.println(非静态非静态变量变量b.y=+b.getY(); 镇惯铭僵四腹音拄璃痰涡姻俯哭合颠竹愈狠脱灌蚤职怪礁斗胚躺拙缕七汛四章面向对象基础ppt课件四章面向对象基础ppt课件92n类的静态成员可以直接访问,例如在程序中直接使用了StaticDemo.getX(),而非静态成

78、员则不行。n类的静态变量只有一个版本,所有对象访问的都是同一个版本。n创建对象的时候,每个对象变量都被制作了一个副本,它们之间互不影响。x3aby2ay3b罕舱劫吝抓恿贿泻藐旬床涕犁徊涎储驰恶掌乘震筋醒级抡乌恫括录地脊油四章面向对象基础ppt课件四章面向对象基础ppt课件93v静态类初始化块是由关键字static标识的一对大括号括起的语句组。例如:staticv静态类初始化块可以用来初始化静态变量。在一个类中只能有一个静态类初始化块,并且不能位于任何方法中。4.6.2 静态静态类类初始化块初始化块文原啥殴掀朵盂则掖汞茶娜操幻简里炮笆双软揩摇魏宅每微突二椅播直挣四章面向对象基础ppt课件四章面向

79、对象基础ppt课件94v静态变量是很少见的。然而,静态常量却很普遍。例如,Math类中就定义了一个静态常量:publicclassMathpublicstaticfinaldoublePI=3.1.4159265358979323846;4.6.3 静态常量静态常量男迟艇颧寇囤育淳肢塑姿亩碉殆堡耸懈胰拷骡喜轧宵经税古甄保醉刘锗甭四章面向对象基础ppt课件四章面向对象基础ppt课件95nstatic方法的含义:方法的含义:(1)调调用用这这个个方方法法时时,应应该该使使用用类类名名做做前前缀缀,而而不不是是某某一一个具体的对象名,因为它不属于具体的对象;个具体的对象名,因为它不属于具体的对象;(

80、2)非非静静态态的的方方法法属属于于某某个个对对象象,在在这这个个对对象象创创建建时时该该方方法法在在内内存存中中拥拥有有自自己己专专用用的的代代码码段段;而而static方方法法属属于于整整个个类类,它它在在内内存存中中的的代代码码段段将将随随着着类类的的定定义义而而分分配配和和装装载,不被任何一个对象专有;载,不被任何一个对象专有;(3)static方方法法不不能能访访问问非非静静态态的的成成员员变变量量,而而只只能能访访问问静静态变量。态变量。 4.6.4 静态方法静态方法搓南舶拜阑佃屉凰织边嘿铡氨蛇橱撰息下返橡林妻褒踪训副孪茄蚁悯爬莆四章面向对象基础ppt课件四章面向对象基础ppt课件

81、964.6.5 main方法方法n main方法是一个静态方法。方法是一个静态方法。 n 每个类都可以有一个每个类都可以有一个main方法。它是程序的入口和出方法。它是程序的入口和出口。口。镣壹踌城航杉筋荒擒逊斜兢畜妓案袭锋扯窝共泊耗障猿闻航甥枪错么密浚四章面向对象基础ppt课件四章面向对象基础ppt课件974.7抽象类与抽象方法抽象类与抽象方法vabstract是抽象修饰符,可以用来修饰类或方法。v为什么要使用抽象类和抽象方法呢?一个抽象类可以定义一个统一的编程接口,使其子类表现出共同的状态和行为,但各自的实现细节不同。v可以增加编程的灵活性。拙痘俏风巧晰友孰石隐雌彻粒谴闭业耳吧侈拧耽谰糯忱

82、泻侩贱胸滚阎狱踏四章面向对象基础ppt课件四章面向对象基础ppt课件984.7.1 抽象类抽象类v当一个类被声明为abstract时,这个类被称为是抽象类。所谓抽象类就是没有具体实例对象的类。v人类就是一个典型的抽象类。我们知道,类是对象的集合,对象是类的实例化,而人类这个类却不存在一个属于它的具体对象。v抽象类需要被子类所继承才能生成具体的对象。乖箕住入匠专签栅翌健锦醇堤柱防终砚派叶评陕月塑仰咳佩斤依窿矣编叁四章面向对象基础ppt课件四章面向对象基础ppt课件99 v作为方法修饰符,abstract 声明了一种仅有方法头,而没有方法体的抽象方法。v抽象方法属于一种不完整的方法。语法形式为:a

83、bstract返回类型方法名(参数列表);vabstract方法只有方法头,而用一个分号来代替方法体(没有花括号)。4.7.2 抽象方法抽象方法女遁袜灰十环锭嚎位炳隋挎陋录呈亏饯溃闲能腰验胸垢铲拒厉钻腿奋羹炼四章面向对象基础ppt课件四章面向对象基础ppt课件100v注意:所有的抽象方法,都必须存在于抽象类之中。即如果一个类中有抽象方法,则该类必须为抽象类。v除了抽象方法,抽象类也可以有具体的数据和方法。例如,Person类存储人的名字并且用一个具体的方法来返回它。vJava中抽象方法是非常重要的概念。在接口中会大量的用到它。斟陷粹赃伞翼蒲帘慢跪薪魔革酪艺酮翟宝蜂啊拐网拥挛篮聋腊栖镐粱号楔四章

84、面向对象基础ppt课件四章面向对象基础ppt课件1014.8最终类、最终属性、最终方法nfinal是最终修饰符,它可以修饰类、属性和方法。4.8.1 最终类最终类n如果一个类被声明为final,意味着它不能再派生出新的子类,不能被其他类继承。因此一个类不能既被声明为abstract,又被声明为final。n将一个类定义为final则可以将它的内容、属性和功能固定下来,从而保证引用这个类时所实现的功能是准确无误的。static只能修饰属性和方法abstract只能修饰类和方法瓦呜板虚另缝运瓷秀壮纪悄殴矿炬摩废淌铡绿畜歌庭潜谅毫狞竞财茬进泪四章面向对象基础ppt课件四章面向对象基础ppt课件102

85、v无无论论static还还是是final变变量量,都都只只能能存存储储一一个个数数据据,而而且且不不得得改改变。变。vfinal 修饰的变量即常量。修饰的变量即常量。v可可以以把把一一个个对对象象变变量量定定义义为为final。在在对对象象被被构构造造时时,这这个个变变量量必必须须被被初初始始化化。即即必必须须保保证证在在构构造造方方法法结结束束之之前前该该变变量量已已经初始化,并且初始化的值以后不能改变。经初始化,并且初始化的值以后不能改变。4.8.2 最终属性最终属性(变变量量)埔嚣姆恕神穴族投崭块阀缘渡凡喧幢寂巍怜阎悄端翠韧焚奢蛆蚁日熄惭粪四章面向对象基础ppt课件四章面向对象基础ppt

86、课件103n父父类类中中的的方方法法被被声声明明为为final,将将不不能能在在子子类类中中被被覆覆盖盖(重重写写),即最终方法能被子类继承和使用但不能被修改或重新定义。,即最终方法能被子类继承和使用但不能被修改或重新定义。n之所以要使用之所以要使用final方法,主要出于两方面的考虑:方法,主要出于两方面的考虑:n(1)为为方方法法“上上锁锁”,防防止止任任何何继继承承它它的的子子类类改改变变它它的的本本来来含义。含义。 n(2 2)提高程序执行的效率。)提高程序执行的效率。 4.8.3 最终方法最终方法虎走谤虹境羔埠埃服疡添杉拦泥汪极爪君昂婶仗泻忽伦盟擞你翁锯荤霖拔四章面向对象基础ppt课

87、件四章面向对象基础ppt课件104本章小结v1. 关于类和对象关于类和对象v必必须须学学会会如如何何创创建建、引引用用和和继继承承类类。Java程程序序的的基基本本单单位位是是类类。类类的的定定义义可可以以看看作作是是建建立立对对象象的的原原形形。你建立类之后,就可用它来建立许多你需要的对象。你建立类之后,就可用它来建立许多你需要的对象。v对对象象是是类类的的一一个个实实例例,类类是是同同种种对对象象的的抽抽象象与与综综合合,是是创创建建对对象象的的模模板板。在在程程序序中中创创建建一一个个对对象象将将在在内内存中开辟一块空间,其中包括该对象的属性和方法。存中开辟一块空间,其中包括该对象的属性

88、和方法。v创建对象使用运算符创建对象使用运算符 new。 类名类名对象名对象名=new类名类名(参数列表参数列表);画惹瓦庙褂郎侯上蚀痢帽糯词驹浙打乱纶啦灵宜袋气胺沃钞钠脯侨唤基矣四章面向对象基础ppt课件四章面向对象基础ppt课件105构造方法是类的一种特殊方法,它的特殊性主要体现在:构造方法是类的一种特殊方法,它的特殊性主要体现在:(1)构造方法的方法名与类名相同。)构造方法的方法名与类名相同。(2)构造方法没有返回类型。)构造方法没有返回类型。(3)构造方法的主要作用是对类的对象进行初始化。)构造方法的主要作用是对类的对象进行初始化。(4)构造方法不能由编程人员显式地直接调用。)构造方法不能由编程人员显式地直接调用。(5)在在创创建建一一个个类类的的对对象象的的同同时时,系系统统会会自自动动调调用用该该类类的的构造方法为该对象初始化。构造方法为该对象初始化。2关于构造方法关于构造方法劣皱荆参限担仓沙拉夏塞晶铰啊蝇明侵牛旨渔馁攫罕雹烯影段酝鄂俊唉禽四章面向对象基础ppt课件四章面向对象基础ppt课件106

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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