2022年面向对象程序设计第二部分 .docx

上传人:H****o 文档编号:62329132 上传时间:2022-11-22 格式:DOCX 页数:6 大小:72.88KB
返回 下载 相关 举报
2022年面向对象程序设计第二部分 .docx_第1页
第1页 / 共6页
2022年面向对象程序设计第二部分 .docx_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《2022年面向对象程序设计第二部分 .docx》由会员分享,可在线阅读,更多相关《2022年面向对象程序设计第二部分 .docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品_精品资料_注:假如你的类里定义了一个或多个构造方法,那么 Java 不供应默认的构造方法.上述例子 2 供应了构造方法 ,以下创建对象是非法的: p1=new Point .对象的内存模型3、对象的内存模型我们使用前面的例子1 来说明对象的内存模型.( 1) 声明对象时的内存模型.当用 XiyoujiRenwuzhubajie 类声明一个变量zhubajie, 即对象 zhubajie 时,如例子1 中XiyoujiRenwu zhubajie .内存模型如下列图 :声明对象变量zhubajie 后,zhubajie 的内存中仍没有任何数据,我们称这时 zhubajie 是一个空对象 ,

2、空对象不能使用 ,由于它仍没有得到任何”实体”.必需再进行为对象安排内存的步骤, 即为对象安排实体( 2) 对象安排内存后的内存模型当系统见到 zhubajie=new XiyoujiRenwu.时 ,就会做两件事(a) 为 height,weight,head,ear,mouth,hand,foot 各个变量安排内存. 即XiyoujiRenwu类的成员变量被安排内存空间.假如成员变量在声明时没有指定初值,那么 ,对于整型变量 ,默认初值是 0,对于浮点型 ,默认初值是0.0, 对于 booean 型,默认初值是false,对于引用型 ,默认初值是 null.(b) 给出一个信息 ,已确保这

3、些变量是属于对象zhubajie 的,即这些内存单元将由zhubajie 操作( 3) 创建多个不同的对象一个类通过使用new 运算符可以创建多个不同的对象,这些对象将被安排不同的内存空间 ,因此,转变其中一个对象的状态不会影响其它对象的状态.zhubajie=new XiyoujiRenwu.sunwukong =new XiyoujiRenwu.可编辑资料 - - - 欢迎下载精品_精品资料_4.3.2. 使用对象对象不仅可以操作自己的变量转变状态,而且仍拥有了使用创建它的那个类中的方法的才能, 对象通过使用这些方法可以产生肯定的行为.通过使用运算符” .” ,对象可以实现对自己的变量拜访

4、和方法的调用.(1) 、对象操作自己的变量(对象的属性)对象创建之后 , 就有了自己的变量 ,即对象的实体 .通过使用运算符” .” , 对象可以实现对自己的变量的拜访.(2) 、对象调用类中的方法- 对象的功能对象创建之后 ,可以使用运算符” .”调用创建它的类中的方法,从而产生肯定的行为功能 .当对象调用类中的一个方法时,方法中的局部变量被安排内存空间.方法执行完毕 ,局部变量即刻释放内存 . class Student float math, english, sum .float ffloat k1, float k2 sum = k1 * math + k2 * english.re

5、turn sum.public class Examplepublic static void mainString args Student wanghong, lihong .wanghong = new Student .lihong = new Student .wanghong.math = 60.0f .wanghong.english = 80f .lihong.math = 70.0f .lihong.english = 90.0f .wanghong.sum = wanghong.f2.0f, 2.0f .lihong.sum = lihong.f2.0f, 2.0f.Sys

6、tem.out.printlnlihong sum= + lihong.sum.System.out.printlnwanghong sum= + wanghong.sum.4.3.3. 对象的引用和实体我们已经知道 ,当用类创建一个对象时,类中的成员变量被安排内存空间,这些内存空间称做该对象的实体 ,而对象中存放着引用 ,以确保实体由该对象操作使用.public class Point int x,y .Pointint a,int bx=a.y=b.可编辑资料 - - - 欢迎下载精品_精品资料_public static void mainString argsPoint p1=new

