【ThinkingInJava】7、实现组合语法

来源:互联网 发布:淘宝直邮有假货吗 编辑:程序博客网 时间:2024/04/30 05:15
/*** 书本:《Thinking In Java》* 功能:实现组合语法,创建一个简单的类,在第二个类中,将一个引用定义为第一个类的对象。运用惰性初始化实例化这个对象* 文件:test1.java* 时间:2014年10月12日15:39:13* 作者:cutter_point*/package Lesson7ReusingClasses;import static net.mindview.util.Print.*;class Simple{String s;//构造函数,toString函数,更改函数public Simple(String si){s=si;}public String toString() { return s; }public void setString(String newString) { s=newString; }}class Second{Simple simple;//类的组合String s;//构造函数,检验初始化函数,lazy惰性初始化方法,得到simple类方法,tostring方法,setsimple类方法public Second(String si) { s=si; }public void check(){if(simple == null)print("没有初始化simple");elseprint("simple已经被初始化");}public Simple lazy(){if(simple == null){print("构造初始化simple");simple=new Simple(s);}return simple;}public Simple getSimple(){return simple;}//tostring方法,setsimple类方法public String toString(){return lazy().toString();}public void setSimple(String ss){lazy().setString(ss);}}public class test1 {public static void main(String [] args){Second second=new Second("Init String");second.check();print(second.getSimple());second.check();print(second);second.setSimple("cutter_point good");print(second);}}


输出:

没有初始化simple  obj1
null  obj1
没有初始化simple  obj1
构造初始化simple  obj1
Init String  obj1
cutter_point good  obj1



0 0
原创粉丝点击