国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java 中的 static:靜態(tài)變量、靜態(tài)方法,一切都在掌握中

這篇具有很好參考價(jià)值的文章主要介紹了Java 中的 static:靜態(tài)變量、靜態(tài)方法,一切都在掌握中。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

??:你只管努力,剩下的交給時(shí)間

?? :小破站

前言

static,這個(gè)小小的關(guān)鍵字在Java中扮演著重要的角色,但它的用途和工作原理可能會(huì)讓人感到困惑。你是否曾想過為什么有些方法和變量可以直接從類訪問,而無需創(chuàng)建實(shí)例?或者為什么某些變量在多個(gè)實(shí)例之間共享相同的值?在本文中,我們將探索static的奧秘,深入了解它的各種用法,從靜態(tài)方法的調(diào)用到靜態(tài)變量的共享,讓你對Java中的static有一個(gè)清晰的認(rèn)識。

第一:靜態(tài)方法

靜態(tài)方法(Static Method)是屬于類而不是類的實(shí)例的方法。它可以在不創(chuàng)建類的實(shí)例的情況下被調(diào)用。靜態(tài)方法通常用于執(zhí)行與類相關(guān)的操作,而不需要訪問或修改特定實(shí)例的狀態(tài)。

以下是關(guān)于靜態(tài)方法的聲明、調(diào)用以及與實(shí)例方法的區(qū)別:

聲明靜態(tài)方法

在Java中,聲明靜態(tài)方法需要使用static關(guān)鍵字。靜態(tài)方法可以直接屬于類,而不是類的實(shí)例。

public class MyClass {
    public static void myStaticMethod() {
        // 靜態(tài)方法的代碼
    }
}

調(diào)用靜態(tài)方法

你可以通過類名來調(diào)用靜態(tài)方法,而不需要?jiǎng)?chuàng)建類的實(shí)例。

MyClass.myStaticMethod();

靜態(tài)方法與實(shí)例方法的區(qū)別

  1. 關(guān)聯(lián)性:靜態(tài)方法與類本身相關(guān),而實(shí)例方法與類的實(shí)例相關(guān)。

  2. 調(diào)用方式:靜態(tài)方法通過類名調(diào)用,而實(shí)例方法需要通過對象實(shí)例來調(diào)用。

  3. 訪問權(quán)限:靜態(tài)方法可以訪問類的靜態(tài)成員,但不能訪問非靜態(tài)成員(實(shí)例成員)。實(shí)例方法可以訪問類的靜態(tài)和非靜態(tài)成員。

  4. 內(nèi)部引用:靜態(tài)方法中不能使用this關(guān)鍵字,因?yàn)樗鼪]有當(dāng)前對象的引用。實(shí)例方法可以使用this來引用當(dāng)前對象。

  5. 生命周期:靜態(tài)方法在類加載時(shí)初始化,而實(shí)例方法在對象創(chuàng)建時(shí)初始化。

總之,靜態(tài)方法是與類本身相關(guān)的方法,通常用于執(zhí)行通用操作或訪問靜態(tài)成員。實(shí)例方法則是與類的實(shí)例相關(guān)的方法,可以訪問和修改實(shí)例的狀態(tài)。選擇使用靜態(tài)方法還是實(shí)例方法取決于你的需求和代碼設(shè)計(jì)。

第二:靜態(tài)變量

靜態(tài)變量,也稱為類變量,是屬于類而不是類的實(shí)例的變量。它在類加載時(shí)被初始化,只有一個(gè)副本,被所有類的實(shí)例共享。靜態(tài)變量通常用于存儲(chǔ)類級別的數(shù)據(jù),它們不依賴于特定對象的狀態(tài),而是與整個(gè)類相關(guān)聯(lián)。

以下是有關(guān)靜態(tài)變量的聲明、使用、生命周期和作用域的信息:

聲明靜態(tài)變量

在Java中,聲明靜態(tài)變量需要使用static關(guān)鍵字。靜態(tài)變量通常位于類的頂部,通常在類內(nèi)部,方法外部進(jìn)行聲明。靜態(tài)變量通常用public, private, 或 protected等修飾符修飾。

