欢迎来到天天文库
浏览记录
ID:51616331
大小:313.36 KB
页数:37页
时间:2020-03-26
《面向对象的特性(11月20号).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象的特性面向对象的基本特性1.封装性(女人的年龄封装起来)封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义: ◇把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。 ◇信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一道屏障〕,只保留有限的对外接口使之与外部发生联系。 封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的"交叉感染",使软件错误能够局部化,大大减少查错和排错的
2、难度。面向对象的基本特性2.继承性 特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。例如,轮船、客轮;人、大人。一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这称为多继承。例如,客轮是轮船和客运工具的特殊类。在java语言中,通常我们称一般类为父类(superclass,超类),特殊类为子类(subclass)。(后面会详细阐述)面向对象的基本特性3.多态性 对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其
3、各个特殊类中具有不同的语义。例如:“几何图形”的“绘图”方法,“椭圆”和“多边形”都是“几何图”的子类,其“绘图”方法功能不同。(后面会详细阐述)继承子类继承父类的:大部分成员变量大部分成员方法继承publicclassParent{publicStringname="安";publicvoideat(){System.out.println("嘿嘿,吃得真香!");}}publicclassChildextendsParent{publicstaticvoidmain(String[]args){Childchild=newChild()
4、;System.out.println("儿子也姓:"+child.name);child.eat();}}继承可以看出,父类的name属性和eat方法子类都继承了,因为子类没有申明这两样东西,但却可以调用。继承的好处让开发者可以轻松定义和基本的类模板避免重复编码增强系统的可维护性this功能:访问当前类的成员变量或成员方法,或构造器thispublicclassTest{Stringname;publicTest(Stringname){this.name=name;}publicTest(){This(“Eric”);}publicSt
5、ringgetName(){returnthis.name;}publicvoidsetName(Stringname){this.name=name;}}super功能:访问父类的成员变量或方法,或构造器superpublicclassParent{publicStringname="老安";publicParent(Stringname){this.name=name;}}publicclassChildextendsParent{publicChild(Stringname){super(name);}publicStringgetP
6、arentName(){returnsuper.name;}publicstaticvoidmain(String[]args){Childchild=newChild();StringparentName=child.getParentName();System.out.println(parentName);}}练习1编写一个“老干妈”(MotherInLaw)类,它的结构如下:一个int类型的属性laLevel保存辣的级别一个介绍自己的方法introduce,方法的实现专门返回自己辣的级别再写一个“干儿子”类(SonInLaw)继承于
7、老干妈,它的结构如下:一个介绍自己的方法introduction,方法的实现专门返回自己辣的级别,干儿子辣的级别计算方式如下,是老干妈的3倍。再写一个main方法分别调用上面两个类的介绍自己的方法,并打印返回值检查实现效果练习1答案publicclassParent{publicStringname="安";publicvoideat(){System.out.println("吃得香");}}练习1答案publicclassMotherInLaw{intlaLevel=2;publicintintroduce(){returnthis.l
8、aLevel;}publicstaticvoidmain(String[]args){MotherInLawmotherInLaw=newMotherInLaw();intmot
此文档下载收益归作者所有