Java学习笔记——static关键字

    xiaoxiao2025-03-31  18

    如果将域定义为static,每个类中只有这样一个域。而每一个对象对于所有的实例域都有一份自己的拷贝。假如需要给每个雇员赋予一个唯一的身份标示码。这里给Employee添加一个实例域ID和一个静态域nextID:

    class Employee { private static int nextID; private int ID; ... }

    对于上面话的解释就是,每一个对象都有自己的一个ID域,但是所有的雇员类的对象将共享一个nextID。静态域只有一个,每个对象都共享一个静态域。

    下面实现一个简单的方法:

    public void setID(){ ID=nextID; nextID++; }

    这就实现了把静态域nextID赋值给ID,并且ID+1的操作。

    静态常量

    举例来说,在Math类中定义了一个静态常量public static final double PI=3.1415926535;

    在程序中就可以使用Math.PI的形式进行调用。如果上述定义的PI没有static关键字的话,那么就成了Math类的一个实例域。这样,每次调用Math.PI都会有一份自己的拷贝,这并不符合常理。

    静态方法

    静态方法是一种不能向对象实施操作的方法。例如,Math类的pow方法就是一个静态方法。Math.pow(x,y):故可以认为静态方法是一个没有this参数的方法(this参数值的就是非静态方法中的隐式参数)。

    对于静态方法的调用需要通过类名进行调用

    int n=Employee.getNextID();

    最新回复(0)