文档介绍:代码与编程题
135、写一个 Singleton 出来
Singleton 模式主要作用是保证在 Java 应用程序中,一个类 Class 只有一个实例存在。
一般 Singleton 模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数为 private 的,它有一个 static 的 private 的该类变量,在
类初始化时实例话,通过一个 public 的 getInstance 方法获取对它的引用,继而调用其中的方法。
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是 private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本 class 的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定义一个类,它的构造函数为 private 的,所有方法为 static 的。
一般认为第一种形式要更加安全些
136、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
答:父类:
package test;
public class FatherClass
{
public FatherClass()
{
("FatherClass Create");
}
}
子类:
package test;
import ;
public class ChildClass extends FatherClass
{
public ChildClass()
{
("ChildClass Create");
}
public static void main(String[] args)
{
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
输出结果:
C:\>java
FatherClass Create
FatherClass Create
ChildClass Create
137、内部类的实现方式?
答:示例代码如下:
package test;
public class OuterClass
{
private class InterClass
{
public InterClass()
{
("InterClass Create");
}
}
public OuterClass()
{
InterClass ic = new InterClass();
("OuterClass Create");
}
public static void main(String[] args)
{
OuterClass oc = new OuterClass();
}
}
输出结果:
C:\>java test/OuterClass
InterClass Create
Out