public class MyClass {
    // 靜態(tài)變量聲明
    public static int staticVariable;
    private static String name;
}

使用靜態(tài)變量

你可以通過類名來訪問靜態(tài)變量,也可以通過類的實(shí)例來訪問它。通常建議使用類名來訪問靜態(tài)變量,因?yàn)樗鼈兣c類相關(guān)聯(lián),而不是與特定對象實(shí)例相關(guān)。

MyClass.staticVariable = 42; // 通過類名訪問靜態(tài)變量
int value = MyClass.staticVariable; // 通過類名獲取靜態(tài)變量的值

MyClass myObject = new MyClass();
myObject.staticVariable = 10; // 也可以通過對象實(shí)例訪問靜態(tài)變量

靜態(tài)變量的生命周期

靜態(tài)變量的生命周期與類的生命周期相同。它們在類加載時(shí)初始化,一直存在,直到程序結(jié)束或類被卸載。靜態(tài)變量的值在類加載后保持不變,因?yàn)樗鼈兪穷惣墑e的,而不是與對象實(shí)例相關(guān)聯(lián)。

靜態(tài)變量的作用域

靜態(tài)變量在整個(gè)類中可見,它們的作用域覆蓋整個(gè)類。可以在類的任何方法內(nèi)部或外部訪問靜態(tài)變量。

總之,靜態(tài)變量是屬于類的,而不是類的實(shí)例的變量。它們在類加載時(shí)初始化,具有全局作用域,用于存儲(chǔ)類級別的數(shù)據(jù)。靜態(tài)變量通常用于存儲(chǔ)不依賴于特定對象實(shí)例的信息,如常量值、計(jì)數(shù)器等。

第三:靜態(tài)塊

靜態(tài)初始化塊是Java中的一種特殊的塊,用于在類加載時(shí)執(zhí)行靜態(tài)初始化操作。靜態(tài)初始化塊通常用于執(zhí)行一些與靜態(tài)成員變量相關(guān)的初始化任務(wù),或在類加載時(shí)執(zhí)行一些必要的設(shè)置。

以下是關(guān)于靜態(tài)初始化塊的用途和如何使用它來初始化靜態(tài)變量的信息:

靜態(tài)初始化塊的用途

  1. 初始化靜態(tài)變量:靜態(tài)初始化塊可以用于初始化靜態(tài)變量,通常在靜態(tài)變量的初始值不能直接賦值時(shí)使用。

  2. 執(zhí)行復(fù)雜初始化邏輯:如果靜態(tài)變量的初始化需要復(fù)雜的邏輯或依賴于其他類的加載,可以在靜態(tài)初始化塊中執(zhí)行這些操作。

  3. 資源管理:靜態(tài)初始化塊可以用于管理資源,如數(shù)據(jù)庫連接或文件句柄的初始化和釋放。

如何使用靜態(tài)塊初始化靜態(tài)變量

在Java中,你可以在類中使用靜態(tài)初始化塊,它以static {}的形式定義,包含初始化代碼。

public class MyClass {
    // 靜態(tài)變量聲明
    public static int staticVariable;

    // 靜態(tài)初始化塊
    static {
        // 執(zhí)行初始化操作
        staticVariable = 42;
    }
}

在上述示例中,靜態(tài)初始化塊在類加載時(shí)執(zhí)行,并初始化了靜態(tài)變量staticVariable的值為42。靜態(tài)初始化塊允許你執(zhí)行更復(fù)雜的邏輯,如根據(jù)條件初始化靜態(tài)變量,執(zhí)行多步驟的初始化等。

請注意,靜態(tài)初始化塊只在類加載時(shí)執(zhí)行一次,因此它適合用于一次性的初始化操作。如果你有多個(gè)靜態(tài)初始化塊,它們會(huì)按照在類中的順序執(zhí)行。

第四:靜態(tài)內(nèi)部類

靜態(tài)內(nèi)部類是嵌套在另一個(gè)類中的類,但它是一個(gè)靜態(tài)類,與外部類的實(shí)例無關(guān)。靜態(tài)內(nèi)部類可以在不創(chuàng)建外部類實(shí)例的情況下被實(shí)例化,并可以訪問外部類的靜態(tài)成員,但不能訪問外部類的非靜態(tài)成員。

