亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java學(xué)習(xí)之局部變量、成員變量舉例詳解

 更新時(shí)間:2025年02月18日 10:16:51   作者:Code哈哈笑  
這篇文章主要介紹了Java中的成員變量和局部變量,包括它們的定義、特點(diǎn)、初始化、作用域和生命周期等,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

1. 什么是成員變量?什么是局部變量?

局部變量成員變量是兩種常見的變量類型,它們在作用域、生命周期、初始化等方面有顯著的區(qū)別。理解這兩者的區(qū)別對于編寫清晰和高效的 Java 程序至關(guān)重要。

  • 創(chuàng)建局部變量,然后打印局部變量:

    public static void main(String[] args){
            String brand; // 品牌
            String color ;  // 顏色
            int memory;  // 內(nèi)存
            System.out.println("brand:"+ brand);
            System.out.println("color:"+ color);
            System.out.println("memory:"+ memory);
    
        }
    

    不初始化就會(huì)報(bào)錯(cuò)。

  • 創(chuàng)建一個(gè)類,在類中創(chuàng)建成員變量,然后創(chuàng)建對象,打印出對象的成員變量:

    public class Phone {
        String brand; // 品牌
        String color ;  // 顏色
        int memory;  // 內(nèi)存
    
    
        // 程序的開始
        public static void main(String[] args){
            Phone p = new Phone();
            System.out.println("brand:"+ p.brand);
            System.out.println("color:"+p.color);
            System.out.println("memory:"+p.memory);
    
        }
    }
    
    

    不初始化,而打印出了值。

通過上述的兩個(gè)測試,我們可以發(fā)現(xiàn),在類中創(chuàng)建的成員變量有默認(rèn)值,即,成員變量不用初始化就會(huì)有一個(gè)值,而局部變量必須手動(dòng)賦值。

2. 成員變量

2.1 定義和特點(diǎn)

成員變量是類中的字段(屬性),它們是類的組成部分。

成員變量有兩種類型

  • 實(shí)例變量 (Instance Variables):屬于類的實(shí)例(對象),每個(gè)對象有一份獨(dú)立的實(shí)例變量。
  • 類變量 (Class Variables):使用 static 關(guān)鍵字聲明,屬于類本身,而不是類的任何實(shí)例。

2.2 實(shí)例變量

  • 實(shí)例變量是類中定義的字段,每個(gè)類的實(shí)例(對象)都有自己的實(shí)例變量副本。
  • 實(shí)例變量在對象創(chuàng)建時(shí)被分配內(nèi)存,每個(gè)對象都有獨(dú)立的實(shí)例變量。
  • 實(shí)例變量具有默認(rèn)值:如果未顯式初始化,實(shí)例變量會(huì)根據(jù)其類型自動(dòng)賦予默認(rèn)值(例如,int 類型默認(rèn)為 0,boolean 默認(rèn)為 false,對象引用類型默認(rèn)為 null)。
  • 實(shí)例變量在類的實(shí)例化期間存在,當(dāng)對象被銷毀時(shí),實(shí)例變量也會(huì)被銷毀。

示例:

public class Example {
    private int x;  // 實(shí)例變量 默認(rèn)值為0

    public void printX() {
        System.out.println(x);  // 訪問實(shí)例變量
    }
}

在這個(gè)例子中,x 是實(shí)例變量。每當(dāng)你創(chuàng)建一個(gè) Example 對象時(shí),都會(huì)為每個(gè)對象分配一個(gè) x 變量,并且每個(gè)對象有自己的 x 值。

2.3 類變量

  • 類變量使用 static 關(guān)鍵字聲明,它們屬于類本身,而不是類的實(shí)例。
  • 類變量在類加載時(shí)就會(huì)被初始化,并且所有類的實(shí)例共享同一個(gè)類變量。
  • 類變量有默認(rèn)值,如果未顯式初始化,它們也會(huì)被賦予默認(rèn)值(與實(shí)例變量相同)。

示例:

public class Example {
    static int count;  // 類變量

    public void increment() {
        count++;  // 訪問類變量
    }
}

在這個(gè)例子中,count 是類變量。所有Example 類的實(shí)例共享同一個(gè) count 變量,類變量在類加載時(shí)初始化。

2.4 成員變量的默認(rèn)值

數(shù)據(jù)類型默認(rèn)值
byte0
char‘\u0000’
short0
int0
long0L
booleanfalse
float0.0f
double0.0
referencenull

3. 局部變量

3.1 定義和特點(diǎn)

  • 局部變量是在方法、構(gòu)造方法、或者代碼塊內(nèi)定義的變量。
  • 局部變量的作用域僅限于它們被聲明的代碼塊或方法。
  • 局部變量沒有默認(rèn)值,必須在使用前初始化。
  • 局部變量的生命周期從其定義開始,到方法或者代碼塊執(zhí)行完畢時(shí)結(jié)束。換句話說,局部變量只存在于方法或代碼塊的執(zhí)行過程中,一旦方法返回或代碼塊執(zhí)行完畢,局部變量會(huì)被銷毀。

3.2 示例和說明

