已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA面向对象面向对象是当前计算机界的重点,是当今软件开发方法的主流。java面向对象具有三大基本特性:封装、继承、多态。在现实生活中,任何一个人或任何一种物体都可以被认为是对象。例如:一朵花、一张桌子、一个椅子、一辆汽车都是对象。然而把同一类对象的共同特征抽取出来用来描述这些对象的抽象集合就是类。对象的属性和行为抽象出来分别对应类的成员变量和方法。例如:学生的共同属性有姓名、学号、性别、年龄等,共同行为有学习、吃饭、睡觉等,把这些共同的属性和行为抽象为人这个类如下:class Person string name;/姓名 int id;/学号 string sex;/性别 int age;/年龄 void study()/学习 void eat(川/吃饭 void sleep()/睡觉 类集合抽象出来后,在程序中需要使用关键字new来创建对象。程序中一旦对象被创建出来,各类对象的行为就可以完成程序的各种功能。一、 封装性所谓封装,就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。在原则上,我们要把尽可能多的东西藏起来.对外提供简捷的接口,同时还要把所有的属性藏起来。在Java语言,可以通过封装性使得各对象的外在表现仅仅为对一些成员域的访问方式和一些成员方法的调用方式,即屏蔽各个模块的内部具体实现方式。为了实现隐藏类内部的信息,Java定义了类及其成员访问的四种访问控制方式:公共模式(public)、保护模式(protected)、默认方式(default)、私有模式(prvate)。(1)public修饰的成员可以被程序中所有的类访问,它的访问权限是最低的。(2)protected修饰的成员可以被类内部同一包package中的类和其子类访问。(3)default修饰的成员可以被类内部和同一个包中的类访问,其他地方的类都不可以访问,包括其子类。(4)private修饰的成员只能被类内部访问。由此实现类内部信息隐藏最重要的关键字是private,它的访问权限是最高的。例如:public class Fengzhuangprivate int weight;private int f(int a,int b)return a+b;class Tom void g()Fengzhuang tom=new Fengzhuang();tom.weight=1;/非法访问因为weight私有成员变量tom.f(1,1);/非法访问因为f()私有成员函数 二、继承性所谓继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了父类的特性,新类称为原始类的派生类(子类),而原始类称为新类的父类。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。继承性是实现软件可重用性的一种重要手段。由一个己有的类通过使用关键字extend、定义一个新类,称为新类继承了己有类,新类被称为子类或派生类,己有类被成为父类或基类。父类人Class presonstring name;string sex:int age:void eat()void run()子类学生Class student extends presonInt id:void study()void sleep()通过继承子类自动拥有父类的所有成员变量和方法,除构造方法。使得父类的优良特性得以代代相传并且大大减少了子类的代码量。继承是实现软件可重用性的一种重要方式,增强了软件的可扩充性,提高了软件的可维护性。对此我们在设计类时一般将通用性功能设计在父类中,将特殊性功能设计在子类中。二、 多态性所谓多态是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。实质:指当系统A访问系统B的服务时,系统B可以通过多种实现方式来提供服务,而这一切对系统A是透明的。多态就是方法的重载,继承,方法重写,自动转型等技术的统称。多态性是指在类定义中出现多个构造方法或出现多个同名的成员方法。对于同名的成员方法,多态性还包括在当前定义的类型中出现与其父类型同名的成员方法。多态性也是实现软件可重用性的的手段之一,它使得继承性更加灵活,并使程序具有良好的可扩展性。多态性包括两种类型:静态多态性和动态多态性。静态多态性指的是在同一个类中同名方法在功能上的重载,而且在方法声明的形式上要求同名的方法具有不同的参数列表。其中,这里的方法可以是成员方法也可以是构造方法。不同的参数列表指的是方法的参数个数不同、参数的数据类型不同或者参数的类型排列顺序不同。动态多态性是指在子类和父类的类体中均定义了具有基本相同声明非静态成员方法。所谓非静态成员方法是指在成员方法定义中成员方法的声明不含方法修饰词、tatic。这时也称为子类的成员方法对其父类基本相同声明的成员方法的覆盖。其中,基本相同声明的成员方法要求子类的成员方法和其父类对应的成员方法具有相同的方法名,相同的参数个数,对应参数的类型也相同,而且子类的成员方法应当比其父类对应的成员方法具有相同或者更广的访问控制方式。成员方法的访问控制方式由定义该成员方法的方法修饰词确定。例如:public class Animal public String name;void cry()class Dog extends AnimalDog()=Here is a dog;void cry()System.out.print(汪汪);class Cat extends AnimalCat()=Here is a cat; void cry()System.out.print(喵喵); 两个类都继承了父类动物,都有叫的方法,这里叫继承,但叫的内容不同,就体现了多态既然面向对象有着三大特性,那么这三大特性又赋予了它怎样的优缺点呢?首先说说优点,面向对象的结构清晰,它使人们的编程与实际的世界更加接近,所有的对象被赋予属性和方法,结果编程就更加富有人性化。其次通过封装性可以减小外部对内部的影响。封装将对象有关的数据和行为封装成整体来处理,使得对象以外的部分不能随意存取对象的内部属性,从而有效地避免了外部错误对它的影响,大大减小了查错和排错的难度。而且它还容易扩展,代码重用率高。容易扩展,在大框架不变的情况下很容易就开发出适合自己的功能,实现简单,可有效地减少程序的维护工作量,软件开发效率高。举两个例子来说明一下。第一个:象棋程序,比如我要加入悔棋的功能,如果面向过程设计的话,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了红黑双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。第二个:买汽水,比如你口渴了,你想要喝汽水,你就让别人帮你买,一般的方法,你要告诉这个人,出了门怎么走,左转右转之类的。而面向对象呢,你只需要告诉他,我要喝汽水,你就不用管他怎么去买了,这个人买汽水是你早已经写好的方法,你口渴了,直接调用买汽水的方法,就可以直接喝汽水了说完优点,我们说一说缺点。首先它增加了工作量。如果一味地强
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CAPA 13-2024人体皮肤蓝光防护功效评价规范
- 2026年统编版(2024)初中语文七年级上册期末综合测试卷及答案(五套)
- 消防安全知识专项培训课件
- 乙肝肝硬化合并肾损伤的诊疗进展
- 豫剧的四大板类特点
- 水环真空泵常见故障分析及对策
- 峰谷分时电价下的用户响应模型的获取方法及系统发明专利
- 建筑工程造价工作中的动态管理与控制策略
- 临床路径模拟教学在高血压管理教学中的实践分析
- 妇科急腹症腹痛急课件
- 成功销售的八种武器-大客户销售策略
- 铁路委外管理办法
- 县校本研修管理办法
- 要素式民事起诉状(房屋租赁合同纠纷)
- 白内障术后并发症
- 2025年混凝土考试题库及答案
- 教师心理健康知识培训
- DB23∕T 2334-2019 装配式混凝土渠道应用技术规范
- 2025年春江苏开放大学机械创新设计060260过程性考核作业123答案
- T/CCS 029-2023综采工作面采煤机惯性导航系统技术规范
- 水利安全风险防控“六项机制”与安全生产培训
评论
0/150
提交评论