zoukankan      html  css  js  c++  java
  • 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次, 这是一个静态方法!

    你不逼自己一把,你永远都不知道自己有多优秀!只有经历了一些事,你才会懂得好好珍惜眼前的时光!
  • 相关阅读:
    eclipse如何正确部署tomcat7
    调用awk的三种方式
    jupyter的简单操作
    编程语言简介
    2019.9.6作业
    计算机的基本组成
    9.2作业
    CPP 栈 示例
    关于使用栈将一般运算式翻译为后缀表达式并实现三级运算的方法及实例(cpp版)
    深度遍历破解数独游戏
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/9778335.html
Copyright © 2011-2022 走看看