-复用类-组合语法
Posted changlili
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了-复用类-组合语法相关的知识,希望对你有一定的参考价值。
课后习题:练习1:创建一个简单的类,在第二个类中,将引用定义为第一个类的对象。运用惰性初始化来实例化这个对象。
我的答案:
一,个人。
1 package com.learnJava.test; 2 3 /** 4 * @Author zhuchangli 5 * @Date 2019/9/14 6 **/ 7 8 // 灶具 9 class Cooker 10 private String pot; // 锅 11 private String gas; // 煤气 12 Cooker() 13 pot = "Constructed pot"; 14 gas = "Constructed gas"; 15 16 17 public String toString() 18 return "pot = " + pot + "\n" + 19 "gas = " + gas + "\n" ; 20 21 22 // 厨房 23 public class Kitchen 24 private String s1 = "happy"; 25 private String s2 = "happy"; 26 private String s3; 27 private float s4; 28 private Cooker cooker; 29 30 public Kitchen() 31 System.out.println("Inside Cooker"); 32 s3 = "day"; 33 s4 = 3.14f; 34 cooker = new Cooker(); 35 36 37 public String toString() 38 return "s1 = " + s1 + "\n" + 39 "s2 = " +s2 + "\n" + 40 "s3 = " +s3+ " \n" + 41 "s4 =" +s4+ "\n" + 42 "cooker= " +cooker+ "\n"; 43 44 45 public static void main(String [] args) 46 Kitchen kitchen = new Kitchen(); 47 System.out.println(kitchen); 48 49
二,参考答案写的
1 package com.learnJava.test; 2 3 /** 4 * @Author zhuchangli 5 * @Date 2019/9/14 6 **/ 7 8 // 轮子 9 class Cycle 10 private String name = "Cycle"; 11 public void travle(Cycle c) 12 System.out.println("Cycle ride "+ c ); 13 14 public String toString() 15 return this.name; 16 17 18 19 class Unicycle extends Cycle 20 21 private String name = "Unicycle"; 22 23 public String toString() 24 return this.name; 25 26 27 28 class Bicycle extends Cycle 29 30 private String name = "Bicycle"; 31 32 public String toString() 33 return this.name; 34 35 36 37 class Tricycle extends Cycle 38 private String name = "Tricycle"; 39 40 public String toString() 41 return this.name; 42 43 44 45 // 骑行 46 public class Biking 47 48 public static void ride(Cycle c) 49 c.travle(c); 50 51 52 public static void main(String [] args) 53 54 Unicycle u = new Unicycle(); 55 Bicycle b = new Bicycle(); 56 Tricycle t = new Tricycle(); 57 58 ride(u); 59 ride(b); 60 ride(t); 61 62
三,总结
1,组合技术,只需要将对象引用置于新类中即可。
2,每一个非基本类型的对象都有一个toString方法,当编译器需要一个String而你只有一个对象时,自己定义的toString 方法便会被调用。
3,编译器并不是简单的为每一个引用都创建默认对象。
4,想初始化这些引用可以在 一下位置进行。
a,在定义对象的地方,意味着总是能够在构造器被调用之前被初始化。
b,在类的构造器中。
c,惰性初始化,在正要使用这些对象之前使用,在生成对象不值得及不必每次都生成对象的情况下,这种方式可以减少额外的负担。
d,使用实例初始化。
以上是关于-复用类-组合语法的主要内容,如果未能解决你的问题,请参考以下文章