靜態(tài)內(nèi)部類的主要特點(diǎn)包括:

  1. 它被聲明為靜態(tài)(使用static關(guān)鍵字)。
  2. 它不能訪問外部類的非靜態(tài)成員(即實(shí)例成員)。
  3. 它可以訪問外部類的靜態(tài)成員和方法。
  4. 靜態(tài)內(nèi)部類的實(shí)例化不依賴于外部類的實(shí)例。

靜態(tài)內(nèi)部類的用途

靜態(tài)內(nèi)部類常用于以下情況:

  1. 封裝:將一組相關(guān)的類封裝在一個(gè)類內(nèi)部,以減少命名沖突,提高代碼的組織性和可讀性。

  2. 工廠模式:靜態(tài)內(nèi)部類可用于實(shí)現(xiàn)工廠模式,其中外部類充當(dāng)工廠,而靜態(tài)內(nèi)部類作為工廠方法。

  3. 單例模式:靜態(tài)內(nèi)部類通常用于實(shí)現(xiàn)懶加載的單例模式,因?yàn)樗谛枰獣r(shí)才加載并初始化。

  4. 優(yōu)化類結(jié)構(gòu):將一些與外部類不直接關(guān)聯(lián)但與其有某種聯(lián)系的類組織在一起,以減少類的數(shù)量和提高代碼可維護(hù)性。

示例

下面是一個(gè)示例,展示了如何使用靜態(tài)內(nèi)部類:

public class OuterClass {
    private static int outerStaticVariable = 42;

    // 靜態(tài)內(nèi)部類
    public static class StaticInnerClass {
        public void printOuterStaticVariable() {
            System.out.println("Outer static variable: " + outerStaticVariable);
        }
    }

    public static void main(String[] args) {
        // 創(chuàng)建靜態(tài)內(nèi)部類的實(shí)例
        StaticInnerClass inner = new StaticInnerClass();
        inner.printOuterStaticVariable();
    }
}

在這個(gè)示例中,StaticInnerClass是一個(gè)靜態(tài)內(nèi)部類,它可以訪問外部類OuterClass的靜態(tài)成員outerStaticVariable,但不能訪問非靜態(tài)成員。這允許你將相關(guān)的類組織在一起,提高了代碼的可讀性。

第五:靜態(tài)導(dǎo)入

靜態(tài)導(dǎo)入是Java中的一項(xiàng)特性,它允許你在代碼中直接引用類的靜態(tài)成員,而不需要顯式指定類名。靜態(tài)導(dǎo)入的主要目的是簡化代碼,提高可讀性,減少重復(fù)的類名引用。

靜態(tài)導(dǎo)入的目的和使用場景

  1. 簡化代碼:靜態(tài)導(dǎo)入可以簡化代碼,特別是當(dāng)你頻繁使用某個(gè)類的靜態(tài)方法或常量時(shí),省去了重復(fù)輸入類名的麻煩。

  2. 提高可讀性:通過靜態(tài)導(dǎo)入,你可以更清晰地表達(dá)代碼的意圖,減少了冗長的類名前綴,提高了可讀性。

  3. 避免命名沖突:在某些情況下,靜態(tài)導(dǎo)入還可以幫助避免命名沖突,因?yàn)槟憧梢赃x擇性地導(dǎo)入需要的靜態(tài)成員,而不會(huì)污染命名空間。

如何使用靜態(tài)導(dǎo)入簡化代碼

假設(shè)有一個(gè)名為MathUtil的類,其中包含了一些靜態(tài)方法和常量:

public class MathUtil {
    public static int add(int a, int b) {
        return a + b;
    }

    public static final double PI = 3.14159265359;
}

使用靜態(tài)導(dǎo)入,你可以在代碼中直接引用這些靜態(tài)方法和常量,而不需要顯式指定類名:

import static com.example.MathUtil.*;

