【java面向對象中static關鍵字】

提綱

  • static修飾成員變量
  • static修飾成員變量的應用場景
  • static修飾成員方法
  • static修飾成員方法的應用場景
  • static的注意事項
  • static的應用知識:代碼塊
  • static的應用知識:單例設計模式

static靜態的意思,可以修飾成員變量,成員方法;

  • static修飾成員變量:
    1.有static修飾的成員變量叫做類變量;
    a.類名.變量名 (推薦這樣進行調用);
    b.類變量與類一起加載一次,內存中只有一份,被所有對象共享;
    c.在本類中訪問類變量可以省略類名,訪問其他類的類變量不能省略;
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
  • static修飾成員變量的應用場景
    在開發中如果某個數據只需要一份,并且可以被共享(訪問,修改),可以將其定義為類變量;

案例:

在這里插入圖片描述
注意:在本類訪問類變量可以省略類名,其他類中不可以;

  • static修飾成員方法
    static修飾成員方法叫做類方法;
    a.類方法可以使用類名直接調用(推薦調用方法);
    b.靜態方法只能調用靜態的方法;
    c.類方法中可以直接訪問類成員,不能訪問實例成員;
    d.實例方法中既可以訪問類變量,也可以訪問實例變量;
    e.實例方法中可以出現this關鍵字,類方法中不能出現this關鍵字;
    (靜態方法中不能用this關鍵字,因為this是個引用,哪個對象調用方法就引用哪個對象。 而靜態方法有可能不是被對象調用的,this無從引用。類方法是屬于類本身的 所有對象共享 this表示當前實例的引用 靜態方法中不能引用非靜態實例成員);

  • 應用
    類方法常用于工具類(until)(為了防止創建對象浪費內存,其次為了方便調用)

- 擴展-工具類
a.工具類的方法都是類方法,方便調用,每個類方法用來完成一個功能;
b.類名見名知意,空參構造私有化;

  • static修飾代碼塊
    代碼塊是類的5大成分之一(成員變量、構造器、方法、代碼塊、內部類)

static修飾的代碼塊是靜態代碼塊
格式:static { }
特點:類加載時自動執行,由于類只會加載一次,所以靜態代碼塊也只會執行一次。
作用:完成類的初始化,例如:對類變量的初始化賦值。

實例代碼塊:
格式:{ }
特點:每次創建對象時,執行實例代碼塊,并在構造器前執行。
作用:和構造器一樣,都是用來完成對象的初始化的,例如:對實例變量進行初始化賦值。

static的應用

設計模式(Design pattern) ?
一個問題通常有n種解法,其中肯定有一種解法是最優的,這個最優的解法被人總結出來了,稱之為設計模式。
設計模式有20多種,對應20多種軟件開發中會遇到的問題。
單例設計模式(確保類只有一個對象)

餓漢
把類的構造器私有。
定義一個類變量記住類的一個對象。
定義一個類方法,返回對象。
在這里插入圖片描述
懶漢

