- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.用this调用构造方法 如果要在程序中用某一构造方法调用另一构造方法,可以用this来实现,具体的调用形式如下: this(); 【例5-24】 TestJavaThis1.java。 程序说明: (1) 第1~17行声明一个名为Person的类,类中声明了一个无参和一个有参两个构造方法。 (2) 第12行使用this调用本类中的无参构造方法。 (3) 第22行声明一个Person类的匿名对象,调用了有参的构造方法。 从上述程序可以看出,在第22行虽然调用了Person中有两个参数的构造方法,但是由于第12行使用了this调用本类中的无参构造方法,所以程序先去执行Person中的无参构造方法,之后再去继续执行其他构造方法。 如果把this调用无参构造方法的位置任意调换,则可以在任何时候调用构造方法吗?实际上这样理解是错误的。构造方法是在实例化一对象时被自动调用的,也就是说在类中的所有方法中只有构造方法是被优先调用的,所以使用this调用构造方法必须也只能放在构造方法的第一行。下面的程序就是一个错误的程序。 5.10 static关键字的使用5.10.1 静态变量 在程序中如果用static声明变量,则此变量称为静态变量。那么什么是静态变量呢?使用静态变量又有什么好处呢? 【例5-25】 TestStaticDemo1.java。 输出结果: 我是:张三,今年:25岁,来自:中国 我是:李四,今年:30岁,来自:中国 我是:王五,今年:35岁,来自:中国 程序说明: (1) 第1~16行声明一个名为Person的类,含有三个属性:name、age、city。 (2) 第6~11行声明Person类的一个构造方法,此构造方法分别为各属性赋值。 (3) 第12~15行声明一个talk()方法,此方法用于返回用户信息。 (4) 第21~23行分别实例化三个Person对象。 (5) 第24~26行分别调用类中的talk()方法输出用户信息。由上面的程序可以发现,所有的Person对象都有一个city属性,而且所有的属性也全部相同,如图5-12所示。 图5-12 static变量内存示意图 读者可以试着想一想,现在假设程序产生了50个Person对象,如果想修改所有人的city属性,那么是否就要调用50遍city属性进行重新修改呢?显然这样太麻烦了。在Java中提供了static关键字,用它来修饰类的属性后,则此属性就是公共属性。将TestStaticDemo1.java程序稍作修改就形成了TestStaticDemo2.java,如下所示。 【例5-26】 TestStaticDemo2.java。 程序说明: (1) 第1~15行声明一个名为Person的类,含有三个属性:name、age、city。其中,city为static类型 (2) 第6~10行声明Person类的一个构造方法,此构造方法的作用是分别为name、age属性赋值。 (3) 第11~14行声明一个talk()方法,此方法用于返回用户信息。 (4) 第20~22行分别实例化三个Person对象。 (5) 第23~25行分别调用类中的talk()方法,输出用户信息。 (6) 第28行修改了p1中的city属性。 从上面的程序中可以发现,程序只在第28行修改了city属性,而且只修改了一个对象的city属性,但再次输出时,发现全部对象的city值都发生了一样的变化,这就说明了用static声明的属性是所有对象共享的,如图5-13所示。 图5-13 static变量的使用 从图5-13中可以看出,所有的对象都指向同一个city属性,只要其中有一个对象修改了city属性的内容,则所有对象都会被同时修改。 另外,需要注意一点,用static方式声明的属性也可以用类名直接访问。例如,要想修改city属性中的内容,则可以用如下方式: Person.city = 美国; 所以有些书上也把用static类型声明的变量称为“类变量”。 既然static类型声明的变量是所有对象共享的内存空间,也就是说无论最终有多少个对象产生,也都只有一个static类型的属性,那么可不可以用它来计算类到底产生了多少个实例对象呢?读者可以想一想,只要一个类产生一个新的实例对象,就都会去调用构造方法,所以可以在构造方法中加入一些计数操作,如下面的程序: 5.10.2 静态方法 static既可以在声明变量时使用,也可以用其来声明方法。用它声明的方法有时被称为“类方法”。 【例5-27】 TestStat
您可能关注的文档
- 2015金属焊接切割作业(劳动版)教学课件:金属焊接和切割 .ppt
- 2015金属结构设计(华科版)课件:绪论(用) .ppt
- 2015金属融化焊基础(机工版)课件:工程结构用钢.ppt
- 2015金属融化焊基础(机工版)课件:有害元素对焊缝金属的作用及其控制.ppt
- 2015金属融化焊基础(机工版)课件:淬火与回火.ppt
- 2015金属融化焊基础(机工版)课件:焊 剂.ppt
- 2015金属工艺学(冶金版)课件:金属液态成形(铸造)的概念.ppt
- 2015金属融化焊基础(机工版)课件:焊接热影响区.ppt
- 2015金属融化焊基础(机工版)课件:焊接热过程.ppt
- 2015金属融化焊基础(机工版)课件:焊条.ppt
文档评论(0)