public class Main {
    public static void main(String[] args) {
        int result = add(5, 3); // 不需要寫 MathUtil.add
        double circleArea = PI * 5 * 5; // 不需要寫 MathUtil.PI
        System.out.println("Result: " + result);
        System.out.println("Circle Area: " + circleArea);
    }
}

在上述示例中,使用import static語句導(dǎo)入了MathUtil類的靜態(tài)方法和常量,使得在Main類中可以直接使用它們,而不需要寫類名前綴。

需要注意的是,盡量避免濫用靜態(tài)導(dǎo)入,只導(dǎo)入必要的靜態(tài)成員,以確保代碼的可讀性。

第六:單例模式

單例模式是一種創(chuàng)建型設(shè)計(jì)模式,它確保一個(gè)類只有一個(gè)實(shí)例,并提供一種訪問該實(shí)例的全局點(diǎn)。使用靜態(tài)變量可以很容易實(shí)現(xiàn)單例模式。

以下是如何使用靜態(tài)變量實(shí)現(xiàn)單例模式的示例代碼:

public class Singleton {
    // 使用靜態(tài)變量來存儲(chǔ)單例實(shí)例
    private static Singleton instance;

    // 私有構(gòu)造方法,防止外部實(shí)例化
    private Singleton() {
    }

    // 公共靜態(tài)方法,用于獲取單例實(shí)例
    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

上述代碼中,Singleton類的構(gòu)造方法是私有的,這意味著外部類無法直接實(shí)例化它。而通過getInstance方法,你可以獲取Singleton類的單一實(shí)例。這個(gè)實(shí)例是通過靜態(tài)變量instance來存儲(chǔ)的,只有在第一次調(diào)用getInstance方法時(shí)才會(huì)創(chuàng)建。以后的調(diào)用都會(huì)返回同一個(gè)實(shí)例。

線程安全問題和解決方法

上述的單例模式示例是基本的單例模式,但它不是線程安全的。當(dāng)多個(gè)線程同時(shí)訪問getInstance方法時(shí),可能會(huì)創(chuàng)建多個(gè)實(shí)例。為了確保線程安全,有幾種解決方法:

  1. 餓漢式單例(Eager Initialization):在類加載時(shí)就創(chuàng)建單例實(shí)例,確保線程安全,但可能會(huì)導(dǎo)致資源浪費(fèi)。

    public class Singleton {
        private static final Singleton instance = new Singleton();
        private Singleton() {
        }
        public static Singleton getInstance() {
            return instance;
        }
    }
    
  2. 雙重檢查鎖定(Double-Check Locking):在第一次獲取實(shí)例時(shí)加鎖,之后的訪問不需要再加鎖,提高性能。

    public class Singleton {
        private static volatile Singleton instance;
        private Singleton() {
        }
        public static Singleton getInstance() {
            if (instance == null) {
                synchronized (Singleton.class) {
                    if (instance == null) {
                        instance = new Singleton();
                    }
                }
            }
            return instance;
        }
    }
    
  3. 靜態(tài)內(nèi)部類:使用靜態(tài)內(nèi)部類來延遲加載單例實(shí)例,利用類加載機(jī)制確保線程安全。

    public class Singleton {
        private static class SingletonHolder {
            private static final Singleton INSTANCE = new Singleton();
        }
        private Singleton() {
        }
        public static Singleton getInstance() {
            return SingletonHolder.INSTANCE;
        }
    }
    

這些是一些常見的單例模式的線程安全實(shí)現(xiàn)方式。選擇哪種方式取決于項(xiàng)目的需求和性能考慮。最常用的是雙重檢查鎖定和靜態(tài)內(nèi)部類方式,它們都是線程安全且延遲加載的。

第七:常見問題和最佳實(shí)踐

靜態(tài)成員的生命周期和線程安全性、避免濫用static的最佳實(shí)踐以及靜態(tài)變量的命名規(guī)范是編寫高質(zhì)量Java代碼時(shí)需要考慮的關(guān)鍵問題。以下是這些問題的詳細(xì)解釋和最佳實(shí)踐:

靜態(tài)成員的生命周期和線程安全性

