第4章 类与对象

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章 类与对象 章
4.1 基本概念 4.1.1 面向对象编程简介 面向对象编程或面向对象设计均可称为OOP,它是目前 面向对象编程或面向对象设计均可称为 , 占 主流地位的一种程序设计方式,取代了先前的所谓结构化, 主流地位的一种程序设计方式,取代了先前的所谓结构化, 面向过程的编程技术. 面向过程的编程技术. 传统的结构化编程是设计一组函数来解决一个问题, 传统的结构化编程是设计一组函数来解决一个问题,即先 解决算法,再解决使计算更容易的数据结构; 解决算法,再解决使计算更容易的数据结构;OOP方法则相 方法则相 即先解决数据结构,再解决数据结构运算的算法, 反,即先解决数据结构,再解决数据结构运算的算法,数据 结构和算法均封装在对象中. 结构和算法均封装在对象中.
类实质上定义了一种对象类型,它是具有相似行为的对象的一种抽象, 类实质上定义了一种对象类型,它是具有相似行为的对象的一种抽象 描述了属于该类型的所有对象的性质—统一的属性和统一的操作模式 统一的属性和统一的操作模式. 描述了属于该类型的所有对象的性质 统一的属性和统一的操作模式. 对象是在程序执行过程中由其所属的类动态生成的, 对象是在程序执行过程中由其所属的类动态生成的,一个类可以生成 多个不同对象,对象也被称作类的实例. 多个不同对象,对象也被称作类的实例.同一个类的所有对象有相同的 性质.但一个对象的内部状态只能由其自身修改, 性质.但一个对象的内部状态只能由其自身修改,任何别的对象都不能 修改它.因此,同一个类的对象虽然在外部表现形式上相同,但可以有 修改它.因此,同一个类的对象虽然在外部表现形式上相同, 不同的内部状态,即不同的属性值. 不同的内部状态,即不同的属性值.
2.继承性: 继承性: 继承性 Java中的类组成一个层次结构:一个类之上的类称为父类,下层的类 中的类组成一个层次结构: 中的类组成一个层次结构 一个类之上的类称为父类, 称为子类.这种层次结构的一个重要性质就是继承性. 称为子类.这种层次结构的一个重要性质就是继承性.父类可以产生子 子类可以继承父类中的属性和方法,且这种继承具有传递性. 类,子类可以继承父类中的属性和方法,且这种继承具有传递性.一个 类可以继承其上层的全部父类中的属性和方法.这样某个类的对象除了 类可以继承其上层的全部父类中的属性和方法. 具有这个类所描述的性质外, 具有这个类所描述的性质外,还具有类等级中该类的上层的全部父类所 描述的一切性质. 描述的一切性质. 在面向对象的继承特性中,还有一个单重继承和多重继承的概念.单 在面向对象的继承特性中,还有一个单重继承和多重继承的概念. 重继承是指一个类只有一个单一的父类.多重继承是指一个类可以有一 重继承是指一个类只有一个单一的父类. 个以上的父类. 不支持多重继承, 个以上的父类.Java不支持多重继承,但可以通过一个类实现多个接口 不支持多重继承 的方法来完成多重继承的功能. 的方法来完成多重继承的功能. 类的继承的好处:利用了代码的可重用性, 类的继承的好处:利用了代码的可重用性,减少了程序中的冗余信息
属性的说明: 属性的说明: [修饰符 变量的数据类型 变量名 =初始值 ; 修饰符] 变量名[=初始值]; 修饰符 [修饰符 修饰符] 对象名[= 类名([参数列表 参数列表])]; 修饰符 类名 对象名 =new 类名 参数列表 ; 类的属性修饰符有访问控制符, 类的属性修饰符有访问控制符,static,final,volatile,transient , , , 方法的说明: 方法的说明: [修饰符 返回值类型 方法名 形参说明 修饰符] 方法名([形参说明 形参说明])[throws 异常 ,异常 ,…]{ 异常1,异常2, 修饰符 局部变量说明; 局部变量说明; 执行语句组; 执行语句组; } 类的方法修饰符包括:访问控制符,static,final,synchronous,native 类的方法修饰符包括:访问控制符, , , 返回值可以是简单变量也可以是复合对象,若无返回值,则用void 返回值可以是简单变量也可以是复合对象,若无返回值,则用 方法的名字最好体现方法的功能,常采用动词加宾语的形式 常采用动词加宾语的形式,首字母小写 方法的名字最好体现方法的功能 常采用动词加宾语的形式 首字母小写 形参表示要传递到方法体内的变量,形参可以有多个,也可为空; 形参表示要传递到方法体内的变量,形参可以有多个,也可为空;形参 可以是简单的数据类型,也可以是复杂数据类型; 可以是简单的数据类型,也可以是复杂数据类型;对于复杂数据类型的 参数对象,传递的是对象在内存中的地址. 参数对象,传递的是对象在内存中的地址.
4.2.2 修饰符 1.访问控制符 访问控制符 包的概念:包由一组类组成,它如同文件夹一样将各种类组织在一起.包 包的概念:包由一组类组成,它如同文件夹一样将各种类组织在一起 包 中的类没有严格的某种关系, 中的类没有严格的某种关系,只是为了方便管理而将它们放在一个包中 访问控制符规定了类,属性和方法可以被程序的哪些部分访问和调用 访问控制符规定了类, (1)类访问控制符:public和默认形式 类访问控制符: 类访问控制符 和默认形式 public:公共类,表示它能被其他的任何类访问.一个包中的类相互 :公共类,表示它能被其他的任何类访问. 可见,可以互相访问, 可见,可以互相访问,但不在同一个包中的类相互间是不可 见 若要访问,则需要用import将该类引入 但引入的必须是 将该类引入,但引入的必须是 的.若要访问,则需要用 将该类引入 public类.另外,含有 类 另外,含有main( )方法的类必须是公共类 方法的类必须是公共类 默认:表示该类只能被同一个包中的类访问,而不可以被其他包中的 默认:表示该类只能被同一个包中的类访问, 类访问.即使用import引入,也不可以. 引入, 类访问.即使用 引入 也Leabharlann Baidu可以. (2)属性方法访问控制符 属性方法访问控制符: 属性方法访问控制符 public,private,protected,private protected,默认 默认 public:修饰的属性和方法是公共的属性和方法,若类也是 修饰的属性和方法是公共的属性和方法, 修饰的属性和方法是公共的属性和方法 若类也是public,则 则 这 些属性和方法可以被所有的类访问. 些属性和方法可以被所有的类访问.由于面向对象设计中的封 装性的要求,公共的属性应尽量减少 可通过公共的方法间接访问 装性的要求 公共的属性应尽量减少,可通过公共的方法间接访问 公共的属性应尽量减少
4.2.1 类的定义 格式: 修饰符 修饰符] 父类名] 接口名]{ 格式:[修饰符 class 类名 [extends 父类名 [implements 接口名 类属性声明; 类属性声明; 类方法声明; 类方法声明; } 说明:(1)class表示类定义开始,类名第一个字母通常大写 表示类定义开始, 说明 表示类定义开始 (2)修饰符用来说明类的特殊性质,分为访问控制符和类型说明符, 修饰符用来说明类的特殊性质, 修饰符用来说明类的特殊性质 分为访问控制符和类型说明符, 访问控制符用来说明类能被哪些对象引用(public),类型说明符有 访问控制符用来说明类能被哪些对象引用 类型说明符有 abstract和final,表示抽象类和最终类 和 , (3)关键字 关键字extends表示继承,后面跟一个父类名 表示继承, 关键字 表示继承 (4)关键字 关键字implements表示该类实现了接口,一个类可以实现多个 表示该类实现了接口, 关键字 表示该类实现了接口 接口, 接口,接口使得类可以实现多重继承
4.2 类 类是Java中最基本的复合数据类型,是组成Java程序的 中最基本的复合数据类型,是组成 类是 中最基本的复合数据类型 程序的 基 本要素.创建一个新类就是创建一个新的数据类型, 本要素.创建一个新类就是创建一个新的数据类型,实例化 一个类就得到一个对象. 一个类就得到一个对象 类有两种基本成分:属性和方法, 类有两种基本成分:属性和方法,又称成员变量和成员方 法. 类的成员变量可以是基本数据类型或数组, 类的成员变量可以是基本数据类型或数组,也可以是复合 数据类型. 数据类型. 类的方法用于处理该类的数据, 类的方法用于处理该类的数据,类中的方法与其他语言中 函数的区别:Java中的方法只能是类的成员,只能在类中定 中的方法只能是类的成员, 函数的区别 中的方法只能是类的成员 义.
4.1.3 消息和方法 对象之间进行交互时,通过消息来实现. 对象之间进行交互时,通过消息来实现. 构成消息的三个要素: 构成消息的三个要素: (1) 接收消息的对象 (2) 接收消息的方法 (3) 方法所需要的参数 4.1.4 面向对象编程的基本特征 1.封装性: 封装性: 封装性 封装"是一种组织开发软件的方法, "封装"是一种组织开发软件的方法,其基本思想是把客观世界中联 系 紧密的元素和相关操作组织在一起,使其相互关系隐藏在程序体内部, 紧密的元素和相关操作组织在一起,使其相互关系隐藏在程序体内部, 而对外仅仅表现为与其他封装体之间的接口. 而对外仅仅表现为与其他封装体之间的接口. 在面向对象的程序开发中,每个类都封装了相关的数据和操作.另外, 在面向对象的程序开发中,每个类都封装了相关的数据和操作.另外 在Java中,包的概念也体现了封装性,包将一组相关的类封装在一起. 中 包的概念也体现了封装性,包将一组相关的类封装在一起. 类的封装性使得代码的可重用性大为提高. 类的封装性使得代码的可重用性大为提高.使用者不用知道实现的细 只需要用设计者提供的消息来访问该对象(公共的方法). 节,只需要用设计者提供的消息来访问该对象(公共的方法).
private:私有访问控制符,经它修饰的属性和方法只能被类自身的方法 私有访问控制符, 私有访问控制符 访 问和使用,它对属性和方法进行了最高级别的保护 它对属性和方法进行了最高级别的保护.多数用来修饰 问和使用 它对属性和方法进行了最高级别的保护 多数用来修饰 属性,其他类需通过该类中的公共方法来访问这些属性 其他类需通过该类中的公共方法来访问这些属性.这些公共 属性 其他类需通过该类中的公共方法来访问这些属性 这些公共 的方法为这些属性提供了一个统一的接口,体现了面向对象思想 体现了面向对象思想. 的方法为这些属性提供了一个统一的接口 体现了面向对象思想. protected:保护访问控制符 它修饰的属性和方法比 保护访问控制符,它修饰的属性和方法比 保护访问控制符 它修饰的属性和方法比private修饰的有较大 修饰的有较大 的可见域,可以被同一个包中的其他类 可以被同一个包中的其他类,不同包中的子类以及该类 的可见域 可以被同一个包中的其他类 不同包中的子类以及该类 自身访问和引用,主要是为了让子类能够方便地访问父类 自身访问和引用 主要是为了让子类能够方便地访问父类 private protected:私有保护访问控制符 只能被该类自身和子类访问和 私有保护访问控制符,只能被该类自身和子类访问和 私有保护访问控制符 引用.既保证了子类对父类访问的方便性 又提高了使用的安全性. 既保证了子类对父类访问的方便性, 引用 既保证了子类对父类访问的方便性,又提高了使用的安全性. 默认: 只能被同一个包中的其他类访问和引用 包 默认: 修饰符 类自身 子类 不同包非子类
3.多态性: 多态性: 多态性 多态是指通过方法重写, 多态是指通过方法重写,一个类可以具有多个相同名字的 方法,由参数个数和类型对它们加以区分.通过方法重写, 方法,由参数个数和类型对它们加以区分.通过方法重写, 子类可以重写父类的某些方法,使其具有自己的特征. 子类可以重写父类的某些方法,使其具有自己的特征.重写 可以隐藏父类的方法,使子类具有了自己的具体实现. 可以隐藏父类的方法,使子类具有了自己的具体实现. 父类和子类可以有相同名字的属性和方法, 父类和子类可以有相同名字的属性和方法,在程序的执行 期间,对对象某一属性的查找是从该对象类所在层次开始, 期间,对对象某一属性的查找是从该对象类所在层次开始, 沿着类等级逐渐向上进行的, 沿着类等级逐渐向上进行的,把第一个找到的属性作为所要 的属性.因此,底层可以屏蔽高层的属性. 的属性.因此,底层可以屏蔽高层的属性.
4.1.2 类与对象 在面向对象程序设计中,对象是程序的基本单位, 在面向对象程序设计中,对象是程序的基本单位,相似的对象之间的 关系就像是相同类型的不同变量. 关系就像是相同类型的不同变量.这些相似的对象可以通过一个类将它 们抽象出来,在类中定义它们共同的属性和方法. 们抽象出来,在类中定义它们共同的属性和方法.
相关文档
最新文档