public class Example {
    public void myMethod() {
        int x = 10;  // x 是局部變量 必須要被初始化
        System.out.println(x);  // 可以使用局部變量
    }
}

在這個(gè)例子中,x 是局部變量,它只在 myMethod() 方法內(nèi)部存在。當(dāng)方法執(zhí)行完畢,x 會(huì)被銷毀。

關(guān)鍵特點(diǎn)

  • 作用域:局部變量的作用域限制在其所在的方法、構(gòu)造方法或代碼塊內(nèi)。
  • 初始化:局部變量在使用前必須被顯式初始化。否則,編譯器會(huì)報(bào)錯(cuò)。
  • 生命周期:局部變量的生命周期是方法或者代碼塊的執(zhí)行周期,即方法/代碼塊開始執(zhí)行時(shí)創(chuàng)建,結(jié)束時(shí)銷毀。

注意事項(xiàng)

  • 局部變量的作用域僅限于方法內(nèi),因此它不能被方法外部訪問。
  • 局部變量不能聲明為 static,因?yàn)樗纳芷谂c方法的調(diào)用有關(guān),而不是與類的實(shí)例或類本身的生命周期有關(guān)。

4. 局部變量 vs 成員變量

特性局部變量成員變量 (實(shí)例變量/類變量)
定義位置方法、構(gòu)造器、代碼塊中類中,方法外
初始化必須顯式初始化會(huì)自動(dòng)初始化為默認(rèn)值(實(shí)例變量/類變量)
作用域僅限于所在的方法/代碼塊實(shí)例變量:限于對象;類變量:限于類
生命周期方法/代碼塊執(zhí)行期間實(shí)例變量:對象的生命周期;類變量:類的生命周期
訪問修飾符無法使用訪問修飾符可以使用訪問修飾符 public、private 等
是否與類相關(guān)實(shí)例變量與對象相關(guān);類變量與類本身相關(guān)
靜態(tài)關(guān)鍵字不可以是 static類變量必須是 static

局部變量:只在方法、構(gòu)造方法、或代碼塊內(nèi)有效,必須顯式初始化,并且生命周期僅限于方法或代碼塊執(zhí)行時(shí)。

成員變量:包括實(shí)例變量和類變量,實(shí)例變量屬于對象,類變量屬于類,成員變量有默認(rèn)值,生命周期較長,且可以使用訪問修飾符來控制訪問權(quán)限。

總結(jié)

到此這篇關(guān)于Java學(xué)習(xí)之局部變量、成員變量的文章就介紹到這了,更多相關(guān)Java局部變量、成員變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • hibernate4基本配置方式詳解

    hibernate4基本配置方式詳解

    這篇文章給大家?guī)砹薶ibernate4基本配置方式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的額朋友參考下吧
    2017-09-09
  • Java中五種不同方法的創(chuàng)建對象

    Java中五種不同方法的創(chuàng)建對象

    本文為大家詳細(xì)介紹了在Java中5種不同創(chuàng)建對象的方法和實(shí)例代碼,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Java實(shí)現(xiàn)ArrayList排序的方法詳解

    Java實(shí)現(xiàn)ArrayList排序的方法詳解

    Java中常見的ArrayList排序方法主要為三種:JDK8的stream、Comparator#compare()和Comparable#compareTo(),本文將詳解這三者的使用,需要的可以參考一下
    2022-05-05
  • 解析Java中所有錯(cuò)誤和異常的父類java.lang.Throwable

    解析Java中所有錯(cuò)誤和異常的父類java.lang.Throwable

    這篇文章主要介紹了Java中所有錯(cuò)誤和異常的父類java.lang.Throwable,文章中簡單地分析了其源碼,說明在代碼注釋中,需要的朋友可以參考下
    2016-03-03
  • java如何讀取某個(gè)文件夾中的全部文件(包括子文件夾)

    java如何讀取某個(gè)文件夾中的全部文件(包括子文件夾)

    這篇文章主要介紹了java如何讀取某個(gè)文件夾中的全部文件(包括子文件夾),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • springboot整合freemarker的踩坑及解決

    springboot整合freemarker的踩坑及解決

    這篇文章主要介紹了springboot整合freemarker的踩坑及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • nacos使用占位符${}進(jìn)行參數(shù)配置的方法

    nacos使用占位符${}進(jìn)行參數(shù)配置的方法

    這篇文章主要介紹了nacos如何使用占位符${}進(jìn)行參數(shù)配置,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Hadoop上Data Locality的詳解

    Hadoop上Data Locality的詳解

    這篇文章主要介紹了 Hadoop上Data Locality的詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • 使用Java實(shí)現(xiàn)加密之AES加解密

    使用Java實(shí)現(xiàn)加密之AES加解密

    這篇文章主要介紹了使用Java實(shí)現(xiàn)加密之AES加解密,AES為最常見的對稱加密算法,對稱加密算法也就是加密和解密用相同的密鑰,需要的朋友可以參考下
    2023-05-05
  • 如何從request中獲取body的數(shù)據(jù)

    如何從request中獲取body的數(shù)據(jù)

    這篇文章主要介紹了如何從request中獲取body的數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論