黑马程序员技术交流社区
标题:
枚举的问题
[打印本页]
作者:
齐连涛
时间:
2012-10-20 10:45
标题:
枚举的问题
本帖最后由 齐连涛 于 2012-10-26 17:11 编辑
枚举中只有一个元素,可以作为一种单例设计模式,什么意思? 各位大牛能否举例说 明下?
作者:
杜正华
时间:
2012-10-20 14:31
本帖最后由 杜正华 于 2012-10-20 17:13 编辑
单例设计模式方法:
1.构造方法私有,也就是说别人不可以使用
2.只有一个实例对象
3.提供方法创建使用实例对象而且方法必须是static方法,因为不能使用构造方法创建实例对象,只能通过类访问
枚举类:
1.枚举类是特殊的抽象类,所以不能使创建实例对象
2.枚举类的元素是它的实例对象,如果让它只有一个元素那么就是只有一个实例
3.提供方法访问对象
//单例模式(饿汉式)
class LanTest{
private LanTest(){
}
private static LanTest t = new LanTest();
public static LanTest getInstance(){
return t;
}
}
复制代码
package com.itcast.practise;
public class AbstractTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//下面结果为true由此可见I是InterfaceTest的对象
System.out.println(InterfaceTest.class == InterfaceTest.I.getClass());
}
}
enum InterfaceTest{
I;
public static InterfaceTest main(){
return I;
}
}
复制代码
--------------------------------------------------------------------------------------------------------------------------------
由于枚举类的元素默认是用Static修饰的,所以可以用EnumTest.t直接访问,以下实例就是一个单例,lz可以看看张老师的java基础加强,里面枚举讲的很详细
enum EnumTest{
t;
}
作者:
草上飞
时间:
2012-10-26 16:35
package myfirstpackage;
public class MyTest {
public static void main(String[] args) {
Test t = Test.test1;
}
}
class Test
{
private Test(String s)
{
System.out.println(s);
}
public static final Test
test1 = new Test("test1"),
test2 = new Test("test2"),
test3 = new Test("test3");
}
这是我写的简单的枚举,以下是打印结果
test1
test2
test3
作者:
齐连涛
时间:
2012-10-26 17:11
杜正华 发表于 2012-10-20 14:31
单例设计模式方法:
1.构造方法私有,也就是说别人不可以使用
2.只有一个实例对象
谢谢 明白了
作者:
杜正华
时间:
2012-10-27 11:47
不客气 嘿嘿
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2