美文网首页
什么时候使用静态变量和方法

什么时候使用静态变量和方法

作者: 禾叶super | 来源:发表于2019-12-19 17:59 被阅读0次

静态方法和静态变量在调用时非常方便,使用类名.的方式就可以调用。那什么时候该使用静态变量和静态方法呢?

静态变量在程序运行前就已经分配了空间。静态变量属于类,如果一个类中有静态成员变量,那么这个类的所有new出来的实例对象都共享这个变量。所谓共享就是每一个实例对象都可以访问此静态变量,且对此静态变量的修改对每一个实例可见。
示例1

public class Person {
   private static int staticCount; // 静态成员变量
   private int count; // 普通成员变量
   private String name;

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getStaticCount() {
        return staticCount;
    }

    public void setStaticCount(int staticCount) {
        Person.staticCount = staticCount;
    }

    @Override
    public String toString() {
        return "Person{" +
                "count=" + count +
                ", name='" + name + '\'' +
                '}';
    }
}

public class Test {
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.setName("小王");
        person1.setCount(1);
        person1.setStaticCount(1);
        Person person2 = new Person();
        person2.setName("小钱");
        person2.setStaticCount(2);
        person2.setCount(2);
        System.out.println(person1.getName()+":count="+person1.getCount()+";staticCount="+person1.getStaticCount());
        System.out.println(person2.getName()+":count="+person2.getCount()+";staticCount="+person2.getStaticCount());
    }
}

运行结果:


image.png

由示例1运行结果可以看出,每个Person实例对象对staticCount的更改均会被共享。而对于count变量来说,小王的修改对小钱不可见(小钱不能拿到count =1 这个值),小钱的修改对小王也不可见。因此共享变量可被使用在需要共享的变量中,如计数器。

静态的变量和方法是属于类的,是共享的,因此不能体现出多态来。从另一个角度考虑,如果一个方法和他所在类的实例对象无关,那么它就应该是静态的,否则就应该是非静态。因此像工具类,一般都是静态的。

相关文章

  • 什么时候使用静态变量和方法

    静态方法和静态变量在调用时非常方便,使用类名.的方式就可以调用。那什么时候该使用静态变量和静态方法呢? 静态变量在...

  • Java中的静态内部类

    一:静态内部类 使用static修饰的变量是静态变量,使用static 修饰的方法是静态方法,静态变量和静态方法都...

  • 类和对象

    1.对象和方法,构造函数 2.static使用之--静态变量 3.static使用之--静态方法 1》在静态方法中...

  • java学习笔记(第三天)

    static修饰符 静态变量:也被称为类变量。局部变量不能被声明为静态变量。 静态方法:静态方法不能使用类的非静态...

  • Java中静态成员变量初始化时机

    静态变量只有在类使用的时候 才会初始化,比如new 对象,使用静态变量等 什么时候静态变量回收呢?

  • 静态方法、变量与实例方法、变量之比较心得

    静态方法、变量与实例方法、变量之比较心得C# 中常用Static 修饰静态变量和静态方法 静态变量和实例变量有什么...

  • 静态变量与实例变量的理解

    (静态变量又称类变量,静态方法又称类方法)。 静态变量和实例变量的区别? 1、静态变量用static 关键字修饰,...

  • java问题日记(持续中)

    1.静态方法内不能使用非静态变量

  • Java 中的 static 使用之静态方法

    Java 中的 static 使用之静态方法 与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法...

  • java静态使用

    原链接:java静态使用|CloudWong 静态 什么时候用? 静态变量:当分析对象中所具备的成员变量的值都是相...

网友评论

      本文标题:什么时候使用静态变量和方法

      本文链接:https://www.haomeiwen.com/subject/blkenctx.html