static和final可以修饰的对象和其特征

前端之家收集整理的这篇文章主要介绍了static和final可以修饰的对象和其特征前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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);
}

}

猜你在找的Java相关文章