您好,欢迎访问三七文档
抽象和封装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)建立企鹅所有类的私有化。
本文标题:2抽象和封装
链接地址:https://www.777doc.com/doc-2915559 .html