static private final 的區(qū)分 獻給初學者

static關鍵字的使用

static關鍵字,用于修飾類的成員,如成員變量,成員方法,以及代碼塊等.

在一個java類中,可以用static 修飾一個成員變量,該變量被稱為靜態(tài)變量,靜態(tài)變量能被所有實例共享.可以使用 類名.變量名的形式來訪問.

static只能用于修飾成員變量,不能用于修飾局部變量,否則編譯報錯!

靜態(tài)方法不需要創(chuàng)建對象就可以調(diào)用,一個靜態(tài)方法中只能訪問static修飾的成員,原因在于沒有被static修飾的成員需要先創(chuàng)建對象才能訪問,而靜態(tài)方法在被調(diào)用時可以不創(chuàng)建任何對象.

靜態(tài)代碼塊:在java類中 使用一對大括號包圍起來的若干行代碼被稱為一個代碼塊,用static關鍵字修飾的代碼塊稱為靜態(tài)代碼塊!當類被加載時,靜態(tài)代碼塊就是會執(zhí)行,由于類 只加載一次, 所以靜態(tài)代碼塊只加載一次!

單例模式

整個程序在運行期間針對該類只存在一個對象

class Demo{

private static Demo ? demo= new Demo( );//設置為靜態(tài) 表示在類加載的同時 就已經(jīng)被創(chuàng)建了!

private ?Demo( ){ }//構造用private修飾 ?不能在外部使用new關鍵字來創(chuàng)建實例對象!

public static Demo getDemo( ){//提供返回該對象的靜態(tài)方法!

return demo;

}

}

class Demo2{

public static void ?main(String[]args){

Demo s1 = Demo.getDemo( );

Demo s2 = Demo.getDemo( );

System.out.println(s1==s2);//輸出結果為true,說明變量s1和s2引用的是同一個對象,而getDemo( )是獲得Demo類對象的唯一方法, 所以Demo類是一個單例類!

}

}

內(nèi)部類

成員內(nèi)部類:

class Outer{

private int num = 4;

class Inner{

void show( ){

syso("num="+num ); }

}}

class test{

public static void main(String[]args){

Outer.Inner ?inner = new Outer( ).new Inner( );

inner.show( )//運行結果是num=4

}

}

靜態(tài)內(nèi)部類:

可以使用static 關鍵字來修飾一個成員內(nèi)部類,該內(nèi)部類被稱作靜態(tài)內(nèi)部類,它可以在不創(chuàng)建外部類對象的情況下被實例化.

格式如下: ? Outer.Inner inner = new Outer.Inner( )

靜態(tài)內(nèi)部類中只能訪問外部類的靜態(tài)成員

在靜態(tài)內(nèi)部類中可以定義靜態(tài)的成員,但是在非靜態(tài)的內(nèi)部類中不允許定義靜態(tài)的成員.

方法內(nèi)部類

是指在成員方法中定義的類,他只能在當前方法中被使用

程序在使用的時候只能在方法內(nèi)部創(chuàng)建該類的實例對象!

class Outer{

private int num= 4;

public void test( ){

class Inner{

void show( ){

syso( "num= " +num);

}

}

Inner inner = new Inner( );

inner.show( );

}

}

class Test{

public static void main(String[]args){

Outer outer = new Outer( );

outer.test( );//輸出結果是num=4

}

}

final關鍵字的使用

final關鍵字可用于修飾類,變量和方法 并賦予其特性:

final修飾的類不能被繼承;

final修飾的方法不能被子類重寫;

final修飾的變量(成員變量和局部變量)是常量,只能賦值一次.(final修飾成員變量時,虛擬機不會對其進行初始化)

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內(nèi)部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,767評論 18 399
  • Java 內(nèi)部類 分四種:成員內(nèi)部類、局部內(nèi)部類、靜態(tài)內(nèi)部類和匿名內(nèi)部類。 1、成員內(nèi)部類: 即作為外部類的一個成...
    ikaroskun閱讀 1,252評論 0 13
  • Win7下如何打開DOS控制臺? a:開始--所有程序--附件--命令提示符 b:開始--搜索程序和文件--cmd...
    逍遙嘆6閱讀 1,614評論 4 12
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,688評論 0 11
  • 面向對象主要針對面向過程。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,091評論 0 4