2024年面向对象程序设计第二部分.doc
《2024年面向对象程序设计第二部分.doc》由会员分享,可在线阅读,更多相关《2024年面向对象程序设计第二部分.doc(5页珍藏版)》请在咨信网上搜索。
注:假如你的类里定义了一个或多个结构措施,那么Java 不提供默认的结构措施. 上述例子2 提供了结构措施,下列创建对象是非法的: p1=new Point(); 对象的内存模型 3、对象的内存模型 我们使用前面的例子1来阐明对象的内存模型. (1) 申明对象时的内存模型. 当用XiyoujiRenwu zhubajie类申明一个变量zhubajie,即对象zhubajie时,如例子1中XiyoujiRenwu zhubajie;内存模型如图所示: 申明对象变量zhubajie 后,zhubajie的内存中还没有任何数据,我们称这时zhubajie 是一个空对象,空对象不能使用,因为它还没有得到任何”实体”.必须再进行为对象分派内存的步骤,即为对象分派实体 (2) 对象分派内存后的内存模型 当系统见到zhubajie=new XiyoujiRenwu();时,就会做两件事 (a)为height,weight,head,ear,mouth,hand,foot 各个变量分派内存. 即 XiyoujiRenwu 类的组员变量被分派内存空间.假如组员变量在申明时没有指定初值,那么,对于整型变量,默认初值是0,对于浮点型,默认初值是0.0, 对于booean 型,默认初值是false,对于引用型,默认初值是null. (b)给出一个信息,已确保这些变量是属于对象zhubajie的,即这些内存单元将由zhubajie操作 (3) 创建多个不一样的对象 一个类通过使用new运算符能够创建多个不一样的对象,这些对象将被分派不一样的内存空间,因此,变化其中一个对象的状态不会影响其他对象的状态. zhubajie=new XiyoujiRenwu(); sunwukong =new XiyoujiRenwu(); 4.3.2. 使用对象 对象不但能够操作自己的变量变化状态,并且还拥有了使用创建它的那个类中的措施的能力,对象通过使用这些措施能够产生一定的行为.通过使用运算符”.”,对象能够实现对自己的变量访问和措施的调用. (1)、对象操作自己的变量(对象的属性) 对象创建之后,就有了自己的变量,即对象的实体.通过使用运算符”.”,对象能够实现对自己的变量的访问. (2)、对象调用类中的措施--对象的功效 对象创建之后,能够使用运算符”.”调用创建它的类中的措施,从而产生一定的行为功效. 当对象调用类中的一个措施时,措施中的局部变量被分派内存空间.措施执行完成,局部变量即刻释放内存. class Student { float math, english, sum; float f(float k1, float k2) { sum = k1 * math + k2 * english; return sum; } } public class Example{ public static void main(String 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.f(2.0f, 2.0f); lihong.sum = lihong.f(2.0f, 2.0f); System.out.println("lihong sum= " + lihong.sum); System.out.println("wanghong sum=" + wanghong.sum); } } 4.3.3. 对象的引用和实体 我们已经懂得,当用类创建一个对象时,类中的组员变量被分派内存空间,这些内存空间称做该对象的实体,而对象中存储着引用,以确保实体由该对象操作使用. public class Point { int x,y; Point(int a,int b){ x=a; y=b; } public static void main(String args[]){ Point p1=new Point(12,16); Point p2=new Point(6,18); p1=p2; System.out.println(p1.x); System.out.println(p2.x); } } 4.4 static 核心字 4.4.1. 实例变量和类变量的区分 在讲述类的时候我们讲过:类体的定义包括组员变量的定义和措施的定义,并且组员变量又分为实例变量和类变量,用static修饰的变量是类变量.那么类变量和实例变量有什么区分呢? 我们已经懂得:一个类通过使用new运算符能够创建多个不一样的对象,这些对象将被分派不一样的内存空间,目前再说得准确些就是:不一样的对象的实例变量将被分派不一样的内存空间,假如类中的组员变量有类变量,那么所有的对象的这个类变量都分派给相同的一处内存,变化其中一个对象的这个类变量会影响其他对象的这个类变量. 也就是说对象共享类变量. 如 class Takecare { static int x; int y; … … . } class A { Takecare A1=new Takecare(); Takecare A2=new Takecare(); } A1.x=18 这时假如输出A1.x,A2.x的值,成果相同都是18 见例子 StaticTest.java 当Java程序执行时,类的字节码文献被加载到内存,假如该类没有创建对象,类的实例组员变量不会被分派内存.不过,类中的类变量,在该类被加载到内存时,就分派了对应的内存空间.假如该类创建对象,那么不一样对象的实例变量互不相同,即分派不一样的内存空间,而类变量不再重新分派内存,所有的对象共享类变量,即所有的对象的类变量是相同的一处内存空间,类变量的内存空间直到程序退出运行,才释放所占有的内存. 4.4.2. 通过类名直接访问类变量 类变量在类的字节码加载到内存时就分派了内存空间,并且被所有的对象共享,因此,Java语言允许通过类名直接访问类变量. class Statictest2{ static int a=1; } class Point{ public static void main(String args[]){ int c = Statictest2.a; System.out.println(c); } } 4.4.3. 实例措施和类措施的区分 当类的字节码文献被加载到内存时,类的实例措施不会被分派入口地址,当该类创建对象后,类中的实例措施才分派入口地址,从而实例措施能够被类创建的任何对象调用执行.需要注意的是,当我们创建第一个对象时,类中的实例措施就分派了入口地址,当再创建对象时,不再分派入口地址,也就是说,措施的入口地址被所有的对象共享,当所有的对象都不存在时,措施的入口地址才被取消. 对于类中的类措施,在该类被加载到内存时,类措施就分派了对应的入口地址.从而类措施不但能够被类创建的任何对象调用执行,也能够直接通过类名调用.类措施的入口地址直到程序退出才被取消. 无论是类措施或实例措施,当被调用执行时,措施中的局部变量才被分派内存空间,措施调用完成,局部变量即刻释放所占的内存. 4.4.4. 通过类名直接调用类措施 类措施在类的字节码加载到内存时就分派了入口地址,因此,Java 语言允许通过类名直接调用类措施,而实例措施不能通过类名调用.在讲述类的时候我们强调过,在Java 语言中,类中的类措施不能够操作实例变量,也不能够调用实例措施,这是因为,在类创建对象之前,实例组员变量还没有分派内存,实例措施也没有入口地址 class A { int x,y; //实例变量 static int z; //类变量 static float f (int a){ //类措施 } float g (int x1,int x2){ //实例措施 } } class B { public static void main(String args[]){ //带有static,属于类措施 A.f(); //合法 A.g(); //非法 A a = new A(); a.f(); //合法 a.g(); //合法 } }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2024 面向 对象 程序设计 第二 部分
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文