zoukankan      html  css  js  c++  java
  • static 关键字的用法

    有些时候,我们需要在jvm 中维护一份共享数据,使得每个使用对象的人,都能共享这份数据,这个时候怎么办呢,就需要使用静态成员变量。

    静态的成员变量只会在数据共享区中维护一份,而非静态成员变量的数据会在每个对象中都维护一份的。。

    static(静态修饰符)

    1. static修饰成员变量 :如果有数据需要被共享给所有对象使用时,那么就可以使用static修饰。

    静态成员变量的访问方式:

    方式1: 可以使用对象进行访问。
    格式: 对象.变量名。

    方式二: 可以使用类名进行访问。
    格式: 类名.变量名;

    注意:
    1. 非静态的成员变量只能使用对象进行访问,不能使用类名进行访问。
    2. 千万不要为了方便访问数据而使用static修饰成员变量,只有成员变量的数据是真正需要被共享的时候
    才使用static修饰。

    static修饰成员变量的应用场景: 如果一个数据需要被所有对象共享使用的时候,这时候即可好实用static修饰。

    内存图
    2. static修饰成员函数:

    static 修饰成员函数的应用

    统计一个类被使用了多少次创建对象,该类对外显示被创建的次数。

    package ViewTest;

    public class Count {
    public static void main (String[] args){
    ds a = new ds();
    ds b = new ds();
    ds c= new ds();
    ds d = new ds(4);
    }
    }

    class ds{
    public static int number =0;
    ds(){
    number++;
    System.out.println(number);
    }
    ds(int c){
    number++;
    System.out.println(number);
    }
    }

    在上述代码中,由于构造函数会在每次对象创建时候,都会执行一次,因此,计数器应写在构造函数中;如果一个类中有多个构造函数的话,那么,

    在创建对象过程中,就不一定会调用哪个构造函数了,因此,计数器需要在每个构造函数中都维护一份,这时候应该联想到知识点,构造代码块。程序可以将

    每个构造函数中维护的number++技术器,放到构造代码块中,这样,无论创建对象时调用哪个构造函数,都不会影响计数器。

  • 相关阅读:
    day6_redis模块和pipeline
    day6_hashlib模块
    18 MySQL数据导入导出方法与工具介绍之二
    【Vijos1264】神秘的咒语
    【Vijos1180】选课
    【vijos1234】口袋的天空
    【vijos1790】拓扑编号
    【WC2008】【BZOJ1271】秦腾与教学评估(二分,前缀和,奇偶性乱搞)
    【Baltic2003】【BZOJ1370】Gang团伙(并查集,拆点)
    【基础】二分算法学习笔记
  • 原文地址:https://www.cnblogs.com/xiangnianchulian/p/7236215.html
Copyright © 2011-2022 走看看