从头认识java-47构造器初始化

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

从头认识java-4.7构造器初始化(2)这一章节我们接着上一章节的内容。(3)静态数据的初始化a.静态数据只会执行一次[java]viewplaincopy1.packagecom.ray.testobject;2.3.publicclassTest{4.privatestaticBookbook1=newBook(1);5.privatestaticBookbook2=newBook(2);6.7.publicTest(){8.System.out.println(createtest);9.book1.say();10.book2.say();11.Bookbook3=newBook(3);12.book3.say();13.}14.15.publicstaticvoidmain(String[]args){16.newTest();17.newTest();18.}19.}20.21.classBook{22.privateintid;23.24.publicBook(intid){25.this.id=id;26.System.out.println(createbook:+id);27.}28.29.publicvoidsay(){30.System.out.println(hi,mynameisbook-+id);31.}32.}输出:createbook:1createbook:2createtesthi,mynameisbook-1hi,mynameisbook-2createbook:3hi,mynameisbook-3createtesthi,mynameisbook-1hi,mynameisbook-2createbook:3hi,mynameisbook-3从结果可以看见,book1和book2只在第一次创建Test的时候创建了一次,然后再次创建Test时就不再创建book1和book2。b.如果不被引用或者不new,对象里面的静态属性域不会创建。我们修改一下上面的代码:[java]viewplaincopy1.packagecom.ray.testobject;2.3.publicclassTest{4.5.publicTest(){6.}7.8.publicstaticvoidmain(String[]args){9.}10.}11.12.classBook{13.privateintid;14.15.publicBook(intid){16.this.id=id;17.System.out.println(createbook:+id);18.}19.20.publicvoidsay(){21.System.out.println(hi,mynameisbook-+id);22.}23.}24.25.classGroupOfBooks{26.privatestaticBookbook;27.28.publicstaticBookgetBook(){29.book=newBook(99);30.returnbook;31.}32.}上面的代码是不会执行newBook(99)这一行的。我们再进行修改,给出两种执行newBook(99)的例子:[java]viewplaincopy1.packagecom.ray.testobject;2.3.publicclassTest{4.5.publicTest(){6.}7.8.publicstaticvoidmain(String[]args){9.newGroupOfBooks().getBook();10.}11.}12.13.classBook{14.privateintid;15.16.publicBook(intid){17.this.id=id;18.System.out.println(createbook:+id);19.}20.21.publicvoidsay(){22.System.out.println(hi,mynameisbook-+id);23.}24.}25.26.classGroupOfBooks{27.privatestaticBookbook;28.29.publicstaticBookgetBook(){30.book=newBook(99);31.returnbook;32.}33.}[java]viewplaincopy1.packagecom.ray.testobject;2.3.publicclassTest{4.5.publicTest(){6.}7.8.publicstaticvoidmain(String[]args){9.GroupOfBooks.getBook();10.}11.}12.13.classBook{14.privateintid;15.16.publicBook(intid){17.this.id=id;18.System.out.println(createbook:+id);19.}20.21.publicvoidsay(){22.System.out.println(hi,mynameisbook-+id);23.}24.}25.26.classGroupOfBooks{27.privatestaticBookbook;28.29.publicstaticBookgetBook(){30.book=newBook(99);31.returnbook;32.}33.}上面两段代码同样输出:createbook:99这里总结一下对象创建的过程:1.查询.class文件的路径2.载入.class文件,执行对象的静态方法或者静态属性域3.new对象,然后分配内存空间(内存空间清零,则对象回收,引用变成null)4.执行属性域初始化5.执行构造器总结:这一章节主要讨论了静态属性域的初始化。这一章节就到这里,谢谢。-----------------------------------目录

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功