1. 程式人生 > 程式設計 >JAVA Static關鍵字的用法

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都等於了一個公共的類變數

JAVA Static關鍵字的用法

接下來我們來介紹靜態方法

靜態方法即類中使用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();

 }
}

執行結果

JAVA Static關鍵字的用法

下面我們從記憶體的角度來講講靜態的原理

先上程式碼

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");
 }
}

JAVA Static關鍵字的用法

小結:普通成員變數操作各自空間,靜態變數操作共享空間

靜態程式碼塊,敲重點!!!這個在我們後面學習中會經常使用到

什麼是靜態程式碼塊呢?

定義在成員位置,使用static修飾的程式碼塊{}

位置:類中方法外

執行隨著類的載入而執行且只執行一次,優先於main方法和構造方法的執行

格式

 public class Person {
 static {  
 }
 }

這裡就不深究了後面的文章我找幾乎再說說

以上就是static關鍵字的一些基礎知識,如有錯誤請各位批評指正

到此這篇關於JAVA Static關鍵字的用法的文章就介紹到這了,更多相關JAVA Static關鍵字內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!