static和final可以修饰的对象和其特征
1、final可以修饰:类变量、成员变量、局部变量、方法、类。
1.1、被final修饰的变量:必须直接赋值,并且不再允许在其他地方改值。
1.2、被final修饰的方法:不能被复写。
1.3、被final修饰的类:不能被继承。
2、static可以修饰:成员变量、方法。
2.1、被static修饰的成员变量:成员变量变为类变量,可以在所有的方法中访问。可以被多次重新赋值。
2.2、被static修饰的方法:在静态方法中可以直接调用。在非静态方法、静态方法中,都可以直接调用。不能被子类复写。
3、示例代码:
class Tee{ final void getInfo(){ System.out.println("cccc"); } void getName(){ System.out.println("LiMing"); } static void getHeight(){ System.out.println("180cm"); } } class Gee extends Tee{ // @Override // final void getInfo(){}//getInfo不能被复写,复写方法为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; /** * 静态方法 */ static void test1(){ a=20; //static int d=1; //static修饰符不能在这里使用 //b=12; //不能给final赋值 final int e=2;//局部变量 //e=20; //不能给final赋值 } /** * 普通方法 */ 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); } }