Java语言公有48个关键字,每个关键字都有着相应作用和使用范畴,本文探讨Java关键字static和final。
关键字static,表示“静态的”意思;而关键字final,表示“最终的”意思。
static既可以修饰成员变量,又可以修饰成员方法。使用static修饰的成员变量,称为类变量,归属于类操作,同样,使用static修饰的成员方法,可以理解为类方法,也归属于类操作。虽说它们可以通过类的实例进行操作,但是大多情况建议直接采用类进行操控,这样不仅简单易用,而且表示静态特性。为了方便理解,实例代码如下:
/**
*<p>Title:关键字static演示<p>
*<p>Description:类成员和类方法<p>
*<p>Copyright:copyright(c) 2012<p>
*<p>Filename:TestStatic.java<p>
*@author 王路情
*@version 1.0
*/
public class TestStatic
{
//定义类变量,需要static修饰
private static String str = "我的座右铭";
/**
*方法描述:输出内容
*输入参数:
*返回类型:void
*/
public static void print()
{
System.out.println("己所不欲,勿施于人");
System.out.println("行有不得,反求诸己");
System.out.println("有容乃大,无欲则刚");
System.out.println("赠人玫瑰,手有余香");
}
/**
*方法描述:主方法
*输入参数:String[] args
*返回类型:void
*/
public static void main(String[] args)
{
System.out.println(TestStatic.str);
TestStatic.print();
}
}
运行结果如下:
我的座右铭
己所不欲,勿施于人
行有不得,反求诸己
有容乃大,无欲则刚
赠人玫瑰,手有余香
而final不仅可以修饰类,也可以修饰成员变量,还可以修饰成员方法。final所修饰的类表示最终类,不能够被继承;final所修饰的成员变量表示变量的值不可改变;final所修饰的成员方法表示不能够进行多态机制。为了方便理解,示例代码如下:
/**
*<p>Title:关键字final演示<p>
*<p>Description:最终类、最终变量、最终方法<p>
*<p>Copyright:copyright(c) 2012<p>
*<p>Filename:TestFinal.java<p>
*@author 王路情
*@version 1.0
*/
public final class TestFinal
{
//
private final double PI = 3.14;
private double radius ;
/**
*方法描述:构造器
*输入参数:double radius
*返回类型:无
*/
public TestFinal(double radius)
{
this.radius = radius;
}
/**
*方法描述:最终方法计算圆的面积
*输入参数:
*返回类型:void
*/
public final void area()
{
System.out.println("圆面积:" + PI * radius * radius);
}
/**
*方法描述:主方法
*输入参数:String[] args
*返回类型:void
*/
public static void main(String[] args)
{
TestFinal test = new TestFinal(10);
test.area();
}
}
运行结果如下:
圆面积:
314.0
总结:
1)类变量是共享变量,静态的成员方法里不能使用非静态的成员变量或方法。
2)经过final修饰的类不能够继承,例如java.lang.String类。
3)接口中成员变量默认static final。