美文网首页Coding简书面面观
static 静态域和静态方法

static 静态域和静态方法

作者: AaronYu__ | 来源:发表于2019-02-15 12:42 被阅读53次

1. 静态域

如果将域定义为 static,每个类中只有一个这样的域。而每一个对象对于所有的实例域都有自己的一份拷贝。直接看代码吧。

class Employee {
    private static int NextId = 1;
    private int id;
}

这里给 Employee 类添加了一个实例域 id 和一个静态域 NextId。现在每一个雇员对象都有一个自己的 id 域,但这个类的所有实例域都将共享一个 NextId 域。即使我们没有任何雇员对象,这个静态域 NextId 也是存在的。它属于类,而不属于任何一个独立的对象。

我们制造一个新的 Employee 对象 aaron,并且调用一个方法。

public void setId() {
        id = NextId;
        NextId ++;
        System.out.println("NextId: "+NextId  +" Id: " + id);
    }
Employee aaron = new Employee();
aaron.setId();

其实我们做的操作相当于:

aaron.id = Employee.NextId;
Employee.NextId ++;

2. 静态方法

静态方法是一种不能对对象实施操作的方法。

public class ArrayIndex {
    public static void f() {
        System.out.println("hello AaronYu");
    }
    public  void g() {
        System.out.println("hello aaron");
    }
        
    public static void main(String[] args) {
    
        f();
        ArrayIndex.f();
        ArrayIndex array = new ArrayIndex();
        array.g();
//      ArrayIndex.g();
        
        array.f();
    }

}

上面的代码中我构造了一个静态方法和一个实例方法作为对照。
静态方法我们可以直接调用,或者通过类名调用。如 f();
ArrayIndex.f(); 或者通过对象调用,如 array.f(); 不过不建议通过这种方法调用,我建议通过类名调用。

对于实例方法,我们要构造一个对象如 array 来调用实例方法,如 array.g(); 会打印输出: hello aaron

System.out.println("点个喜欢!欢迎关注我!");

相关文章

  • php面对对象编程

    静态方法static (public static $a=1) (static function) 静态方法不能...

  • static 静态域和静态方法

    1. 静态域 如果将域定义为 static,每个类中只有一个这样的域。而每一个对象对于所有的实例域都有自己的一份拷...

  • Java中的this、static关键字

    this 和 static关键字 this static 实例验证: 静态方法与非静态方法 使用Static实现单例模式

  • 类和对象

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

  • Java中的静态内部类

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

  • 面试过程中套路最深的8道Java面试题,你会踩雷吗?

    static 和 final 的用法 static 的作用从三个方面来谈,分别是静态变量、静态方法、静态类。 静态...

  • php中的访问修饰符、方法修饰符、接口

    访问修饰符 方法修饰符 static(静态的) 1、static修饰属性成为静态属性,static修饰方法成为静态...

  • C#笔记二

    一. 静态方法,静态类 (static) 静态和非静态区别 在非静态类(public class)中,既可以有实例...

  • java随笔

    static变量和static方法 static变量 1.static修饰的变量:静态变量,静态变量在内存中只有一...

  • 方法与static静态方法

    一般方法和static静态方法差异 都是方法。 静态方法前有static 关键字 调用方式不同 一般方法调用,实例...

网友评论

    本文标题:static 静态域和静态方法

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