JAVA面向对象程序设计的 3 个主要特征:封装性、继承性和多态性

封装性(encapsulation):封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有哪些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象的使用者分开,使用者不必知晓其行为实现的细节,只须用设计者提供的消息来访问该对象。

继承性:继承性是子类共享其父类数据和方法的机制。它由类的派生功能体现。一个类直接继承其他类的全部描述,同时可修改和扩充。继承具有传递性。继承分为单继承(一个子类有一父类)和多重继承(一个类有多个父类)。类的对象是各自封闭的,如果没继承性机制,则类的对象中的数据、方法就会出现大量重复。继承不仅支持系统的可重用性,而且还促进系统的可扩充性。

多态性:对象根据所接收的消息而做出动作。同一消息被不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。例如:同样是 run 方法,飞鸟调用时是飞,野兽调用时是奔跑。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。在 OOPL 中可通过在派生类中重定义基类函数(定义为重载函数或虚函数)来实现多态性。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第三章 Java面向对象程序设计 Java面向对象程序设计("方法"相关文档)共57张全文共57页,当前为第1页。 3.1 面向对象程序设计的基本概念 对象是客观世界中的某个具体事物。(客车) 事物的特就是数据(载客数量、燃料容量、耗油均值) 事物的行为就是方法 (行驶、起动、刹车) 数据 方法 面向对象程序设计方法就是将客观事物抽象成为"类",并通过类的"继承"实现软件的可扩充和可重用对象 Java面向对象程序设计("方法"相关文档)共57张全文共57页,当前为第2页。 类和对象 类是具有共同特和行为的事物的抽象,是一种特殊数据类型。在类中包含了数据和与数据有关的操作(方法)。 对象是类的实例。 类 汽车 对象 客车 抽象 实例化 Java面向对象程序设计("方法"相关文档)共57张全文共57页,当前为第3页。 面向对象程序设计的核心技术 封装、继承、多态性 通过封装可以隐藏类的实现细节,也可以避免对类中数据的直接操作。类是封装的基本单元。 继承是对类的功能的重用和扩充。 多态性是指方法的名字相同,但实现不同。 Java是一种完全面向对象程序设计语言。它继承了C++的优点。Java降低了程序的复杂,实现了代码的可重用,提高了运行效率。 Java面向对象程序设计("方法"相关文档)共57张全文共57页,当前为第4页。 3.2 类的创建 类的声明格式: <类首声明> {<类主体>} 类首声明定义类的名字、访问权限以及与其它类的关系等。 类主体定义类的成员,包括变量(数据)和方法(行为) Java面向对象程序设计("方法"相关文档)共57张全文共57页,当前为第5页。 类首声明: [<修饰符>] class <类名> [extends <超类名>] [implements <接口名>] class: 类定义的关键字; extends: 表示类和另外一些类(超类)的继承关系; implements: 表示类实现了某些接口; 修饰符: 表示类访问权限(public、private等)和一些其它特(abstract、final等); 例如: public class Date1 声明Date1类,访问权限为public,表示类Date1可以被该类所属的包之外的类使用。 Java面向对象程序设计("方法"相关文档)共57张全文共57页,当前为第6页。 类主体的结构: <类首声明> {    //类首,以下为类主体 <成员变量的声明> <成员方法的声明及实现> } 成员变量即类的数据,反映了类的属和状态。 成员方法即类的行为(对数据的操作) 例4.2.1:声明一个日期类Date1 public class Date1 { int year,month,day; //成员变量 public void today( ) { //成员方法 System.out.println("Date is"+year+"/"+month+"/"+day); } } Java面向对象程序设计("方法"相关文档)共57张全文共57页,当前为第7页。 Java面向对象程序设计("方法"相关文档)共57张全文共57页,当前为第8页。 成员变量的声明格式: [<修饰符>] [static] [final] [transient] <变量类型> <变量名> static: 表示是一个类成员变量(静态变量); final: 表示是一个常量; (最终成员变量) 例:final double PI=3.1415926; transient: 表示一个临时变量 修饰符: 表示变量的访问权限(缺省访问、public、 protected和private) 作用域:整个类。同一类中的所有方法都可以对其访问。并可简单地通过名字来引用。(在方法体内定义的变量是方法变量,作用域只能在方法体内) 例:class Sampleclass{ public int I; method(){ int j; } } Java面向对象程序设计("方法"相关文档)共57张全文共57页,当前为第9页。 成员方法的声明格式: [<修饰符>]<返回类型> <方法名> ([<参数表列>]) [throws <异常类>] { 方法体 } 修饰符: 方法的访问权限(缺省的、public、protected和private) static: 类方法(静态方法); abstract: 抽象方法(无方法体的方法); final: 最终方法(不能被子类改变)。 throws: 表示抛出异常 Java面向对象程序设计("方法"相关文档)共57张全文共57页,当前为第10页。 public class Date2 { int year,month,day; //设置某一天日期的方法 public voi

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值