7、Point12,16 .Point p2=new Point6,18 .p1=p2.System.out.printlnp1.x .System.out.printlnp2.x .4.4 static 关键字4.4.1. 实例变量和类变量的区分在叙述类的时候我们讲过:类体的定义包括成员变量的定义和方法的定义,并且成员变量又分为实例变量和类变量,用 static 修饰的变量是类变量 .那么类变量和实例变量有什么区分了 .我们已经知道 : 一个类通过使用new 运算符可以创建多个不同的对象,这些对象将被安排不 同的内存空间 ,现在再说得精确些就是:不同的对象的实例变量将被安排不同的内存空间,假如类

8、中的成员变量有类变量,那么全部的对象的这个类变量都安排给相同的一处内存,转变其中一个对象的这个类变量会影响其它对象的这个类变量.也就是说对象共享类变量.如class Takecare可编辑资料 - - - 欢迎下载精品_精品资料_class A A1.x=18static int x .int y . .Takecare A1=new Takecare.Takecare A2=new Takecare.可编辑资料 - - - 欢迎下载精品_精品资料_这时假如输出A1.x,A2.x 的值 ,结果相同都是18可编辑资料 - - - 欢迎下载精品_精品资料_见例子 StaticTest.java当

9、Java 程序执行时 ,类的字节码文件被加载到内存,假如该类没有创建对象,类的实例成员变量不会被安排内存 .但是,类中的类变量 ,在该类被加载到内存时,就安排了相应的内存空间.假如该类创建对象,那么不同对象的实例变量互不相同,即安排不同的内存空间,而类变量不再重新安排内存 ,全部的对象共享类变量,即全部的对象的类变量是相同的一处内存空间,类变量的内存空间直到程序退出运行,才释放所占有的内存 .4.4.2. 通过类名直接拜访类变量类变量在类的字节码加载到内存时就安排了内存空间,并且被全部的对象共享, 因此,Java 语言答应通过类名直接拜访类变量.class Statictest2static

10、int a=1 .class Pointpublic static void mainString args int c = Statictest2.a.System.out.printlnc .4.4.3. 实例方法和类方法的区分当类的字节码文件被加载到内存时,类的实例方法不会被安排入口的址,当该类创建对象后 ,类中的实例方法才安排入口的址,从而实例方法可以被类创建的任何对象调用执行. 需要留意的是 ,当我们创建第一个对象时,类中的实例方法就安排了入口的址,当再创建对象时,不再安排入口的址 ,也就是说 ,方法的入口的址被全部的对象共享,当全部的对象都不存在 时,方法的入口的址才被取消.对于类

11、中的类方法 ,在该类被加载到内存时,类方法就安排了相应的入口的址.从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用.类方法的入口的址直到程序退出才被取消 .无论是类方法或实例方法,当被调用执行时 ,方法中的局部变量才被安排内存空间,方法调用完毕 ,局部变量即刻释放所占的内存.4.4.4. 通过类名直接调用类方法类方法在类的字节码加载到内存时就安排了入口的址,因此 ,Java 语言答应通过类名 直接调用类方法 ,而实例方法不能通过类名调用.在叙述类的时候我们强调过,在 Java 语言中 , 类中的类方法不行以操作实例变量,也不行以调用实例方法,这是由于 ,在类创建对象之前 ,实例成员变量仍没有安排内存,实例方法也没有入口的址可编辑资料 - - - 欢迎下载精品_精品资料_class Aclass Bint x,y ./实例变量static int z ./ 类变量static float f int a/类方法float g int x1,int x2/实例方法public static void mainString args /带有 static,属于类方法A.f ./合法A.g ./非法A a = new A .a.f ./合法a.g./合法可编辑资料 - - - 欢迎下载

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