您的位置:首页 > 编程语言 > Java开发

java新手笔记12 单例

2015-07-25 09:55 543 查看
1.单例

package com.yfs.javase;

public class Singleton {

//private static final Singleton single = new Singleton();//定义自己的对象引用
private static  Singleton single;
// 控制构造方法
private Singleton() {

}

// 提供获取对象的方法
public static Singleton getInstance() {
if(single == null) {
System.out.println("创建Singleton对象....");
single = new Singleton();
}
return single;
}

public void sayHello() {
System.out.println("Hello....");
}

}


2.单例测试

package com.yfs.javase;

public class SingleTest {

public static void main(String[] args) {
//		Singleton s1 = new Singleton();
//		s1.sayHello();
//
//		Singleton s2 = new Singleton();
//		s2.sayHello();
//
//		final int a = 10;

//a = 20;

//		System.out.println("s1 == s2 : " + (s1 == s2));
Singleton s1 = Singleton.getInstance();

Singleton s2 = Singleton.getInstance();

s1.sayHello();
s2.sayHello();

System.out.println("s1 == s2 : " + (s1 == s2));

}

}


3.开关灯示例

package com.yfs.javase;

public class Light {
// 属性编号 状态
private int index;
private boolean lighting = true;

// 构造方法
public Light(int index) {
this.index = index;
setIndex(index);
}

// 查看状态方法
public boolean isLighting() {
return lighting;
}

// 获取灯的编号
public int getIndex() {
return index;
}

// 根据编号设置灯的状态
private void setIndex(int index) {

for (int i = 1; i < index; i++) {
if (index % i == 0) {
//				if (lighting) {//== true
//					lighting = false;
//				} else {
//					lighting = true;
//				}
//				lighting = lighting ? false : true;

lighting = !lighting;
}
}
}
}


4.灯测试

package com.yfs.javase;

public class LightTest {

public static void main(String[] args) {
//灯数组
Light[] lights = new Light[100];

//创建对象
for (int i = 0; i < lights.length; i++) {
lights[i] = new Light(i + 1);
}

//查看灯的状态
for (int i = 0; i < lights.length; i++) {
//灯类必须查看状态方法
if(lights[i].isLighting()){
System.out.println("第 " + lights[i].getIndex() + " 灯是亮的");
}

}

}

}


5.乘法表

package com.yfs.javase;

public class Demo {

private Demo() {

}

public static Demo get() {
return new Demo();
}

public static void main(String[] args) {
for (int i = 1,j = 1; i < 10; ) {
System.out.print(j  + " * " + i + " = " + (i * j) + "   ");
j++;//让列增长
if(j == i + 1) {
j = 1;
System.out.println();
i++;//行增长
}

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: