【ThinkingInJava】7、实现组合语法

/**
* 书本:《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");
		else
			print("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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值