Java学习笔记【静态域与静态方法】

来源:互联网 发布:淘宝网店实战宝典 编辑:程序博客网 时间:2024/06/05 22:52

1、静态域
 如果将域定义为static,每个类中只有一个这样的域。
class Employee{private static int nextId = 1;private int id;...}//现在,每一个雇员对象都有一个自己的id域,但这个类的所有实例将共享一个nextId域。public void setId(){id = nextId;nextId++;}

 假定为“难免有错”设定雇员标识码:

难免有错.setId();//“难免有错”的id域被设置为静态域nextId当前的值,并且静态域nextId的值加1:难免有错.id = Employee.nextId;Employee.nextId++;


2、静态常量
 示例:

public class Math{...public static final double PI = 3.14159265358979323846;...}


 可以采用Math.PI的形式获得这个常量。
 若省略static,PI就变成了Math的一个实例域。需要通过Math类的对象访问PI,并且每个Math对象都有它自己的一份PI拷贝。

3、静态方法
 静态方法是一种不能对对象实施操作的方法。例如,Math类的pow方法就是一个静态方法。
 表达式:Math.pow(x,a) 计算x的a次方。运算时不使用任何Math对象,即无隐式参数。
 可以认为静态方法是没有this参数的方法。
 因为静态对象不能操作对象,所以不能在静态方法中访问实例域。但是,静态方法可以访问自身类中的静态域。
 使用静态方法的实例:

public class Employee{public static int getNextId(){return nextId; //returns static field}}//通过类名调用这个方法:int n = Employee.getNextId();

 在下面两种情况下使用静态方法:
 I、一个方法不需要访问对象状态,其所需的参数都是通过显式参数提供。
 II、一个方法只需要访问类的静态域。

4、工厂方法
 静态方法还有一种常见的用途。NumberFormat类使用工厂方法产生不同风格的格式对象。

5、main方法

public class App{public static void main(String[] args){....}}
main方法不对任何对象进行操作。同理,main方法也是一个静态方法。

0 0
原创粉丝点击