1.静态域: 使用static修饰
非静态域属于实例对象,静态域属于类,无论有几个实例对象,静态域只有一份
class Test
{
private String name;
private static int ID=123;//静态域,一般直接定义(分配内存)
private static final testNum = 1000;//静态常量
public static int getID()//静态方法
{
return ID;
}
}
Test.getID();//调用静态方法
如果使用new构造几个Test对象,每个对象都会有一个name域,而这些对象将共享一个ID域。
2.静态常量用的相对更多
程序中使用 Test.testNum来获得这一静态常量
省略 static 则变为类中的一个实例域,省略 final 则变为静态变量
常用的静态常量 System.out 实际是System类中的一个静态常量,public修饰成为共有常量,但有final修饰,导致其他类无法更改打印流
3.静态方法
静态方法无法操作对象,只能通过类名来进行调用,无法访问实例域,可以访问静态域
(1、)一个方法不需要操作对象,参数是显式参数提供
(2、)一个方法仅需要访问静态域
静态方法有一个常见的用途是静态工厂,与构造器方法相比的一些好处:
1.构造器方法必须和类同名
2.构造器方法只能返回特定的类型
main函数就是一个静态函数