小編這次要給大家分享的是JAVA中如何使用Static關鍵字,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
static關鍵字的作用:
用來修飾成員變量和方法,被修飾的成員是屬于類的,而不單單是屬于某個對象的,也就是說,可以不靠對象來調用。
首先我們來介紹類變量
當static修飾成員變量時,該變量稱為類變量,該類的每個對象都共享同一個類變量的值,任何
對象都可以更改該變量的值,但也可以在不創建該類對象的情況下,通過類名對類變量進行操作
命名格式
static 數據類型 變量名;
static int age;
下面我們來舉個例子,讓大家體會體會類變量的作用
就比如梁山有108位好漢我們給這108位好漢按照次序每人一個編號,這就需要使用到類變量
定義一個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;
}
}主函數
public class Test {
public static void main(String[] args) {
Person one = new Person(18, "及時雨宋江");
System.out.println(one);
Person two = new Person(18, "盧俊義");
System.out.println(two);
}
}結果
我們看到id的數值在不斷的+1,這是因為他們的id都等于了一個公共的類變量

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

下面我們從內存的角度來講講靜態的原理
先上代碼
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");
}
}
小結:普通成員變量操作各自空間,靜態變量操作共享空間
靜態代碼塊,敲重點?。?!這個在我們后面學習中會經常使用到
什么是靜態代碼塊呢?
定義在成員位置,使用static修飾的代碼塊{}
位置:類中方法外
執行隨著類的加載而執行且只執行一次,優先于main方法和構造方法的執行
格式
public class Person {
static {
}
}看完這篇關于JAVA中如何使用Static關鍵字的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。