class RunTime{//1.私有化的空參構造private RunTime(){}//2.類變量記錄一個對象,不做初始化private static RunTime runTime;//3.定義一個類方法,判斷返回值public static RunTime getObiect(){if(runTime == null){runTime = new RunTime();}return runTime;}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40479.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40479.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40479.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FPGA_學習_14_第一個自寫模塊的感悟和ila在線調試教程與技巧(尋找APD的擊穿偏壓)

前一篇博客我們提到了,如果要使用算法找到Vbr,通過尋找APD采集信號的噪聲方差的劇變點去尋找Vbr是一個不錯的方式。此功能的第一步是在FPGA中實現方差的計算,這個我們已經在上一篇博客中實現了。 繼上一篇博客之后,感覺過了很久了…

【Image captioning】ruotianluo/self-critical.pytorch之1—數據集的加載與使用

【Image captioning】ruotianluo/self-critical.pytorch之1—數據集的加載與使用 作者:安靜到無聲 個人主頁 數據加載程序示意圖 使用方法 示例代碼 #%%from __future__ import absolute_import from __future__ import division from __future__ import print_…

Flink-網絡流控及反壓剖析

參考: Apache Flink學習網

開源,微信小程序 美食便簽地圖(FoodNoteMap)的設計與開發

目錄 0 前言 1 美食便簽地圖簡介 2 美食便簽地圖小程序端開發 2.1技術選型 2.2前端UI設計 2.3主頁界面 2.4個人信息界面 2.5 添加美食界面 2.6美食便簽界面 2.8 美食好友界面 2.9 美食圈子界面 2.10 子頁面-店鋪詳情界面 2.11 后臺數據緩存 2.12 訂閱消息通知 2.1…

Redis為什么能如此之快

推薦閱讀 AI文本 OCR識別最佳實踐 AI Gamma一鍵生成PPT工具直達鏈接 玩轉cloud Studio 在線編碼神器 玩轉 GPU AI繪畫、AI講話、翻譯,GPU點亮AI想象空間 資源分享 「java、python面試題」來自UC網盤app分享,打開手機app,額外獲得1T空間 https://dr…

“深入探索JVM內部機制:解密Java虛擬機原理“

標題:深入探索JVM內部機制:解密Java虛擬機原理 摘要:本文將深入探索Java虛擬機(JVM)的內部機制,揭示其工作原理和關鍵組成部分,包括類加載、內存管理、垃圾回收、即時編譯和運行時數據區域等。…

探索區塊鏈世界:去中心化應用(DApp)的嶄新前景

隨著科技的不斷發展,區塊鏈技術逐漸引領著數字時代的潮流。在這個充滿創新和變革的領域中,去中心化應用(DApp)成為了備受矚目的焦點。DApp 不僅改變了傳統應用程序的范式,還在金融、社交、游戲等多個領域展現出了廣闊的…

GRPC 鏈接 NODE 和 GOLANG

GRPC 鏈接 NODE 和 GOLANG GRPC 了解 什么是GRPC gRPC 采用了 Protocol Buffers 作為數據序列化和反序列化的協議,可以更快速地傳輸數據,并支持多種編程語言的跨平臺使用gRPC 提供“統一水平層”來對此類問題進行抽象化。 開發人員在本機平臺中編寫專…

打造專屬照片分享平臺:快速上手Piwigo網頁搭建

文章目錄 通過cpolar分享本地電腦上有趣的照片:部署piwigo網頁前言1.Piwigo2. 使用phpstudy網頁運行3. 創建網站4. 開始安裝Piwogo 總結 🍀小結🍀 🎉博客主頁:小智_x0___0x_ 🎉歡迎關注:&#x…

深度學習1:通過模型評價指標優化訓練

P(Positive)表示預測為正樣本,N(negative)表示預測為負樣本,T(True)表示預測正確,F(False)表示預測錯誤。 TP:正樣本預測正確的數量(正確檢測) FP:負樣本預測正確數量(誤檢測) TN…

【AI實戰】BERT 文本分類模型自動化部署之 dockerfile

【AI實戰】BERT 文本分類模型自動化部署之 dockerfile BERTBERT 文本分類模型基于中文預訓練bert的文本分類模型針對多分類模型的loss函數樣本不均衡時多標簽分類時 dockerfile編寫 dockerfilebuild鏡像運行docker測試服務 參考 本文主要介紹: 基于BERT的文本分類模…

卷積神經網絡CNN

卷積神經網絡CNN 1 應用領域1 檢測任務2 分類和檢索3 超分辨率重構4 醫學任務5 無人駕駛6 人臉識別 2 卷積的作用3 卷積特征值計算方法4 得到特征圖表示5 步長和卷積核大小對結果的影響1 步長2 卷積核 6 邊緣填充方法7 特征圖尺寸計算與參數共享8 池化層的作用9 整體網絡架構10…

【GitLab私有倉庫】如何在Linux上用Gitlab搭建自己的私有庫并配置cpolar內網穿透?

文章目錄 前言1. 下載Gitlab2. 安裝Gitlab3. 啟動Gitlab4. 安裝cpolar5. 創建隧道配置訪問地址6. 固定GitLab訪問地址6.1 保留二級子域名6.2 配置二級子域名 7. 測試訪問二級子域名 前言 GitLab 是一個用于倉庫管理系統的開源項目,使用Git作為代碼管理工具&#xf…

ngModel和formControlName處理表單控件

ngModel 和 formControlName 不能同時在同一個表單控件上使用; 二者都用于在 Angular 中處理表單控件的值,但是它們的底層實現方式不同。 ngModel 是 Angular 提供的雙向數據綁定指令,它可以將表單控件的值與組件類中的屬性進行雙向綁定。當…

軟考筆記——10.項目管理

進度管理 進度管理就是采用科學的方法,確定進度目標,編制進度計劃和資源供應計劃,進行進度控制,在與質量、成本目標協調的基礎上,實現工期目標。 具體來說,包括以下過程: (1) 活動定義&#…

HLS實現FIR低通濾波器+System Generator仿真

硬件:ZYNQ7010 軟件:MATLAB 2019b、Vivado 2017.4、HLS 2017.4、System Generator 2017.4 1、MATLAB設計低通濾波器 FPGA系統時鐘 50MHz,也是采樣頻率。用 MATLAB 生成 1MHz 和 10MHz 的正弦波疊加的信號,并量化為 14bit 整數。把…

css 用過渡實現,鼠標離開li時,背景色緩慢消息的樣式

要實現鼠標懸停時背景顏色變為黃色,鼠標離開時背景顏色慢慢消失并變回白色的效果, 可以使用CSS的過渡(transition)屬性 li {background: #fff;color: #000;transition: background 0.5s ease-out; }li:hover {background: #fbb31…

Web網頁瀏覽器遠程訪問jupyter notebook服務器【內網穿透】

文章目錄 前言1. Python環境安裝2. Jupyter 安裝3. 啟動Jupyter Notebook4. 遠程訪問4.1 安裝配置cpolar內網穿透4.2 創建隧道映射本地端口 5. 固定公網地址 前言 Jupyter Notebook,它是一個交互式的數據科學和計算環境,支持多種編程語言,如…

Hyper-v導致Vmware window無法啟動崩潰記錄

最近有幾次vmware啟動window10直接崩潰情況,顯示藍屏報錯。一開始沒在意,以為是因為固態硬盤錯了幾個字節導致的? 但后來想想不對啊。vmware用了也有10來年了,穩得一筆,在仔細思考了一下后發現打不開的win10這三個虛擬…

Oracle/PL/SQL奇技淫巧之Lable標簽與循環控制

在一些存儲過程場景中&#xff0c;可能存在需要在滿足某些條件時跳出循環的場景&#xff0c; 但是在PL/SQL中&#xff0c;不能使用break語句直接跳出循環, 但是可以通過lable標簽的方式跳出循環&#xff0c;例&#xff1a; <<outer_loop>> FOR i IN 1..5 LOOPDBMS…