Java中Static的用法
一、Static
由Static修饰的变量,常量,方法叫做静态变量,常量和方法。
二、使用情景
举例1
代码如下:
public class StaticTest{
final static double PI=3.14; //在类中定义静态常量
static int id; //在类中定义静态变量
public static void method() //在类中定义静态方法
{
//do something
}
public void method2()
{
System.out.println(StaticTest.PI); //调用静态常量
System.out.println(StaticTest.id); //调用静态变量
StaticTest.method(); //调用静态方法
}
}
注意:虽然静态成员也可以使用“对象.静态成员”的形式调用,但是为了避免和普通类调用产生混淆,所以不不建议使用这种方式。
举例2
代码如下(示例):
public class StaticTest{
final static double PI=3.14; //在类中定义静态常量
static int id; //在类中定义静态变量
public static void method1() //在类中定义静态方法
{
//do something
}
public void method2()
{
System.out.println(StaticTest.PI); //调用静态常量
System.out.println(StaticTest.id); //调用静态变量
StaticTest.method1(); //调用静态方法
}
public static StaticTest method3()
{
method2(); //调用非静态类
return this; //在return语句中使用this关键字
}
}
也许大家在Eclipse中输入上述代码后,编译器会报错,这是因为method3()方法为一个静态方法,而它在调用非静态方法和this关键字。在Java语言中对静态方法有两点规定:
-
在静态方法中不可以使用this关键字。
-
在静态方法中不可以使用非静态方法。
举例3
在Java中规定不能将方法体内的局部变量声明为satic的,例如下述代码就是错误的:
public class example{
public void method{
static int i=0;
}
}