欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java深入講解static操作符

 更新時間:2022年07月14日 09:40:59   作者:白朝槿kk  
static關(guān)鍵字基本概念我們可以一句話來概括:方便在沒有創(chuàng)建對象的情況下來進行調(diào)用。也就是說:被static關(guān)鍵字修飾的不需要創(chuàng)建對象去調(diào)用,直接根據(jù)類名就可以去訪問,讓我們來了解一下你可能還不知道情況

前言

這篇文章主要是從類中static修飾的成員變量,static修飾的成員方法這兩個方面來講解static,static成員變量的初始化會在代碼塊中講解

static修飾成員變量

在Java中,被static修飾的成員,稱之為靜態(tài)成員,也可以稱為類成員,其不屬于某個具體的對象,是所有對象所共享的。

舉個例子:

class Animal{
    String name;
    int age;
    static String type = "Dog";
    //構(gòu)造方法
    public Animal(String name,int age){
        this.name = name;
        this.age = age;
    }
    public void SetAnimal(){
        System.out.println(this.name+" "+this.age+" "+type);
    }
}
public class Test {
    public static void main(String[] args) {
        Animal animal1 = new Animal("小白",1);
        Animal animal2 = new Animal("大黃",2);
        animal1.SetAnimal();
        animal2.SetAnimal();
    }
}

運行結(jié)果如下圖所以:

我定義了一個動物類,成員變量有名字和年齡,還有一個被static修飾的變量type(種類),以及一個構(gòu)造方法。我在主函數(shù)中創(chuàng)建了兩個對象,對象的種類都是狗。并用構(gòu)造方法為我創(chuàng)建的兩個變量進行賦值。而種類type是我實現(xiàn)在定義定義變量的時候就進行初始化的,這種初始化變量叫做就地初始化。

注意: s t a t i c 修 飾 的 成 員 變 量 不 是 一 定 要 就 地 初 始 化 \color{#FF0000}{static修飾的成員變量不是一定要就地初始化} static修飾的成員變量不是一定要就地初始化

在我們用完static修飾完type之后,type就是靜態(tài)成員變量,靜態(tài)成員變量也叫類變量。沒被static修飾的成員變量叫做普通成員變量。靜態(tài)成員變量有個特點就是 不 屬 于 對 象 \color{#FF0000}{不屬于對象} 不屬于對象。

什么是不屬于對象?

也就是說static修飾過的變量,是不依賴對象的。舉個例子:

class Animal{
    String name;
    int age;
    static String type = "Dog";
    //構(gòu)造方法
    public Animal(String name,int age){
        this.name = name;
        this.age = age;
    }
    public void SetAnimal(){
        System.out.println(this.name+" "+this.age+" "+type);
    }
}
public class Test {
    public static void main(String[] args) {
        Animal animal1 = new Animal("小白",1);
        Animal animal2 = new Animal("大黃",2);
        System.out.println(animal1.type);
        System.out.println(Animal.type);
    }
}

仍然是上面的代碼,我們都知道 對象名.成員變量可以訪問成員變量,而訪問static修飾的成員變量不需要創(chuàng)建對象,可以直接通過 類名.靜態(tài)成員變量進行訪問。運行結(jié)果結(jié)果如圖所示:

兩個打印的結(jié)果都是Dog,所以static修飾的變量不屬于對象,因為不需要創(chuàng)建對象也可以訪問。如果大家是想訪問static修飾的變量,建議大家就直接用類名.靜態(tài)成員變量就可以了,不建議使用對象.變量名進行訪問。

靜態(tài)成員變量的特性

  • 不屬于某個具體的對象,是類的屬性,所有對象共享的,不存儲在某個對象的空間中
  • 既可以通過對象訪問,也可以通過類名訪問,但一般更推薦使用類名訪問
  • 類變量存儲在方法區(qū)當中
  • 生命周期伴隨類的一生(即:隨類的加載而創(chuàng)建,隨類的卸載而銷毀)
  • 可以不初始化,如果就地初始化了如果沒被final修飾也是可以通過方法進行修改的

static修飾的成員方法

static修飾的成員方法和成員變量一樣 ,不屬于對象。static修飾的成員方法也叫類方法。也就是說,如果我想調(diào)用static修飾的成員方法直接用 類名.成員方法 就可以了。舉個例子:

class Animal{
    String name;
    int age;
    static String type = "Dog";
    public static void staticFunc(){
        System.out.println("static修飾的成員方法");
    }
}
public class Test {
    public static void main(String[] args) {
        Animal animal1 = new Animal("小白",1);
        Animal animal2 = new Animal("大黃",2);
        Animal.staticFunc();
    }
}

我們平時寫的方法一般都是static修飾的,為什么要用static修飾我相信你的心里應(yīng)該也有答案了。

因為static修飾的方法不屬于對象,不需要創(chuàng)建對象就可以直接使用。你也可以把static修飾的成員方法看成我們平時寫的方法,只不過這是個在不同的類里面定義的一個成員方法罷了。

static修飾的成員方法是不依賴于對象的方法,所以在static修飾的方法中,不能直接訪問普通的成員變量,因為普通的成員方法是需要依賴對象的。如果不創(chuàng)建對象,直接在static中修飾的成員方法中訪問普通成員變量是不可以的。如果想要在static中修飾的成員方法中訪問成員變量,有兩種方法,第一種是直接在static修飾的成員方法中創(chuàng)建一個對象,這樣就可以訪問了。第二種是把創(chuàng)建好的對象作為static修飾成員方法的形參,這樣也可以直接訪問。

靜態(tài)方法特性

  • 不屬于某個具體的對象,是類方法
  • 可以通過對象調(diào)用,也可以通過類名.靜態(tài)方法名(…)方式調(diào)用,更推薦使用后者
  • 不能在靜態(tài)方法中訪問任何非靜態(tài)成員變量

到此這篇關(guān)于Java深入講解static操作符的文章就介紹到這了,更多相關(guān)Java static內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論