  • 生命周期:靜態(tài)成員在類加載時(shí)初始化,生命周期與應(yīng)用程序的運(yùn)行時(shí)間相同。它們只會(huì)初始化一次。

  • 線程安全性:靜態(tài)成員是全局共享的,因此可能存在線程安全問題。如果多個(gè)線程同時(shí)訪問和修改靜態(tài)成員,你需要采取適當(dāng)?shù)拇胧┐_保線程安全,如使用同步或其他并發(fā)控制機(jī)制。

避免濫用static的最佳實(shí)踐

  1. 不必要的靜態(tài):避免在類中過度使用靜態(tài)成員。只有當(dāng)數(shù)據(jù)需要被類的所有實(shí)例共享時(shí),才應(yīng)該將其定義為靜態(tài)。避免將每個(gè)成員都聲明為靜態(tài),這會(huì)導(dǎo)致不必要的全局狀態(tài)。

  2. 全局變量的謹(jǐn)慎使用:避免過度使用靜態(tài)變量作為全局狀態(tài)。全局變量可以使代碼更難理解、調(diào)試和維護(hù)。盡量將變量的作用范圍限制在需要的最小范圍內(nèi)。

  3. 靜態(tài)方法的明智使用:靜態(tài)方法通常用于實(shí)用工具類、工廠方法、單例模式等情況,但不應(yīng)濫用。確保它們的使用合理,而不是為了方便而將所有方法都定義為靜態(tài)。

靜態(tài)變量的命名規(guī)范

  • 靜態(tài)變量的命名通常采用大寫字母,單詞之間使用下劃線分隔,以增加可讀性。例如:MAX_VALUE, DEFAULT_TIMEOUT.

  • 靜態(tài)變量應(yīng)該是恒定不變的,不應(yīng)該在運(yùn)行時(shí)改變其值。如果靜態(tài)變量需要修改,通常會(huì)使用final關(guān)鍵字聲明。

  • 靜態(tài)常量(如枚舉的常量)通常使用全大寫字母,單詞之間使用下劃線分隔,以表示它們是不可變的。例如:RED, GREEN.

總之,靜態(tài)成員的生命周期與類加載相同,線程安全性需要注意。避免濫用static,只有在必要時(shí)才使用。在命名靜態(tài)變量時(shí),遵循命名規(guī)范,使用大寫字母和下劃線以提高可讀性。

第八:案例研究

在實(shí)際項(xiàng)目中,static關(guān)鍵字經(jīng)常用于各種場景,以下是一些示例說明如何在實(shí)際項(xiàng)目中使用static

  1. 常量定義static常量通常用于定義不變的常量,以避免魔法數(shù)字和提高代碼可讀性。例如,在一個(gè)幾何計(jì)算庫中,可以定義static final常量來表示圓周率π:

    public class MathConstants {
        public static final double PI = 3.14159265359;
    }
    
  2. 工具類:靜態(tài)方法和靜態(tài)變量通常用于工具類,這些類提供一組靜態(tài)方法來執(zhí)行通用任務(wù)。例如,java.lang.Math類中的所有方法都是靜態(tài)的,用于執(zhí)行數(shù)學(xué)運(yùn)算。

    double result = Math.sqrt(16.0); // 調(diào)用靜態(tài)方法
    
  3. 單例模式:靜態(tài)變量常用于實(shí)現(xiàn)單例模式,確保只有一個(gè)類的實(shí)例。在單例類中,通常會(huì)有一個(gè)私有靜態(tài)變量來存儲(chǔ)單例實(shí)例。

    public class Singleton {
        private static Singleton instance;
        private Singleton() {
        }
        public static Singleton getInstance() {
            if (instance == null) {
                instance = new Singleton();
            }
            return instance;
        }
    }
    
  4. 靜態(tài)內(nèi)部類:靜態(tài)內(nèi)部類常用于實(shí)現(xiàn)延遲加載的單例模式,它充當(dāng)了工廠并實(shí)現(xiàn)了懶加載。

    public class Singleton {
        private static class SingletonHolder {
            private static final Singleton INSTANCE = new Singleton();
        }
        private Singleton() {
        }
        public static Singleton getInstance() {
            return SingletonHolder.INSTANCE;
        }
    }
    
  5. 靜態(tài)工廠方法:靜態(tài)工廠方法通常用于創(chuàng)建對象實(shí)例,而不是使用構(gòu)造方法。例如,java.util.Collections類提供了許多靜態(tài)工廠方法用于創(chuàng)建不可變集合。

    List<String> unmodifiableList = Collections.unmodifiableList(originalList);
    
  6. 緩存:靜態(tài)變量可以用于緩存數(shù)據(jù),以提高性能。例如,你可以使用靜態(tài)Map來緩存計(jì)算結(jié)果,以避免重復(fù)計(jì)算。

    public class MathCache {
        private static Map<Integer, Double> squareRootCache = new HashMap<>();
        public static double getSquaredRoot(int number) {
            if (!squareRootCache.containsKey(number)) {
                double result = Math.sqrt(number);
                squareRootCache.put(number, result);
            }
            return squareRootCache.get(number);
        }
    }
    

