成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解Java 中 static 的作用

開發
在 Java 中 static 關鍵字有4種使用場景,下面分別進行介紹:

[[343966]]

 1.static 成員變量

  1. public class Student { 
  2.     // 靜態成員變量 
  3.     private static String SchoolName; 
  4.     private static int nums; 
  5.      
  6.     // 非靜態成員變量 
  7.     private String name
  8.     private int age; 

在類中一個成員變量可用 static 關鍵字來修飾,這樣的成員變量稱為 static 成員變量,或靜態成員變量。而沒有用 static 關鍵字修飾的成員變量稱為非靜態成員變量。

靜態成員變量是屬于類的,也就是說,該成員變量并不屬于某個對象,即使有多個該類的對象實例,靜態成員變量也只有一個。只要靜態成員變量所在的類被加載,這個靜態成員變量就會被分配內存空間。因此在引用該靜態成員變量時,通常不需要生成該類的對象,而是通過類名直接引用。引用的方法是“類名 . 靜態變量名”。當然仍然可以通過“對象名 . 靜態變量名”的方式引用該靜態成員變量。相對應的非靜態成員變量則屬于對象而非類,只有在內存中構建該類對象時,非靜態成員變量才被分配內存空間。

2.static 成員方法

  1. public class Student { 
  2.     private static String SchoolName; 
  3.     private static int nums; 
  4.         // 靜態成員方法 
  5.     public static String getSchoolName() { 
  6.         return Student.SchoolName; 
  7.     } 

Java 中也支持用 static 關鍵字修飾的成員方法,即靜態成員方法。與此相對應的沒有用 static 修飾的成員方法稱為非靜態成員方法。

與靜態成員變量類似,靜態成員方法是類方法,它屬于類本身而不屬于某個對象。因此靜態成員方法不需要創建對象就可以被調用,而非靜態成員方法則需要通過對象來調用。

特別需要注意的是,在靜態成員方法中不能使用 this、super 關鍵字,也不能調用非靜態成員方法,同時不能引用非靜態成員變量。這個道理是顯而易見的,因為靜態成員方法屬于類而不屬于某個對象,而 this、super 都是對象的引用,非靜態成員方法和成員變量也都屬于對象。所以當某個靜態成員方法被調用時,該類的對象可能還沒有被創建,那么在靜態成員方法中調用對象屬性的方法或成員變量顯然是不合適的。即使該類的對象已經被創建,也是無法確定它究竟是調用哪個對象的方法,或是哪個對象中的成員變量的。所以在這里特別強調這一點。

3.static 代碼塊

  1. public class Student { 
  2.     private static String SchoolName; 
  3.     private static int nums; 
  4.         // 靜態代碼塊 
  5.     static { 
  6.         Student.SchoolName = "清風小學"
  7.         Student.nums = 0; 
  8.     } 

static 代碼塊又稱為靜態代碼塊,或靜態初始化器。它是在類中獨立于成員函數的代碼塊。static 代碼塊不需要程序主動調用,在JVM加載類時系統會執行 static 代碼塊,因此在static 代碼塊中可以做一些類成員變量的初始化工作。如果一個類中有多個 static 代碼塊,JVM將會按順序依次執行。需要注意的是,所有的static 代碼塊只能在JVM加載類時被執行一次。

4.static 內部類

  1. public class Student { 
  2.     private static String SchoolName; 
  3.     private static int nums; 
  4.         // 靜態內部類 
  5.     static class test{ 
  6.         public test() { 
  7.             System.out.println("Hello,student!" ); 
  8.         } 
  9.     } 

在 Java 中還支持用 static 修飾的內部類,稱為靜態內部類。靜態成員內部類的特點主要是它本身是類相關的內部類,所以它可以不依賴于外部類實例而被實例化。靜態內部類不能訪問其外部類的實例成員(包括普通的成員變量和方法),只能訪問外部類的類成員(包括靜態成員變量和靜態方法)。即使是靜態內部類的實例方法(非靜態成員方法)也不能訪問其外部類的實例成員。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2012-04-26 11:39:04

Javastatic變量

2014-11-06 09:49:22

CloudFoundrPaaS

2011-03-18 09:27:00

Spring

2014-11-06 10:46:48

CloudFoundr

2021-02-01 13:10:07

Staticc語言UNIX系統

2009-10-14 09:08:23

Visual Stud

2018-11-06 10:51:07

Redis開發存儲系統

2022-04-02 08:14:02

JavaThreadLoca數據

2025-01-15 07:00:00

Java代碼Lambda

2022-06-09 08:17:30

Python__new__

2023-06-28 08:34:02

Bind()函數JavaScript

2015-11-10 16:10:22

C語言StaticConst

2022-06-07 08:31:44

JavaUnsafe

2011-04-07 16:34:05

staticC++

2016-09-18 16:58:09

JavaProperties

2021-05-28 05:40:58

killkill -0 pidLinux

2009-06-19 11:03:30

Java Web函數

2022-08-08 08:04:17

Javastatic編程

2010-01-18 16:42:13

C++類

2009-06-25 15:20:28

CollectionMap
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品视频在线观看 | 欧美国产日韩一区 | www.久久精品 | 亚洲一区自拍 | 91免费在线 | 亚洲精品www久久久 www.蜜桃av | 女女百合av大片一区二区三区九县 | 91精品国产综合久久久久 | 国家一级黄色片 | 91在线精品视频 | 免费成人在线网站 | 国产精品免费一区二区三区四区 | 精品一二三区 | 欧美高清性xxxxhd | 亚洲三区在线观看 | 美女黄网站视频免费 | 精品国产31久久久久久 | 亚洲网址 | 亚洲视频三区 | 中文字幕不卡在线88 | 国产网站在线免费观看 | 91网视频 | 一级毛片在线播放 | 久久久久久99 | 国产美女一区二区三区 | 日本激情视频中文字幕 | 免费在线观看一级毛片 | 久久精品国产一区二区三区不卡 | 国产精品久久久久久久免费观看 | 粉嫩粉嫩芽的虎白女18在线视频 | 黄色av网站在线免费观看 | 麻豆av免费观看 | 羞羞色视频 | 成人在线小视频 | 激情五月婷婷 | 中文字幕视频在线看5 | jdav视频在线观看免费 | 91精品国产乱码久久久久久久 | 亚洲久草| 美国av毛片| 中文字幕视频在线 |