2抽象和封装

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

抽象和封装0.英语单词单词释义class类static静态的final最终的private私有的访问修饰符public公共的protected受保护的default默认的constructor构造器、构造方法(可用来创建对象)overloading重载同一个类中,方法名相同,参数不同1.抽象我们需要设计一个电子宠物系统,其中领养宠物功能的详细需求如下:根据控制台提示,输入领养宠物的昵称;根据控制台提示,输入领养宠物的类型,有两种选择:狗狗和企鹅;如果选择狗狗,要选择狗狗的品种,有两种选择:“聪明的拉布拉多犬”或“中华田园犬”如果选择类型,选择企鹅的性别:“Q仔”或“Q妹”。所领养宠物的健康值默认是100,表示非常健康。所领养的宠物和主人的亲密度是0,表示和主人不熟。在控制台打印宠物信息,包括昵称、健康值、亲密度、品种或性别,表示领养成功。领养成功后主人可以和狗狗玩接飞盘的游戏,也可以让狗狗看家;如果领养的是企鹅,主人可以和企鹅一起游泳,也可以和企鹅玩过家家的游戏。根据上面的描述,进行分析和设计,找出类,设计类;并画出类图!分析:1)先找简单名词2)再找修饰性名词3)然后找动词4)优化类图+print()+catchFlyDisk()+keepHouse()+name:string+strain:string+health:int+love:intDog+print()+swim()+play()+name:string+gender:string+health:int+love:intPenguin抽象时遵循的原则:属性、方法的设置是为了解决业务问题的;关注主要属性、方法;如果没有必要、勿增加额外的类、属性和方法。2.类的定义生活中描述事物无非就是描述事物的属性和行为,如人有身高、体重等属性,有说话、打球等行为。Java中用类(class)来描述事物也是如此,属性:对应类中的成员变量,行为对应类中的成员函数。定义类其实就是定义类的成员:成员变量和成员函数。实例Dog.javaPenguin.java3.成员变量和局部变量的区别:成员变量定义在类中,在整个类中都可以被访问;成员变量随着对象的创建而建立,存在于对象所在的堆内存中;成员变量都有默认初始值。局部变量定义在局部范围内(方法内、语句或语句块内);局部变量存在于栈内存中,局部变量只在所在的范围内有效,超出作用范围,变量所占内存就会被释放;局部变量没有默认值,必须初始化。实例:成员变量的初始值引用数据类型null基本数据类型byteshortintlong0floatdouble0.0char‘’booleanfalse4.创建和使用对象1)创建对象的语句Dogdog=newDog();Penguinpenguin=newPenguin();2)对象的内存结构3)调用属性对象名.属性名4)调用方法对象名.方法名实例:Test.java5.使用final定义常量实例:Dog.java和Penguin.java的改进6.使用static定义类成员1)static关键字用于修饰成员:成员变量和成员函数代码块2)被static修饰后的成员具有以下特点:随着类的加载而加载;优先于对象存在;被该类的所有对象所共享;可以不用构造对象而直接使用类名.成员名的形式调用3)使用static关键字时应注意:静态方法只能访问静态成员;静态方法中不可以写this、super关键字;主方法是静态的实例方法中不能使用static实例:Dog.java和Penguin.java的改进以及SweepMine.java思考:为什么main()方法要被定义为static?7.构造方法1)特点:方法名与类名相同(大小写必须一致)不用定义返回值不可以使用return语句2)作用:给对象进行初始化3)使用构造方法应该注意:如果在一个类中没有显示的定义构造方法,系统会自动的为每个类添加一个无参的空的构造方法可以为一个类定义多个构造方法,多个构造方法是以重载的形式存在实例:Dog.java和Penguin.java的改进8.this关键字1)特点:this代表其所在函数所属对象的引用,换言之this代表本类对象的引用。2)何时使用this关键字:当在函数内需要用到调用该函数的对象时,就用this.3)类中的方法(包括成员方法和构造方法)中要调用构造方法的形式:this(参数列表),需要注意的是:在构造方法中要调用另一个构造方法,必须是第一句。4)要使用本类对象的属性:this.属性名实例:Dog.java和Penguin.java改进9.封装1)封装(Encapsulation),是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式。2)好处:将变化隔离;便于使用;提高重用性和安全性;3)封装原则:将不需要对外提供的内容都隐藏起来:属性私有、部分方法私有;所有属性私有,提供公共的的getter方法进行访问,选择性提供setter方法;setter方法中可以添加限制代码实例:Dog.java和Penguin.java的改进10.作业1)将昨天的作业用Java实现。要求:Dog类和Penguin类中提供打印宠物信息的方法,根据控制台提示的信息选择领养的宠物为狗狗,输入昵称、品种等信息,然后打印宠物信息表示领养成功2)改进作业1,给Dog类和Penguin类提供构造方法。要求:为Dog类和Penguin类至少提供的两个构造方法;3)改进作业1,对企鹅对象的性别属性进行设定和修改。要求:给Penguin类提供SEX_MALE和SEX_FEMALE两个常量,分别取值“Q仔”或“Q妹”,后来要求变化,规定企鹅的性别只能取值“雄”或“雌”,通过修改静态常量值实现该需求。4)增加Monkey类,为该类提供类似于Penguin的属性和特有属性,以及类似于Penguin类的方法和特有方法Monkeyname,love,health,....print(),climbTree(),xxxYYY()5)建立企鹅所有类的私有化。

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功