小弟最近在读think in java 里面复用类的一段代码及说明,我想知道这段代码在哪体现了初始化的这4种方式 请各位帮忙讲解下
编译器并不是简单地为每一个引用都创建默认对象.这一点是很有意义的.因为若真要那样做的话,就会在许多情况下增加不必要的负担。
如果想初始化这些引用,可以在代码中的下列位置进行:
1、在定义对象的地方。这意味着它们总是能够在构造器被调用之前被初始化。
2、在类的构造器中。
3、就在正要使用这些对象之前.这种方式称为惰性初始化。在生成对象不值得及不必每次都生成对象的情况下,这种方式可以减少额外的负担。
4、使用实例初始化。
以下是这四种方式的示例:
- Java code
class Soap{ private String s; Soap(){ System.out.println("Soap"); s = "Constructed"; } public String toString(){ return s; }}public class Chushihua { private String s1 = "happy" , s2 = "happy" , s3,s4; private Soap castille; private int i; private float toy; public Chushihua(){ System.out.println("Inside bath"); s3 = "Joy"; toy = 3.14f; castille = new Soap(); } { i = 47; } public String toString() { if(s4 == null) s4 = "Joy"; return "s1 = " + s1 + "\n" + "s2 = " + s2 + "\n" + "s3 = " + s3 + "\n" + "s4 = " + s1 + "\n" + "i = " + i + "\n" + "toy = " + toy + "\n" + "castille = " + castille ; } public static void main(String args[]){ Chushihua b = new Chushihua(); System.out.println(b); }}
Output:
Inside bath
Soap
s1 = happy
s2 = happy
s3 = Joy
s4 = happy
i = 47
toy = 3.14
------解决方案--------------------
Java对象及其引用
初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用,那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。
为便于说明,我们先定义一个简单的类:
- Java code
class Vehicle {int passengers; int fuelcap;int mpg;}
------解决方案--------------------
楼主看书不仔细。我现在也在看这本书。书中,明明很清楚的注释出了各种初始化方式出现的地方。你再去看下吧。。。