[size=xx-large]-----final 与 static[/size]
final关键字和static关键字是Java中常用的两种关键字。功能强大、使用方便,具有许多的优良特征。
final --- 可以写在类、属性和方法之前。顾名思义,其功能可用于将类变为不可被继承的最终类、将属性定义为某一常量,如:
或者使方法不能被子类重写,如:
Java中的String类就是final类。
static --- 可以写在属性、变量和方法之前。如果把static写在了属性前面,那么该类的所有对象将共同使用“同一个属性”---即指向同一片内存,这样定义属性该类可以直接调用(其它类调用需在前加public)。无论是用static定义方法属性还是变量,共同特点都是程序会在加载类的时候执行代码,所以Java中有一种特殊的形式就是“静态块”如:
这段代码将会在程序执行main函数之前执行,如同预处理。由于这些特征,static关键字在Java编程中也显得格外重要。
final关键字和static关键字是Java中常用的两种关键字。功能强大、使用方便,具有许多的优良特征。
final --- 可以写在类、属性和方法之前。顾名思义,其功能可用于将类变为不可被继承的最终类、将属性定义为某一常量,如:
final int t = 10;
t = 100; //该语句不可执行(会报错),由于final关键字将t变量变为了一个常量….
或者使方法不能被子类重写,如:
public final class A{
public class A(){
System.out.println(“这是A类”);
}
}
public class B extends A{//此处将会报错,因为A类已经是最终类,
//不可被继承。
}
Java中的String类就是final类。
static --- 可以写在属性、变量和方法之前。如果把static写在了属性前面,那么该类的所有对象将共同使用“同一个属性”---即指向同一片内存,这样定义属性该类可以直接调用(其它类调用需在前加public)。无论是用static定义方法属性还是变量,共同特点都是程序会在加载类的时候执行代码,所以Java中有一种特殊的形式就是“静态块”如:
static{
System.out.println(“这是一个静态块”);
}
这段代码将会在程序执行main函数之前执行,如同预处理。由于这些特征,static关键字在Java编程中也显得格外重要。