JAVA考核题-面向对象选择题(答案) 下载本文

内容发布更新时间 : 2024/5/12 8:45:52星期一 下面是文章的全部内容请认真阅读。

技术改变世界 创新驱动发展

// 在自己内部定义自己一个实例,是不是很奇怪? private static Singleton instance = new Singleton(); // 注意这是private 只供内部调用 private Singleton() { } // 这里提供了一个供外部访问本class的静态方法,可以直接访问 public static Singleton getInstance() { return instance; } }

(2)第二种形式-懒汉式单例类:第一次调用才初始化。 public class GoodSingleton { // 在自己内部定义自己一个实例,是不是很奇怪? private static GoodSingleton instance = null; // 注意这是private 只供内部调用 private GoodSingleton() { } //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次 //使用时生成实例,提高了效率

public static synchronized GoodSingleton getInstance() { if(instance == null){ return new GoodSingleton(); }else{ return instance; } } }

//懒汉式的另一种改进

public class GoodSingleton { // 在自己内部定义自己一个实例,是不是很奇怪? private volatile static GoodSingleton instance; // 注意这是private 只供内部调用 private GoodSingleton() { } // 两次检查 public static GoodSingleton getInstance1() { if (instance == null) {

您的未来就是我们的未来

技术改变世界 创新驱动发展

synchronized (GoodSingleton.class) { if (instance == null) { instance = new GoodSingleton(); } } } return instance; } }

(3)登记式单例类:为了克服饿汉式和懒汉式单例类不可继承的缺点而设计的。 5、补足代码

packagelianxi; interface Interface { }

class Test{ }

public class Lianxi{ } 答案:

interface Interface { }

class Test{

void method();

//补上代码,通过匿名内部类

public static void main(String[] args) { }

Test.function().method();

void method();

public static Interface function() {

//补上代码,通过匿名内部类 return new Interface(){

public void method() {

System.out.println(\

您的未来就是我们的未来 技术改变世界 创新驱动发展

}

}

};

}

public class Lianxi{ }

public static void main(String[] args) { }

// 解析:读懂本句代码是解题关键 Test.function().method();

您的未来就是我们的未来