第5章类的高级特性.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章类的高级特性.ppt

static 关键字用来声明静态变量和静态方法。例如: class MyClass { static int i; static void increase(){ i ++; } } 静态变量和静态方法为类中所有对象所共有,可以不创建对象,直接引用。也称为类变量和类方法。 引用方式:类名.静态变量/静态方法,如: MyClass.i; MyClass.increase(); 如果在声明时不用static 关键字修饰,则为实例变量和实例方法。 一个类通过使用new运算符可以创建多个不同的对象,这些对象将被分配不同的内存空间,准确地说就是不同的对象的实例变量将被分配不同的内存空间,如果类中的成员变量有类变量,那么所有的对象的这个类变量都分配给相同的一处内存。也就是说对象共享类变量,改变其中一个对象的这个类变量会影响其它对象的这个类变量。 静态变量可以通过类名直接访问,也可以通过对象来调用。采用这两种方法取得的结果是相同的。如果是public静态变量,则其它类可以不通过实例化访问它们。 类方法不能访问实例变量,只能访问类变量。类方法可以由类名直接调用,也可由实例对象进行调用。类方法中不能使用this或super关键字。 对于实例变量必须先生成实例对象,通过该对象访问实例变量。实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作,实例方法由实例对象调用。 下面的代码及图5.1说明了实例变量与静态变量关系。 class ABCD { char data; static int st_data; } class Demo { ABCD a,b,c,d } 例5-1 关于实例成员和类成员的例子。 程序清单:ch05\MemberTest.java package ch05; class Member { static int classVar; int instanceVar; static void setClassVar(int i) { classVar=i; // instanceVar=i; // 类方法不能访问实例变量 } static int getClassVar(){ return classVar; } void setInstanceVar(int i){ classVar=i; //实例方法不但可以访问类变量,也可以实例变量 instanceVar=i; } int getInstanceVar( ) { return instanceVar; } } public class MemberTest{ public static void main(String[] args) { Member m1=new Member(); Member m2=new Member(); m1.setClassVar(1); m2.setClassVar(2); System.out.println(m1.classVar=+m1.getClassVar()+ m2.ClassVar=+m2.getClassVar()); m1.setInstanceVar(11); m2.setInstanceVar(22); System.out.println(m1.InstanceVar=+m1.getInstanceVar()+ m2.InstanceVar=+m2.getInstanceVar()); } } 分析一个不正确的变量引用实例: class StaticError{ String mystring=“hello”; //实例变量 public static void main(String[] args) { System.out.println(mystring); //静态方法访问实例变量出错 } } 错误信息:can’t make a static reference to nonstatic variable。因为只有对象的方法可以访问对象的变量。 解决的办法: 1. 将实例变量mystring改为类变量: class StaticError{ static String mystring=“hello”; public static void main(String[] args) { System.out.println(mystring); } } 2.将实例变量mystring改为局部变量: class NoStaticError{ public static void main(String[] args) { String m

文档评论(0)

整理王 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档