程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 關鍵字的理解,關鍵字理解

關鍵字的理解,關鍵字理解

編輯:JAVA綜合教程

關鍵字的理解,關鍵字理解


final關鍵字的作用

相信對於final的用法,大多數人都可以隨口說出三句話:

1、被final修飾的類不可以被繼承

2、被final修飾的方法不可以被重寫

3、被final修飾的變量不可以被改變

1 public static void main(String[] args) { 2 final User u = new User("aaa"); 3 u.setName("bbb"); 4 System.out.println(u.toString()); 5 } 6 static class User { 7 private String name; 8 public User(String name){ 9 this.name = name; 10 } 11 public String getName() { 12 return name; 13 } 14 public void setName(String name) { 15 this.name = name; 16 } 17 @Override 18 public String toString() { 19 return "User [name=" + name + "]"; 20 } 21 } View Code

可見,被final修飾不可變的是變量的引用,而不是引用指向的內容,引用指向的內容是可以改變的

---------------------------------------------------------------------------------------------------

static關鍵字作用總結

static關鍵字最基本的用法是:

1、被static修飾的變量屬於類變量,可以通過類名.變量名直接引用,而不需要new出一個類來

2、被static修飾的方法屬於類方法,可以通過類名.方法名直接引用,而不需要new出一個類來

被static修飾的變量、被static修飾的方法統一屬於類的靜態資源,是類實例之間共享的,換言之,一處變、處處變。

 

從JVM的類加載機制的角度講,靜態資源是類初始化的時候加載的,而非靜態資源是類new的時候加載的。

1、靜態方法能不能引用非靜態資源?不能,new的時候才會產生的東西,對於初始化後就存在的靜態資源來說,根本不認識它。

2、靜態方法裡面能不能引用靜態資源?可以,因為都是類初始化的時候加載的,大家相互都認識。

3、非靜態方法裡面能不能引用靜態資源?可以,非靜態方法就是實例方法,那是new之後才產生的,那麼屬於類的內容它都認識。

 

靜態塊

靜態塊也是static的重要應用之一。也是用於初始化一個類的時候做操作用的,和靜態變量、靜態方法一樣,靜態塊裡面的代碼只執行一次,且只在初始化類的時候執行

靜態代碼塊對於定義在它之後的靜態變量,可以賦值,但是不能訪問。

靜態代碼塊是嚴格按照父類靜態代碼塊->子類靜態代碼塊的順序加載的,且只加載一次。

 

static修飾類

這個用得相對比前面的用法少多了,static一般情況下來說是不可以修飾類的,如果static要修飾一個類,說明這個類是一個靜態內部類(注意static只能修飾一個內部類),也就是匿名內部類。

 

import static

import static java.lang.Math.*;

 

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

總結前人經驗,自己敲打每一行代碼。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved