码迷,mamicode.com
首页 > 编程语言 > 详细

【ThinkingInJava】7、实现组合语法

时间:2015-04-14 11:15:58      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:java编程思想   java   类的组合   

/**
* 书本:《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



【ThinkingInJava】7、实现组合语法

标签:java编程思想   java   类的组合   

原文地址:http://blog.csdn.net/cutter_point/article/details/45038571

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!