static和final兩種修飾符

在javaEE第一天的課程中我們學了用java輸出"HelloWorld",

他的代碼是,

public class Demo01 {

    public static void main(String[] args) {
        System.out.println("HelloWorld");

}

那麼這裏就用到了一個static,主方法中就被static修飾過了,那麼這個static是什麼意思,怎麼用,爲什麼要這麼用呢,通過今天的學習可以有深入的瞭解

static是靜態修飾符,一般修飾成員。

被static修飾的成員屬於類,不屬於單個這個類的某個對象。

static修飾的成員被多個對象共享。

被static修飾的成員又叫類成員,不叫對象的成員。

static  使用格式:

類名.靜態成員變量名

類名.靜態成員方法名(參數)

代碼演練

class Demo {

   //靜態成員變量

   publicstaticintnum = 100;

   //靜態方法

   publicstaticvoidmethod(){

      System.out.println("靜態方法");

   }

}

class Test {

   publicstaticvoidmain(String[] args) {

      System.out.println(Demo.num);

      Demo.method();

   }

}

Static如果修飾了代碼塊,那麼這個代碼塊就叫做靜態代碼塊

特點:

它優先於主方法執行、優先於構造代碼塊執行,當以任意形式第一次使用到該類時執行。

該類不管創建多少對象,靜態代碼塊只執行一次。

可用於給靜態變量賦值,用來給類進行初始化。

public class Person {

   privateString name;

   privateint age;

 //靜態代碼塊

   static{

      System.out.println("靜態代碼塊執行了");

   }

}

======================================================

final修飾符

final的意思是最終,不可變的,那麼在java中的應用也是顧名思義

final是個修飾符,它可以用來修飾:類、方法、局部變量以及成員變量。

final在使用中的特點和方法

1.1     final的特點

final修飾類

l  final修飾類不可以被繼承,但是可以繼承其他類。

class Yy {}

finalclass Fu extends Yy{} //可以繼承Yy

class Zi extendsFu{} //不能繼承Fu

 

final修飾方法

l  final修飾的方法不可以被覆蓋,但父類中沒有被final修飾方法,子類覆蓋後可以加final。

class Fu {

    // final修飾的方法,不可以被覆蓋,但可以繼承使用

publicfinalvoid method1(){}

publicvoidmethod2(){}

}

class Zi extends Fu {

    //重寫method2方法

    publicfinalvoid method2(){}

}

final修飾局部變量

l  final修飾的變量稱爲常量,這些變量只能賦值一次。

finalinti = 20;

i = 30; //賦值報錯,final修飾的變量只能賦值一次

 

l  引用類型的變量值爲對象地址值,地址值不能更改,但是地址內的對象屬性值可以修改。

final Person p = new Person();

Person p2 = newPerson();

p = p2; //final修飾的變量p,所記錄的地址值不能改變

p.name = "小明";//可以更改p對象中name屬性值

p不能爲別的對象,而p對象中的name或age屬性值可更改。

final修飾成員變量

l  修飾成員變量,需要在創建對象前賦值,否則報錯。(當沒有顯式賦值時,多個構造方法的均需要爲其賦值。)

class Demo {

    //直接賦值

    finalintm = 100;

   

    //final修飾的成員變量,需要在創建對象前賦值,否則報錯。

    finalintn;

    publicDemo(){

        //可以在創建對象時所調用的構造方法中,爲變量n賦值

        n = 2016;

    }

}



 

 

 

 

 

發佈了56 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章