版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章Java中的对象与类Java语言是纯粹的面向对象的编程语言。因此,面向对象设计开发程序的思想,就是Java的核心内容。在这一章中,将首先简单介绍一些面向对象程序设计的基本理念。在此基础上,将介绍Java中如何开发自己的类,以及如何通过类创建对象,并且向大家深入介绍面向对象的主要特性。同时用最为简单的例子,来分别向大家介绍如何使用继承、接口、内部类等技术。3.1面向对象概述面向对象(ObjectOriented简称OO)是当今主流的程序设计方式,取代了70年代的“过程化”程序设计。Java是完全面向对象的语言,用其进行面向对象的软件开发是非常方便、高效的。本节将对面向对象的基础知识进行简单地介绍,主要包括面向对象程序设计思想的诞生、面向过程与面向对象程序设计思想的对比、面向对象技术的背景和特点等三方面的内容。随着软件复杂度的提高,以及Internet的迅猛发展,原先面向过程的软件开发方式已经很难满足软件开发的需要。针对日趋复杂的软件需求挑战,软件业界发展出了面向对象的软件开发模式。目前作为针对软件危机的最佳对策,OO技术已经引起人们的普遍关注。3.2类的定义与对象的创建如果一切都是对象,那么是什么决定了某一类对象的外观与行为呢?答案是“类”。类是构造对象的模板或蓝图。如建筑物与设计图纸的关系一样,通过一份设计图纸,可以建造出很多建筑物,而Java开发人员在编写代码时,实际上是在编写类代码,对象只有程序运行时才存在。当创建一个Java程序时,可以通过类声明来定义类,然后使用类来创建用户需要的对象。类声明是用来创建对象模板的抽象规格说明。在前面的一些章节中,已经编写过一些简单的类,只是那些类一般只有main方法。3.3包的使用在实际项目开发中,往往需要开发很多不同的类,能否方便高效地组织这些类对项目的开发与使用具有很重要的意义。Java中提供包将不同类组织起来进行管理,借助于包可以方便地组织自己的类代码,并将自己的代码与别人提供的代码库分开管理。使用包的重要目的之一就是可以在同一个项目中使用名称相同的类,假如两个开发人员不约而同地建立了两个相同名字的类,只要将其放置在不同的包中,就不会产生冲突。本节将从类的放置与导入两个方面对包及其使用进行介绍,主要包括如下内容:(1)声明创建包(2)引入包内的资源3.3.1声明创建包要想将类放入指定的包中,就必须使用package语句,具体语法如下。package<包名>;声明创建包必须注意以下几点:(1)package语句必须放在源文件的最前面,其之前不可以有其他任何语句。(2)每个源文件中最多有一句package语句,因为一个类不可能属于两个包,就如同不能把一件衣服同时放进两个箱子一样。(3)包名可以是用点“.”分隔的一个序列,如java.lang,这就表示此源文件中的类在java包下的lang子包中。3.3.2引入包内的资源当一个类要使用与自己处在同一个包中的类时,直接访问即可。若要使用其他包中的类就必须使用import语句,基本语法如下。import<包名>.*;import<包名>.类名;1.两个包中有同名类,但只用到其中一个及其他不同名的类2.两个包中有同名类,且都要使用3.4类的成员变量和方法类的成员变量和方法是组成类的基本元素。成员变量是用来描述类所抽象出的属性,而方法则是用来获取或改变这些属性的值。在这一节中,将主要介绍如何声明和使用类中的成员变量。3.4.1访问修饰符首先,在了解类的成员变量之前必须先对访问修饰符有一个大概的了解。在Java程序中,访问修饰符可以出现在类、成员变量、构造方法或方法前,是用来控制访问权限的修饰符。Java语言中提供了如下所示四种形式的访问修饰符。(1)public:(2)private:(3)protect:(4)(default):3.4.2成员变量定义一个类后,就可以在类体中声明两种类的成员,成员变量与成员方法。本节介绍与成员变量开发相关的一些知识,主要包括成员变量的开发与使用、成员变量的初始值以及对象引用变量的比较等内容。成员变量就是类的属性,类定义中的属性指定了使一个对象区别于其他对象的值。比如,学生类的定义中包括年龄、姓名和班级这些属性,每个对象的这些属性都有自己的值。所有由类定义建立的对象都共享类的方法,但是,它们都拥有各自属性变量的副本。3.4.3成员变量的初始值每当创建一个对象后,如果对象有成员变量,则系统会自动为其分配一个初始值。下面将对基本数据类型与对象引用类型成员变量分别进行介绍。1.基本数据类型成员变量2.对象引用型成员变量3.4.4方法在Java中,对对象的操作由方法来完成。要使一个对象完成某些工作,就要调用其相应的方法。方法实际上描述的是一个行为,一种功能,决定了一个对象能够接收什么样的消息,做出什么反应。方法的基本组成包括:方法的声明以及方法体,基本语法如下:返回值类型方法名(参数序列){方法体}1.参数序列2.方法体3.返回值类型3.4.5构造方法构造方法是类中一个特殊的方法。与其他方法不同,构造方法主要是用来初始化类,创建类的实例(也就是类的对象,之后会详细介绍)。构造方法的名字和类的名字是相同的。并且没有返回值类型。在构造方法前,只可以使用访问修饰符public、private及protected。在Java程序中创建一个类,若要让这个类工作,就必须创建这个类的对象。3.4.6参数的传递同其他的编程语言一样,既然存在方法,就会有参数的传递。前面介绍过,方法参数就是方法圆括号内的常量值、变量、表达式或函数。当定义方法时,这时方法中的参数称为形式参数(形参),使用来反映参数的类型及个数的;而当我们调用该方法时,这时的参数称之为实际参数(实参)。通过参数的传递,可以将变量的值传递给方法内部进行处理,但需要注意的是,在Java中,传递的参数共有如下所示两种.(1)基本类型参数:(2)对象引用型参数:3.5抽象类与接口在之前,已经向大家介绍过类的定义与对象的创建。本节将要介绍Java语言中两种较为常用的技术:抽象类和接口。3.5.1抽象类与抽象方法abstract关键字是抽象修饰符,只能用于修饰类和方法。该关键字用来表明所定义的类或方法是未实现的。(1)抽象类:(2)抽象方法:3.5.2接口Java语言中的接口不同于一般的类,通常都称之为接口类,是用来描述类的功能的。在接口类中,定义了抽象的方法和常量,形成一个属性集合,该属性集合代表了一组功能的实现。之在Java语言中,一个类只能继承一个父类;但是一个类可以实现多个接口,因此使用接口主要是为了实现类似于类的多重继承功能。接口的声明需要使用interface关键字来实现。接口声明的语法格式,如下代码片断所示:[public]interface接口名[extends父类接口]{[public][static][final]常量类型 常量名=常量值;[public][abstract]返回类型方法名(参数列表)[throw异常列表]}3.6final关键字finnal关键字可以用于类、方法、变量前,用来表示该关键字所修饰的类、方法、变量具有不可变的特性。具体情况如下所述。(1)final关键字用于基本数据类型变量前:(2)final关键字用于方法声明前:(3)final关键字用于类名前:3.7类的继承继承是两个类之间的一种关系。当一个类A继承了一个已存在的类B后,类A就拥有了类B所有的非private的属性和方法,但同时,类A中还可以根据需要,添加新的方法和属性。简单的说,继承就是创建一个新的类,并使这个类复制了一个已经存在的类,并在其基础上进行了扩展。一般会将被继承的类称为父类或超类,继承父类或超类的类称之为子类。在Java语言中,一个类可以拥有多个子类,但是一个子类只能拥有一个父类。父类实际上是所有子类的公共属性的集合。而每一个子类则是父类的一个扩展或特殊化。在面向对象的程序设计中,采用继承的机制来组织、设计系统中的类,可以使得程序结构清晰、降低编码和维护的工作量,同时可以提高程序的抽象程度,使之更加接近于人类的思维方式,提高了程序开发的效率。3.7.1如何定义子类在Java程序中,若要定义子类,就需要使用“extends”关键字。其语法格式如下所示:class子类名extends父类名{//类体:包含属性和方法}3.7.2方法的覆盖父类中的方法使用继承的过程中,可以实现方法的覆盖。方法的覆盖只是存在于父类和子类之间。当父类中的一个方法在它的子类中重新获得定义时,若该方法的方法名、参数、返回值类型均不变,只有方法体发生了变化时,就称子类的方法覆盖了父类方法。3.7.3this与super关键字本小节将介绍super关键字与this关键字的相关知识与用法。1.this关键字2.super关键字3.7.4继承的层次结构Java语言的继承关系中,一个类最多只能有一个父类。但一个父类可以同时拥有多个不同的子类。换句话说,父类实际上是所有子类的公共属性的集合。而每一个子类则是父类的一个扩展或特殊化。在这里以交通工具这个抽象概念为例,来说明类之间继承的层次结构。交通工具类是所有交通工具的共同属性的集合,这些共同属性包括移动速度、承载人数、载货量、所处状态等静态属性;同时也包含了启动、停止、加速、减速、维修等一些动态的行为方法。在这个基础上,将交通工具类具体化、特殊化,就会派生出三个子类,包括:陆地交通工具、海上交通工具和空中交通工具三个子类。3.7.4继承的层次结构3.8static关键字被static修饰的成员与普通的成员有很大的不同,因此本书将其作为一个独立的概念来处理。static关键字只能修饰成员,只要身份是成员便
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨境电商海外仓货物安全管理合同协议2025
- 跨境电商独立站域名备案咨询协议2025年
- 2025 小学六年级语文下册 儿童诗 创作技巧指导课件
- 跨境电商2025年跨境电商税务代理协议
- 口罩生产供应协议2025年运输安排
- 2025年办公楼外墙防水材料供应协议合同
- 2025 小学六年级语文上册口语交际即兴发言训练课件
- 国际税务面试题目及答案
- 医院防控面试题库及答案
- 深度解析(2026)《GBT 34445-2017热塑性塑料及其复合材料热封面热粘性能测定》
- 大学生志愿者礼仪规范
- 消防设施维保服务方案投标文件(技术方案)
- 卤菜培训合同协议书
- 国家安全教育题库2025及答案解析
- 2025年文化旅游产业人才需求与培养可行性分析报告
- 胶州舞蹈课件
- 北京市海淀区2024-2025学年六年级上学期期末考试语文试题
- 数字治理 课件全套 彭飞 第1-12章 数字治理导论 - 数字环境治理
- 高压清洗车安全操作规程
- 价值流培训课件
- QGDW11970.4-2023输变电工程水土保持技术规程第4部分水土保持监理
评论
0/150
提交评论