Singleton: this & instance

复制代码
public class Singleton{
    private static final Singleton instance = new Singleton();
    private String name;
    private int age;
    private Singleton(){}
    public static Singleton getInstance(){
        return instance;
    }

    public void instanceSetter(String name, int age){
        instance.name = name;
        instance.age = age;
    }

    public void thisSetter(String name, int age){
        this.name = name;
        this.age = age;
    }

    public void instanceGetter(){
        System.out.println("instance.name: " + instance.name);
        System.out.println("instance.age: " + instance.age);
    }

    public void thisGetter(){
        System.out.println("this.name: " + this.name);
        System.out.println("this.age: " + this.age);
    }

    public static void main(String[] args){
        Singleton s = Singleton.getInstance();
        System.out.println(s);

        System.out.println("Before setter()");
        s.instanceGetter();    //null, 0
        s.thisGetter();    //null, 0
        System.out.println();

        s.instanceSetter("lxw", 26);

        System.out.println("After intanceSetter()");
        s.instanceGetter();    //lxw, 26
        s.thisGetter();    //lxw, 26
        System.out.println();

        s.thisSetter("wxl", 29);

        System.out.println("After thisSetter()");
        s.instanceGetter();    //wxl, 29
        s.thisGetter();    //wxl, 29
    }
}
复制代码

Output:

复制代码
lxw@lxw:14:26:52:~$ java Singleton 
Singleton@15db9742
Before setter()
instance.name: null
instance.age: 0
this.name: null
this.age: 0

After intanceSetter()
instance.name: lxw
instance.age: 26
this.name: lxw
this.age: 26

After thisSetter()
instance.name: wxl
instance.age: 29
this.name: wxl
this.age: 29
复制代码

 

posted @   XiaoweiLiu  阅读(722)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示