- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验3 类与对象编程概要1
实验3 类与对象编程
3.1实验目的
(1) 了解类的成员设计(2)?掌握类与对象的关系
(3) 理解静态方法与实例方法的使用差异;
3.2 知识要点
3.2.1 类
?? 作为java程序的基本要素,类由成员变量(也称属性)和成员方法组成。属性包括常量和变量,方法则包括构造方法和一般方法,在定义类时,它们习惯上按如下次序排列:class Order { // final 属性// 属性// 构造方法// 方法}类的属性一般定义为私有的,而将类的方法定义为public。
3.2.2? 对象创建与构造方法
类是创建对象的模板,而对象是类的实例。对象是一组属性和方法的封装体。创建对象用到保留字new。
格式为: 引用变量 = new 构造方法(参数)
有关构造方法有以下几点说明:
(1)创建对象时将用到构造方法;系统自动调用参数匹配的构造方法为对象初始化。
(2)构造方法的名称必须与类名同名,构造方法没有返回类型;
(3)一个类可提供多个构造方法,这些方法的参数不同。
(4)如果程序中未提供构造方法,系统自动提供空的无参构造方法。
3.2.3? 对象引用变量与对象关系
对象创建后,将对象的引用赋值给某个引用变量,就可以通过该变量访问对象的成员属性和方法。
成员的调用通过“.”运算符实现,格式为:
对象名.属性
对象名.方法(参数)
以下结合实例介绍对象引用变量与对象的关系。
class Point {
int x,y;? //属性变量
public Point(int x1,int y1) {? //构造方法
??? x=x1;? //将参数值赋值给对象的属性变量
??? y=y1;
}
public static void main(String args[]) {
??? Point p1=new Point(2,3);? //创建点(2,3)用p1引用
??? Point p2=new Point(3,5);? //创建点(3,5)用p2引用
??? Point p3=p1;???????????? //p3和p1代表同一对象
??? p1.x=18;???????????????? //修改p1的x属性值
??? System.out.println(p3.x);?? //输出 p3的x属性值
??? p1=p2;?????????????????? //p1“叛变”,改为和p2指向同一点
??? System.out.println(p1.x);
}
}
【运行结果】
? 18
? 3
【有关说明】
(1)main方法中首先创建两个对象,用带阴影的方框表示,分别用p1和p2两个引用变量存储其引用地址。
(2)语句Point p3=p1;的作用是定义一个Point类型的引用变量p3和p1值向同一对象;如图1所示。
(3)语句p1.x=8;的作用是修改p1所引用对象的x1值,由于p1和p3是“代表”同一对象,因此,输出p3.x和p1.x是一样的,也就是18.
(4)? 语句p1=p2将p1改为指向和p2所指的对象,这样,再输出 p1.x则结果为3。
【重要提示】 对象和对象引用变量是两个不同的概念,对象引用变量中存放的是对象的地址。通常访问对象需要借助对象引用变量,将对象的地址赋值给对象引用变量,则该引用变量就“代表”这个对象,但是引用变量与对象并不是固定的关系,通过更改引用变量的值,可让其“代表”另一对象,也可以通过引用变量之间的赋值让多个引用变量指向同一对象。如果一个对象没有任何引用变量指向它,则要访问该对象就再也不可能,Java垃圾回收器将自动回收该对象占用的内存。?
3.2.4 静态空间与实例空间
带有static修饰的属性称为静态属性或称类变量;带有static修饰的方法称为静态方法,在静态方法内可以直接访问静态属性或调用其他静态方法,静态属性在分配空间时与对象无关,静态空间的引用是与类关联,一个类的静态属性成员只有一份,访问静态成员可以通过类名(在自己类中也可以直接访问),也可以通过对象,静态属性是共享的,该类的任何对象均可访问它。
【思考】静态属性外层包裹的是类,因此必须指明是访问哪个类的静态成员,如果是在自己类中则可以省略,由于对象是由类创建,自然对象能标识其所属类,因此也允许用对象做前缀访问静态属性。非静态属性也称实例变量,也就是说,要通过实际的对象才能访问,其外层包裹的是对象,不同对象其实例变量的值通常是不同的。
例如,以下类中y是属于类的属性变量,而x是属于对象的实例变量,y是依托类的,在类装载时将给其分配空间并赋值,整个类只有一个y;而x只有创建了具体对象才存在,不同对象有各自的x属性,如图3-2所示。
class demo {
int x;
Static int y=12;
?}
您可能关注的文档
- 中石化职称英语2014中级复习重点概要1.doc
- 实小四(五)班周民慧小组概要1.ppt
- 实测实量周报概要1.doc
- 实名制法律法规学习概要1.pptx
- 宝马7系营销策划方案概要1.ppt
- 实现伟大中国梦2016研修87分卷概要1.doc
- 电动车设计开发流程-培训资料概要1.ppt
- 电动运钞车358V-200Ah锂离子电池系统方案书概要1.doc
- 实现快排最优版本算法上机报告概要1.doc
- 电化学基础题组2概要1.doc
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
最近下载
- 市政道路开口施工方案样本.pdf
- 2024年社区工作者考试必背1000题题库附参考答案【模拟题】.docx VIP
- 教师竞选高级职称评选述职报告PPT.pptx VIP
- 海康磁盘阵列产品操作及说明书.pdf
- 安徽林海园林绿化股份有限公司招聘简章.doc
- 2024年小学一年级上学期语文期中考试试卷附答案(实用) .pdf VIP
- 2024年春江苏开放大学网络学习工具及应用第二次形考作业答案.docx
- 华东师大版八年级数学下册导学案.pdf
- 九年级英语Unit 4 I used to be afraid of the dark优秀教案.doc
- 深入探讨小学思政课课程改革创新txt.docx VIP
文档评论(0)