2015-09-07 11:44:36 -06:00
|
|
|
// reuse/Bath.java
|
2015-12-15 11:47:04 -08:00
|
|
|
// (c)2016 MindView LLC: see Copyright.txt
|
2015-11-15 15:51:35 -08:00
|
|
|
// We make no guarantees that this code is fit for any purpose.
|
|
|
|
// Visit http://mindviewinc.com/Books/OnJava/ for more book information.
|
2015-06-15 17:47:35 -07:00
|
|
|
// Constructor initialization with composition.
|
|
|
|
|
|
|
|
class Soap {
|
|
|
|
private String s;
|
|
|
|
Soap() {
|
2015-11-03 12:00:44 -08:00
|
|
|
System.out.println("Soap()");
|
2015-06-15 17:47:35 -07:00
|
|
|
s = "Constructed";
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public String toString() { return s; }
|
|
|
|
}
|
|
|
|
|
|
|
|
public class Bath {
|
|
|
|
private String // Initializing at point of definition:
|
|
|
|
s1 = "Happy",
|
|
|
|
s2 = "Happy",
|
|
|
|
s3, s4;
|
|
|
|
private Soap castille;
|
|
|
|
private int i;
|
|
|
|
private float toy;
|
|
|
|
public Bath() {
|
2015-11-03 12:00:44 -08:00
|
|
|
System.out.println("Inside Bath()");
|
2015-06-15 17:47:35 -07:00
|
|
|
s3 = "Joy";
|
|
|
|
toy = 3.14f;
|
|
|
|
castille = new Soap();
|
|
|
|
}
|
|
|
|
// Instance initialization:
|
|
|
|
{ i = 47; }
|
|
|
|
@Override
|
|
|
|
public String toString() {
|
|
|
|
if(s4 == null) // Delayed initialization:
|
|
|
|
s4 = "Joy";
|
|
|
|
return
|
|
|
|
"s1 = " + s1 + "\n" +
|
|
|
|
"s2 = " + s2 + "\n" +
|
|
|
|
"s3 = " + s3 + "\n" +
|
|
|
|
"s4 = " + s4 + "\n" +
|
|
|
|
"i = " + i + "\n" +
|
|
|
|
"toy = " + toy + "\n" +
|
|
|
|
"castille = " + castille;
|
|
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
|
|
Bath b = new Bath();
|
2015-11-03 12:00:44 -08:00
|
|
|
System.out.println(b);
|
2015-06-15 17:47:35 -07:00
|
|
|
}
|
2015-09-07 11:44:36 -06:00
|
|
|
}
|
|
|
|
/* Output:
|
2015-06-15 17:47:35 -07:00
|
|
|
Inside Bath()
|
|
|
|
Soap()
|
|
|
|
s1 = Happy
|
|
|
|
s2 = Happy
|
|
|
|
s3 = Joy
|
|
|
|
s4 = Joy
|
|
|
|
i = 47
|
|
|
|
toy = 3.14
|
|
|
|
castille = Constructed
|
2015-09-07 11:44:36 -06:00
|
|
|
*/
|