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++技术器,放到构造代码块中,这样,无论创建对象时调用哪个构造函数,都不会影响计数器。

  • 相关阅读:
    C#用Infragistics 导入导出Excel
    C#基础---Attribute(标签) 和 reflect(反射) 应用二
    C#基础系列:反射笔记
    反射基础
    NPOI之Excel——合并单元格、设置样式、输入公式
    NPOI对Excel的操作(Sheet转DataTable、List<T>)
    【SVN版本回退】
    撤销修改
    iOS
    ios 排序汇总
  • 原文地址:https://www.cnblogs.com/xiangnianchulian/p/7236215.html
Copyright © 2011-2022 走看看