Java中類變量和類方法的基本使用
類變量
類變量也叫靜態(tài)變量/靜態(tài)屬性,是該類的所有對(duì)象共享的變量,任何一個(gè)該類的對(duì)象訪問它時(shí),取到的都是相同的值,同樣任何一個(gè)該類的對(duì)象去修改它時(shí),修改的也是同一個(gè)變量。
如何定義類變量
定義語法:
訪問修飾符 static 數(shù)據(jù)類型 變量名; 【推薦使用】
static 訪問修飾符 數(shù)據(jù)類型 變量名;
如何訪問類變量
類名.類變量名【推薦】
對(duì)象名.類變量名
靜態(tài)變量的 訪問修飾符在訪問權(quán)限和范圍上 和 普通屬性 是一樣的
package com.zhangch.static_; public class Test { public static void main(String[] args) { //類名.類變量名 // 說明:類變量是隨著類的加載而創(chuàng)建,所以及時(shí)沒有創(chuàng)建對(duì)象實(shí)例也可以進(jìn)行訪問 System.out.println(A.name); } } class A{ // 類變量的訪問,必須遵守相關(guān)修飾符的訪問權(quán)限 static String name = "zhang"; }
類變量的使用注意事項(xiàng)和細(xì)節(jié)
1、什么時(shí)候使用類變量
當(dāng)我們需要讓某個(gè)類的所有對(duì)象都共享一個(gè)變量時(shí), 就可以考慮使用類變量。
2、類變量和實(shí)例變量的區(qū)別
類變量是該類所有對(duì)象共享的,而實(shí)例變量是每個(gè)對(duì)象獨(dú)享的。
3、加上static稱為類變量或靜態(tài)變量,否則稱為 實(shí)例變量/普通變量/非靜態(tài)變量;
4、類變量可以通過 類名.類變量名 或者 對(duì)象名.類變量名 來訪問,但推薦使用類名;
5、實(shí)例變量不能通過 類名.類變量名 方式訪問;
6、類變量是在類創(chuàng)建時(shí)就已經(jīng)存在了【構(gòu)造器是在對(duì)象進(jìn)行實(shí)例化】;
7、類變量的生命周期隨著類的加載開始,隨著類的消亡而銷毀。
類方法基本介紹
類方法也叫靜態(tài)方法
格式
訪問修飾符 static 數(shù)據(jù)返回類型 方法名(){}
調(diào)用
類名.類方法名
總結(jié)
1、當(dāng)方法中不涉及到任何與對(duì)象相關(guān)的成員,則可以將方法設(shè)計(jì)成靜態(tài)方法,提高開發(fā)效率
2、如果我們希望不創(chuàng)建實(shí)例,也可以調(diào)用某個(gè)方法(即當(dāng)作工具來使用)
比如:Math類、Arrays類
3、將一些通用的方法,設(shè)計(jì)成靜態(tài)方法【根據(jù)實(shí)際情況考慮,一般這些方法集成在一個(gè)類下】,這樣我們不需要?jiǎng)?chuàng)建對(duì)象就可以使用了。
比如:打印一維數(shù)組,冒泡排序,完成某個(gè)計(jì)算任務(wù)等等
類方法的使用注意事項(xiàng)和細(xì)節(jié)討論
1、類方法和普通方法都是隨著類的加載而加載,將結(jié)構(gòu)信息存儲(chǔ)在方法區(qū);
類方法中無this、super參數(shù),普通方法中隱含著 this、super參數(shù)。
2、類方法可以通過類名調(diào)用,也可以通過對(duì)象名調(diào)用【非常不推薦,記住,只要是靜態(tài)的,不管屬性還是方法,統(tǒng)一使用,類名.】;
3、普通方法和對(duì)象有關(guān),需要通過對(duì)象名調(diào)用,而普通方法不能通過類名調(diào)用。
4、類方法中只能訪問靜態(tài)變量或者靜態(tài)方法
5、普通成員方法,既可以訪問 靜態(tài)成員(方法), 也可以訪問非靜態(tài)變量(方法)
小結(jié):
靜態(tài)方法,只能訪問靜態(tài)成員(方法),而非靜態(tài)方法,則可以訪問靜態(tài)成員和非靜態(tài)成員。
理解main方法語法
解釋main方法的形式:
public static void main(String[] args){ }
1、main方法是java虛擬機(jī)進(jìn)行的調(diào)用。所有該方法的權(quán)限必須是public。
2、java虛擬機(jī)在調(diào)用main方法的時(shí)候不需要?jiǎng)?chuàng)建對(duì)象,所以為static
3、方法接受String類型的數(shù)組參數(shù),該數(shù)組中保存執(zhí)行java命令時(shí)傳遞給運(yùn)行類的參數(shù)
4、java執(zhí)行程序的參數(shù)【args】。java 文件名 參數(shù)1 參數(shù)2 參數(shù)3
在IDEA上運(yùn)行程序時(shí),傳入?yún)?shù)方法
到此這篇關(guān)于Java中類變量和類方法的基本使用的文章就介紹到這了,更多相關(guān)Java類變量和類方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot詳解MySQL如何實(shí)現(xiàn)讀寫分離
當(dāng)響應(yīng)的瓶頸在數(shù)據(jù)庫的時(shí)候,就要考慮數(shù)據(jù)庫的讀寫分離,當(dāng)然還可以分庫分表,那是單表數(shù)據(jù)量特別大,當(dāng)單表數(shù)據(jù)量不是特別大,但是請(qǐng)求量比較大的時(shí)候,就要考慮讀寫分離了.具體的話,還是要看自己的業(yè)務(wù)...如果還是很慢,那就要分庫分表了...我們這篇就簡單講一下讀寫分離2022-09-09idea整合deepseek實(shí)現(xiàn)AI輔助編程的流程步驟
文章介紹了如何在IntelliJ IDEA中整合DeepSeek平臺(tái)實(shí)現(xiàn)AI輔助編程,步驟包括安裝CodeGPT插件、注冊(cè)DeepSeek開發(fā)者賬號(hào)、配置API密鑰以及設(shè)置API信息,需要的朋友可以參考下2025-02-02java list,set,map,數(shù)組間的相互轉(zhuǎn)換詳解
這篇文章主要介紹了java list,set,map,數(shù)組間的相互轉(zhuǎn)換詳解的相關(guān)資料,這里附有實(shí)例代碼,具有參考價(jià)值,需要的朋友可以參考下2017-01-01Java OpenCV圖像處理之仿射變換,透視變換,旋轉(zhuǎn)詳解
這篇文章主要為大家詳細(xì)介紹了Java OpenCV圖像處理中仿射變換,透視變換,旋轉(zhuǎn)的實(shí)現(xiàn),文中的示例代碼講解詳細(xì),快跟隨小編一起學(xué)習(xí)一下2022-10-10生成PDF全攻略之在已有PDF上添加內(nèi)容的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄蒔DF全攻略之在已有PDF上添加內(nèi)容的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06關(guān)于java的包Package中同名類的沖突及其理解
這篇文章主要介紹了關(guān)于java的包Package中同名類的沖突及其理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08