版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java面向对象编程Java
本章内容提要面向对象基础类对象static和this关键字访问权限面向对象的程序设计方法力求符合人脑的思维方式,通过符合人类思维的更抽象的客观世界
模型,降低、分解问题的难度和复杂性,并以此
来解决问题。
与结构化的程序设计方法有何区别?3.1
面向对象基础面向对象的基本原理面向对象方法学是面向对象程序设计技术的理论基础。该理论的出发点和基本原则,是尽可
能模拟人类习惯的思维方式,使开发软件的方法
与人类的认知过程同步,通过对人类认识客观世
界及事物发展过程的抽象,建立规范的分析设计
方法,由此使程序具有良好的封装性、可读性、
可维护性、可重用性等一系列优点。3.1
面向对象基础面向对象的基本概念1.对象§对象就是现实世界中实体在计算机逻辑中的映射和体现。§实
体
都具有一定的属性和行为。从面向对象的观点来看,所有的面向对象的
程
序都是由对象构成的。3.1
面向对象基础2.类类就是具有相同或相似属性和行为的对象的抽象。在面向对象的程序设计中
,类与对象是抽象与具体的关系。3.1
面向对象基础3.属性§对象的属性主要用来描述对象的状态。§属性用变量来定义。4.
行为§对象的
行为
又称为对象的操作,主要描述对象
内部的各种动态信息。§行为
用方法来刻画。3.1
面向对象基础面向对象编程的特点1.封装封装,就是将事物的内部实现细节隐藏起来,对外提供一致的公共的接口间接访问隐藏数据。优点:使得Java程序具有良好的可维护性
使得代码的重用性大为提高3.1
面向对象基础2.继承§
当一个类拥有另一个类的数据和操作时,就称这两个类具有继承关系。被继承的类称为父类或超类,继承父类的类称为子类
。§继承有单重继承和多重继承之分。优
点:使得面向对象的程序结构清晰,易于理解。3.1
面向对象基础3.多态§多态指多种表现形式,就是对象响应外部激励
而使其形式发生改变的现象。多态有两种情况:一种是通过类之间继承导致的同名方法覆盖体现的,另一种是通过同一个类中同名方法
的重载体现的。优点:提高了程序的抽象程度和简洁性。3.1
面向对象基础
3.2
1.类的声明class
类名{类体的内容例
如
:class
Student{/
定义类Student3.2
2.类体class
<类
名>[<
成员变量定义
>][<构造方法定
义>
]
[
<
成员方法声明>]通
常
,Java
中把成员
变量放在方法前面定义。成员变量在类体中并且在方法之外定义的变量称为成员变量
。[修饰符]变量类型
变量
名
;
例如:IntegerstuAge;int
age
=9;3.2 3.2成员方法1.
方法
定义方法也由两部分组成,即方法头和方法体。
返回值类型方法名(参数列表){[<方法体>]3.2
(1)方法修饰符方法修饰符控制方法在什么条件下使用以及如何使用,包括public
(公有的)、private(私有的)及protected(保护的)。(2)
返回值类型返回值类型可以是基本数据类型、应用类型(引用类型)以
及void
(空类型
)
。(3)方法名(4)形参列表形参列表是以“,”分开的、参数的数据类型和变量名的列表。(<变量类型1
变量名1>,
…
,<变量类型n变量名n>)3.2
2.
方法体方法的功能实现部分,主要由局部变量和语句构成。方法体也可以是空的,即没有任何变量和语
例
如
:void
setName(Stringname){}[例3-1]方法的定义3.2类构造方法(1)构造方法的方法名与类名相同。(2)构造方法不允许声明返回值。(3)构造方法的作用是完成对类对象的初始化。(4)构造方法只能通过new运算符调用,不能通过
对象或类调用。(5)
一
个类可以定义多个构造方法。3.2
(1)为每个新建的对象赋初始值
,从而保证每一
个新建的对象处于合理正常的状态。(2)引入更多的灵活度,使得初始化工作不仅仅
包括成员变量的赋值,还可以有更复杂的操作。[例3-2]构造方法的定义构造方法的作用:3.2类对象创建1.声明对象typeobjectname;例
如
:Student
xiaolin;
xiaolin3.3
对象2
.
建
立对象并初始化实际上就是将一个类实例化
,这是通过new关键字来完成的。例
如
:new
Student("小林","1001","12");小林1001123.3
对象对象引用被赋值后,将指向一个真正的对象
,即对象引用的内存空间中存储这个新建立对
象的内存空间的首地址,那么通过对象引用就可
以访问这个对象的所有可以访问的成员了。xiaolin0x032
小林
0x10321001123.3
对象Java
通过同一个类模板可以声明多个对象引用,也可以建立并初始化多个对象:Studentxiaolin,xiaofei;xiaolin
=new
Student("小林","1001","12");xiaofei=new
Student("小飞i","1002","16");Studentxiaoqiang=xiaolin;3.3
对象 判断对象a的引用是否存在——a!=null
或a==null;§判断a、b两个对象的引用是否相等——a==b;判断a、b两个对象的值是否相等——a.equals(b)。[例3-3]创建对象3.3
对象使用对象有两种方式使用对象:一是通过对对象变量的引用来使用对
象
;objectRenference.variable;二是通过调用对象的方法来使用对象。objectRenference.methodName(paramlist);3.3
对象Java[例3-4]使用对象姓名:王非学号:10011学院编号:11姓名:黎明学号:10012学院编号:123.3
对象
3.3
对象对象引用与对象实体对象引用和对象实体是相互独立的。
[例3-5]通过对象引用遥控对象实体学生:小明学生:小明学生:小强学生:小强null垃圾回收机制Java中
,对象使用的内存空间的释放是自动完成的,不需要在编码时考虑对象的释放问题。Java运行系统具有所谓的“垃圾回收机制”
,
垃
圾回收器(garbage
cllectors,
GC
)在后台运
行
,定时查看所有对象,识别那些不再被引用的
对象(垃圾),给
予释放,回收分配给这些对象
的内存。3.3
对象类变量被所有的类的所有实例共享的变量称为类变
量(class
variable),
类变量用修饰符static描述
。3.4
static关键字
常量
(constant)就是一旦赋值就不能更改
其值的变量。命名常量以关键字final
修饰,其类型可以是基本类型和引用类型。[例3-6]
类变量的定义与访问3.4
static关键字类方法类方法
(classmethod,
又成
为静态方法)也是以static修饰的方法。[例3-7]
通过类方法访问类变量一般在以下两种情况下使用类方法:1.如果方法的所有参数可以直接给定,不需要
访问实例变量时。2
.如果方法仅仅访问类变量时。3.4
static关键字静态代码快静态代码块是在类中独立于类成员的static语
句
块
,可以有多个,位置可以随便放,它不在
任何的方法体内,JVM加载类时会执行这些静态
的代码块,如
果static代
码块有多
个
,JVM
将按照它们在类中出现的先后顺序依次执行它们,每
个代码块只会被执行一次。3.4
static关键字在构造方法中使用thisthis出现在类的构造方法中时,代表使用该构造方法时所创建的对象。[例3-8]在构造方法中使用this3.5
this关键字在实例方法中使用this当this关键字出现在实例方法中时,代表正
在使用该方法的当前对象。实例方法可以操作类
的成员变量,当实例成员变量在实例方法中出现
时
,默认的格式是:this.成员变量类的实例方法可以调用类的其他方法,对于实例方法调用的默认格式是:this.方法名(参数列表)3.5
this关
键
字3.6包为了更好的管理这些类,Java
引入了包的
概包是一种类似于文件夹的一
种组织形式,包把各种类组织起来,一方面对类的命名空间进行管理,另一方面作为隐含的访问控制修饰符,是
信息隐藏和封装的有力工具。包的概念为了方便管理,通常将需要在一起工作的类放在一个包中。只要包名是惟一的,那么包中的
类就有了惟一的类全名。包的引入解决了类
名冲突问题。§包是
一种多层次的组织结构,其成员有子包、类
和接口。3.6包创建包创建包需要使用关键字package,其一般的格
式和语法为:package
包名;这条语句必须位于源文件的第一行,并且在同一个源文件中只能编写一条package语句。例
如
:package
newpackage;package
society.family;[例3-9]创建包3.6包导入包1.使用类全名[例3-10]使用类全名A010010A110111A210212A310313A4104143.6包3.6包2
.
导入需要的使用的类利用import关键字,将需要使用的类导入到
当前程序中,[例3-11]
导入需要的类包中的所有的类都被加载到当前文件中。例
如
:importschools.*;所有的Java程序自动导入java.lang
包,因此,import
j*语句可以省略不写。另外编译器在查找需
要的类时有特定的查找顺序,先是Java基本类库中的
类
,后是用户自定义的类。3.
导
入整个包3.6包4.文件打包(1)将应用程序压缩成JAR文件可以使用jar.exe
命令把一些文件压缩成一个JAR文件来发布应用程序。可以把Java应用程序中涉
及的类压缩成一个JAR文件,然后Java解释器执行这
个压缩文件。3.6包可以使用参数t和f查看一个JAR文件中的内容,如
:jar
=tf
Tom.jar使用参数x和f解压JAR文件:jar=xfTom.jar使用参数u和f更新一个JAR文件,例如将Third.class文件增加至Test.jar中的命令为:jar
-uf
Test.jar
Third.class4.文件打包(2)更新、查看JAR文件3.6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年房地产项目管理概述与发展趋势
- 2025年月子中心服务模式创新与市场竞争格局分析报告
- 2026年电气传动控制系统中涉及的法律法规
- 2026年物联网技术对电子电气市场的推动作用
- 小学阶段学生数字素养发展策略与数字产业人才需求对接路径优化教学研究课题报告
- 九年级物理av01-第一节 电磁波
- 《超重和失重》教案2
- 扣件式钢管脚手架杆件搭接
- 安康安康法院2025年招聘23名聘用制书记员笔试历年参考题库附带答案详解
- 四川四川省自然资源实验测试研究中心(四川省核应急技术支持中心)2025年考核招聘笔试历年参考题库附带答案详解
- 江苏百校大联考2026届高三语文第一学期期末学业质量监测试题含解析
- 代还按揭协议书
- 广西2025年高等职业教育考试全区模拟测试 能源动力与材料 大类试题及逐题答案解说
- 2026江苏省公务员考试公安机关公务员(人民警察)历年真题汇编附答案解析
- 2026年失眠患者睡眠调理指南
- 2026年盘锦职业技术学院单招职业适应性测试题库及答案详解一套
- 2025年10月自考00610高级日语(二)试题及答案
- 2026年包头铁道职业技术学院单招职业技能考试题库带答案解析
- 循证护理在基础护理中的应用
- 复旦大学招生面试常见问题及回答要点
- 危险化学品兼容性矩阵表
评论
0/150
提交评论