• Java基础 static限定符的使用 以及【 static实现的 singleton(单例)设计模式】


    static实现的 singleton(单例)设计模式

    /** static实现的 singleton设计模式 , 使得一个类只能够创建一个static对象
     */

    模板设计结构:

    package Coding;
    public class Main_of_Coding {
        public static void main(String[] args) {
            Singleton s1=Singleton.getInstance();
            Singleton s2=Singleton.getInstance();
            System.out.println(s1==s2);   //true
        }
    }
    class Singleton{
        //1.首先私有构造器,使得外部的类不能够使用此构造器
        private Singleton() {
        }
        //2.在类内部创建一个私有的实例对象,该对象私有(仅开放方法调用此对象),static保持此对象唯一
        private static Singleton instance = new Singleton();
    
        public static Singleton getInstance() {
            return instance;
        }
    
    }

    static的笔记:

    /**static 修饰属性(类变量):
     * 1.由类创建的所有的对象,都公用这一个属性; 当其中一个对象对此属性进行修改,会导致其他对象对此进行修改
     * 2.既不在栈空间,也不在堆空间, 在一块公共的静态空间.
     * 3.可以直接 Class名.静态变量 调用! (不同于其他变量, static变量独立于类本身存在)
     * 4.在自己类内调用,不用加this()!
     *
     * Static 修饰方法(基本同static 属性)
     */

    代码:

    package Coding;
    public class Main_of_Coding {
    public static void main(String[] args) {
    Sportsman s1=new Sportsman("Jane",12);
    Sportsman.show();
    s1.nation="China";
    System.out.println(s1.nation+ " "+Sportsman.nation);
    s1.show();
    }
    }
    class Sportsman{
    String name;
    int age;
    static int num;//统计调用次数
    static String nation;
    public Sportsman(String name,int age){
    this.name=name;
    this.age=age;
    }
    static void show(){
    System.out.println("调用了 "+num+"次, 这是一个静态方法! ");
    num++;
    }
    }

    运行结果:

    调用了 0次, 这是一个静态方法!
    China
    China
    调用了 1次, 这是一个静态方法!

    你不逼自己一把,你永远都不知道自己有多优秀!只有经历了一些事,你才会懂得好好珍惜眼前的时光!
  • 相关阅读:
    ARC071 简要题解
    ARC070 简要题解
    ARC069 简要题解
    ARC068 简要题解
    ARC067 简要题解
    ARC066 简要题解
    ARC065 简要题解
    长链剖分优化dp三例题
    CF815D Karen and Cards 官方题解翻译
    [九省联考2018] IIIDX 线段树+贪心
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/9778335.html
Copyright © 2020-2023  润新知