1、final可以修饰:类变量、成员变量、局部变量、方法、类。
1.1、被final修饰的变量:必须直接赋值,并且不再允许在其他地方改值。
1.2、被final修饰的方法:不能被复写。
1.3、被final修饰的类:不能被继承。
2、static可以修饰:成员变量、方法。
2.1、被static修饰的成员变量:成员变量变为类变量,可以在所有的方法中访问。可以被多次重新赋值。
2.2、被static修饰的方法:在静态方法中可以直接调用。在非静态方法、静态方法中,都可以直接调用。不能被子类复写。
3、示例代码:
方法为final类型
// @Override //方法不能复写它的父类
static void getHeight(){}
}
final class Pee {
}
//class Hee extends Pee{ //不能从final类继承
//
//}
public class TempTest {
//final可以是局部变量,成员变量,类变量的修饰符.~对应变量值不可以改.
//satic可以修饰成员变量,方法,但不能修饰局部变量.~~并且静态变量值可以多次被赋值.~~静态变量在静态方法,普通方法里面都可以使用.
//类变量
static int a=10;
//成员变量
final int b=11;
//成员变量
final static int c=12;
/**
* 静态<a href="/tag/fangfa/" target="_blank" class="keywords">方法</a>
*/
static void test1(){
a=20;
//static int d=1; //static修饰符不能在这里使用
//b=12; //不能给final赋值
final int e=2;//局部变量
//e=20; //不能给final赋值
}
/**
* 普通<a href="/tag/fangfa/" target="_blank" class="keywords">方法</a>
*/
void test2(){
a=30;
final int c=0;
test1();
}
public static void main(String[] args){
test1();
System.out.println(a);
System.out.println(c);
TempTest test=new TempTest();
System.out.println(test.b);
}
}