Posted on 2006-10-06 13:46
久城 阅读(844)
评论(2) 编辑 收藏 所属分类:
JavaTest
在网上见过这道小题,正好寝室的兄弟们在学,借机会整理下!
题目是这样的:
1.定义一个SigCls.java;
2.SigCls只能存在一个实例;
3.在构造器中初始化两个成员属性;
4.编写TestSigCls.java测试;
分析:
如果构造一个类,它只能存在一个实例,那它的构造函数一定不能被外部访问,也就是说它的构造函数应该是private的.
如果构造函数是private的,外部不能实例化,那就需要在类内部定义一个方法,用来创建这个实例.
既然只能存在一个实例,那么可以把这个唯一的实例定义成静态的,这样静态成员只初始化一次.
代码:
//SigCls.java文件
public class SigCls
{
private String name;
private int age;//两个成员属性
private static SigCls inst;//声明静态实例
private SigCls(String aName, int aAge) {
name = aName;
age = aAge;//初始化两个成员属性
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public static SigCls getInstance() {
if (inst == null)
{
System.out.println("none");
inst = new SigCls("xiaozhang", 19);//初始化实例
return inst;
}
else
{
System.out.println("Sig");
return inst;
}
}
}
//TestSigCls.java文件
public class TestSigCls
{
public static void main(String[] args)
{
SigCls sc1;
SigCls sc2;
sc1 = SigCls.getInstance();
sc2 = SigCls.getInstance();
System.out.println(sc1.getName());
System.out.println(sc2.getName());
}
}
应该还有其他的方法,有待研究!
欢迎来访!^.^!
本BLOG仅用于个人学习交流!
目的在于记录个人成长.
所有文字均属于个人理解.
如有错误,望多多指教!不胜感激!