這些示例展示了在實(shí)際項(xiàng)目中使用static關(guān)鍵字的常見場景,包括定義常量、創(chuàng)建工具類、實(shí)現(xiàn)單例模式、實(shí)現(xiàn)靜態(tài)內(nèi)部類、提供靜態(tài)工廠方法和使用緩存。static在這些場景中有助于提供全局狀態(tài)、提高性能和提供工具方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-755872.html

到了這里,關(guān)于Java 中的 static:靜態(tài)變量、靜態(tài)方法,一切都在掌握中的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 4.【CPP】入門(初始化列表||explicit||static||友元||靜態(tài)成員變量/函數(shù))

    4.【CPP】入門(初始化列表||explicit||static||友元||靜態(tài)成員變量/函數(shù))

    我們知道在c++11中才能在成員對象聲明時(shí)初始化,像下面這樣。 注意:構(gòu)造函數(shù)不是初始化,而是賦初始值。那么在c++11以前該怎么初始化成員變量呢? 每個(gè)成員變量在初始化列表中只能出現(xiàn)一次(初始化只能初始化一次) 類中包含以下成員,必須放在初始化列表位置進(jìn)行初始

    2024年01月20日
    瀏覽(28)
  • c++中static靜態(tài)成員變量和靜態(tài)成員函數(shù)、explcit和隱式類型轉(zhuǎn)換、友元函數(shù)()詳解

    聲明為 static 的類成員 稱為 類的靜態(tài)成員 ,用 static 修飾的 成員變量 ,稱之為 靜態(tài)成員變量 ;用 static 修飾 的 成員函數(shù) ,稱之為 靜態(tài)成員函數(shù) 。 靜態(tài)成員變量一定要在類外進(jìn)行初始化 ? 靜態(tài)成員 為 所有類對象所共享 ,不屬于某個(gè)具體的對象,存放在靜態(tài)區(qū) ? 靜態(tài)成

    2024年02月04日
    瀏覽(22)
  • C++中的static(靜態(tài))

    C++中的static(靜態(tài))

    2014年1月19日? ?內(nèi)容整理自The Cherno:C++系列 2014年1月20日? ?內(nèi)容整理自《程序設(shè)計(jì)教程:用C++語言編程 第三版》 陳家駿? 鄭滔 --------------------------------------------------------------------------------------------------------------------------------- static在C++中有2個(gè)意思,這取決于上下文

    2024年01月22日
    瀏覽(18)
  • 我在VScode學(xué)Java類與對象(Java顯式參數(shù)和隱式參數(shù)、靜態(tài)方法+main方法、Java訪問修飾符、static關(guān)鍵字、Java的包、對象數(shù)組)第三輯

    我在VScode學(xué)Java類與對象(Java顯式參數(shù)和隱式參數(shù)、靜態(tài)方法+main方法、Java訪問修飾符、static關(guān)鍵字、Java的包、對象數(shù)組)第三輯

    我的個(gè)人博客主頁:如果’\\\'真能轉(zhuǎn)義1??說1??的博客主頁 關(guān)于Java基本語法學(xué)習(xí)----可以參考我的這篇博客:《我在VScode學(xué)Java》 方法會(huì)操作對象并訪問他們的實(shí)例字段。 在Java中,顯式參數(shù)和隱式參數(shù)是方法調(diào)用中的兩種不同類型的參數(shù)。 注釋: 第7行: sum 方法的參數(shù)

    2024年02月16日
    瀏覽(115)
  • 探索Java中的靜態(tài)變量與實(shí)例變量:存儲(chǔ)區(qū)域、生命周期以及內(nèi)存分配方式的區(qū)別

    探索Java中的靜態(tài)變量與實(shí)例變量:存儲(chǔ)區(qū)域、生命周期以及內(nèi)存分配方式的區(qū)別

    ??歡迎來到Java面試技巧專欄~探索Java中的靜態(tài)變量與實(shí)例變量 ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁:IT·陳寒的博客 ??該系列文章專欄:Java面試技巧 文章作者技術(shù)和水平有限,如果文中出現(xiàn)錯(cuò)誤,希望大家能指正?? ?? 歡迎大家關(guān)注! ?? 在Java中,靜態(tài)變量

    2024年02月12日
    瀏覽(28)
  • 靜態(tài)內(nèi)部類的訪問方法(static/無static)

    筆記匯總: 《Java面向?qū)ο蟪绦蛟O(shè)計(jì)》學(xué)習(xí)筆記 用static修飾內(nèi)部類,可以直接通過內(nèi)部類類名訪問靜態(tài)內(nèi)部類。 沒有用static修飾內(nèi)部類,則需要new一個(gè)外部類實(shí)例,再通過外部實(shí)例創(chuàng)建內(nèi)部類。 外部類之外創(chuàng)建內(nèi)部類對象_new通過外部類創(chuàng)建內(nèi)部類對象_Dingwensheng1222的

    2024年02月14日
    瀏覽(15)
  • 使用Mockito模擬Static靜態(tài)方法

    Mockito3.4.0版本之后增加了對Static方法的支持,在這里簡單記錄下Mockito.mockStatic方法的用法 這是待測試的方法,用到了TestUtil.getString這個(gè)靜態(tài)方法,將使用Mockito改變他的返回值 測試方法使用到的靜態(tài)方法 他返回字符串本身,我們將通過Mockito改變他的返回值 Junit測試代碼,執(zhí)

    2024年02月02日
    瀏覽(123)
  • Java---類、static(靜態(tài))詳解

    類的定義格式如下: 例如: 例如: 1.3.1 封裝的步驟 使用 private 來修飾成員變量。 使用 public 修飾getter和setter方法。 1.3.2 封裝的步驟實(shí)現(xiàn) 1.private修飾成員變量 2.public修飾getter和setter方法 ????????static是靜態(tài)的意思。 static可以修飾成員變量或者修飾方法。 ????????

    2024年02月08日
    瀏覽(21)
  • java static修飾的靜態(tài)成員

    java static修飾的靜態(tài)成員

    靜態(tài)成員 特點(diǎn) : 靜態(tài)方法的 注意事項(xiàng) : 這里的 school 被 static 修飾 ??在這里我們 new 了兩個(gè)對象,但是我們在第二個(gè)new的對象 s2 中沒有輸入學(xué)校,school應(yīng)該為 null ,但是顯然有數(shù)據(jù),那是因?yàn)槲覀兊?static 修飾了school. 學(xué)的不是技術(shù),更是夢想?。?!

    2024年02月15日
    瀏覽(18)
  • 深入理解C++中的靜態(tài)(Static)關(guān)鍵字及其應(yīng)用場景

    在C++中,靜態(tài)(Static)是一個(gè)常見且重要的概念,用于描述變量、函數(shù)和類成員。它具有獨(dú)特的特性和作用域,可以在不同的應(yīng)用場景中發(fā)揮重要作用。本文將詳細(xì)討論C++中的靜態(tài),包括靜態(tài)變量、靜態(tài)函數(shù)和靜態(tài)類成員,并對其與全局變量之間的區(qū)別進(jìn)行分析

    2024年02月09日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包