JAVA Static關(guān)鍵字的用法
static關(guān)鍵字的作用:
用來修飾成員變量和方法,被修飾的成員是屬于類的,而不單單是屬于某個(gè)對(duì)象的,也就是說,可以不靠對(duì)象來調(diào)用。
首先我們來介紹類變量
當(dāng)static修飾成員變量時(shí),該變量稱為類變量,該類的每個(gè)對(duì)象都共享同一個(gè)類變量的值,任何
對(duì)象都可以更改該變量的值,但也可以在不創(chuàng)建該類對(duì)象的情況下,通過類名對(duì)類變量進(jìn)行操作
命名格式
static 數(shù)據(jù)類型 變量名;
static int age;
下面我們來舉個(gè)例子,讓大家體會(huì)體會(huì)類變量的作用
就比如梁山有108位好漢我們給這108位好漢按照次序每人一個(gè)編號(hào),這就需要使用到類變量
定義一個(gè)Person類
public class Person {
private int age;
private String name;
private int id;
private static int count=1;
public int getId() {
return id;
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
", id=" + id +
'}';
}
public void setId(int id) {
this.id=count;
count++;
}
public Person(int age, String name) {
this.age = age;
this.name = name;
this.id=count;
count++;
}
public Person() {
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
主函數(shù)
public class Test {
public static void main(String[] args) {
Person one = new Person(18, "及時(shí)雨宋江");
System.out.println(one);
Person two = new Person(18, "盧俊義");
System.out.println(two);
}
}
結(jié)果
我們看到id的數(shù)值在不斷的+1,這是因?yàn)樗麄兊膇d都等于了一個(gè)公共的類變量

接下來我們來介紹靜態(tài)方法
靜態(tài)方法即類中使用static修飾的方法,該方法使用類名可以直接調(diào)用,不需要?jiǎng)?chuàng)建類的對(duì)象
定義格式
修飾符 static 返回置類型 方法名 (參數(shù)列表){
//執(zhí)行語(yǔ)句
}
示例
public static void eat(){
System.out.println("吃飯了");
}
使用靜態(tài)方法的注意事項(xiàng)
靜態(tài)方法只可以直接訪問類變量與靜態(tài)方法
靜態(tài)方法不能訪問普通成員變量或成員方法
靜態(tài)方法中不可以使用this關(guān)鍵字(因?yàn)閠his代表的是使用該方法的對(duì)象,而靜態(tài)方法是屬于類的,this無從指向,所以不可以使用)
下面我們寫一段代碼來使用一下靜態(tài)方法
public class Person2 {
public static void test(){
System.out.println("這是靜態(tài)方法" );
}
}
public class Test {
public static void main(String[] args) {
System.out.println("這是使用類名調(diào)用的:");
Person2.test();
Person2 person2 = new Person2();
System.out.println("這是使用對(duì)象調(diào)用的:");
person2.test();
}
}
運(yùn)行結(jié)果

下面我們從內(nèi)存的角度來講講靜態(tài)的原理
先上代碼
public class Teacher {
private int age;
private String name;
private static String subject="math";
public Teacher(int age, String name) {
this.age = age;
this.name = name;
}
public Teacher() {
}
@Override
public String toString() {
return "Teacher{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static String getSubject() {
return subject;
}
public static void setSubject(String subject) {
Teacher.subject = subject;
}
}
public class Test {
public static void main(String[] args) {
Teacher wang = new Teacher(18, "wang");
Teacher li = new Teacher(19, "li");
}
}

小結(jié):普通成員變量操作各自空間,靜態(tài)變量操作共享空間
靜態(tài)代碼塊,敲重點(diǎn)?。?!這個(gè)在我們后面學(xué)習(xí)中會(huì)經(jīng)常使用到
什么是靜態(tài)代碼塊呢?
定義在成員位置,使用static修飾的代碼塊{}
位置:類中方法外
執(zhí)行隨著類的加載而執(zhí)行且只執(zhí)行一次,優(yōu)先于main方法和構(gòu)造方法的執(zhí)行
格式
public class Person {
static {
}
}
這里就不深究了后面的文章我找?guī)缀踉僬f說
以上就是static關(guān)鍵字的一些基礎(chǔ)知識(shí),如有錯(cuò)誤請(qǐng)各位批評(píng)指正
到此這篇關(guān)于JAVA Static關(guān)鍵字的用法的文章就介紹到這了,更多相關(guān)JAVA Static關(guān)鍵字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot集成IJPay實(shí)現(xiàn)微信v3支付的示例代碼
本文主要介紹了SpringBoot集成IJPay實(shí)現(xiàn)微信v3支付的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Java聊天室之實(shí)現(xiàn)接收和發(fā)送Socket
這篇文章主要為大家詳細(xì)介紹了Java簡(jiǎn)易聊天室之實(shí)現(xiàn)接收和發(fā)送Socket功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以了解一下2022-10-10
hadoop client與datanode的通信協(xié)議分析
本文主要分析了hadoop客戶端read和write block的流程. 以及client和datanode通信的協(xié)議, 數(shù)據(jù)流格式等2012-11-11
DolphinScheduler容錯(cuò)Master源碼分析
這篇文章主要為大家介紹了DolphinScheduler容錯(cuò)Master源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Java內(nèi)存各部分OOM出現(xiàn)原因及解決方法(必看)
下面小編就為大家?guī)硪黄狫ava內(nèi)存各部分OOM出現(xiàn)原因及解決方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04
Java中List與數(shù)組相互轉(zhuǎn)換實(shí)例分析
這篇文章主要介紹了Java中List與數(shù)組相互轉(zhuǎn)換的方法,實(shí)例分析了Java中List與數(shù)組相互轉(zhuǎn)換中容易出現(xiàn)的問題與相關(guān)的解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05

