溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java變量的概念有哪些

發(fā)布時間:2021-11-02 11:43:32 來源:億速云 閱讀:107 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“Java變量的概念有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Java變量的概念有哪些”吧!

實(shí)例變量

實(shí)例變量又被稱為Instance variables。不使用 static  關(guān)鍵字定義,并且在任何方法、構(gòu)造方法、塊之外的變量都是實(shí)例變量。實(shí)例變量都是基于特定實(shí)例的,實(shí)例變量不會在實(shí)例之間共享,也就是說,每一個對象的實(shí)例都有自己的一個實(shí)例變量。下面是實(shí)例變量的一個例子

class Fruits {      public String fruitName; // 具有公共訪問權(quán)限的 fruitName;   private int fruitNum;   // 具有私有訪問權(quán)限的 fruitNum;    }

你可以使用下面這種方式進(jìn)行實(shí)例變量的調(diào)用

public class Fruits {      public String fruitName;     private int fruitNum;      public static void main(String[] args) {         Fruits fruits = new Fruits();         fruits.fruitName = "strawberry";         fruits.fruitNum = 100;     } }

1. 如何識別實(shí)例變量

那么我如何知道一個變量它是實(shí)例變量呢?下面是一些關(guān)于實(shí)例變量的定義規(guī)則

  • 實(shí)例變量可以使用四種訪問修飾符進(jìn)行修飾:public、protected、default、private

  • 實(shí)例變量可以使用 transient、final 關(guān)鍵字進(jìn)行修飾

  • 實(shí)例變量不可以使用 abstract、synchronized、strictfp、native、static關(guān)鍵字進(jìn)行修飾

實(shí)例變量帶有默認(rèn)值,也就是說,實(shí)例變量不用初始化就能使用。下面是常用實(shí)例變量的初始值

Java變量的概念有哪些

2. 實(shí)例變量的特點(diǎn)

上面我們了解了實(shí)例變量的基本特征和如何區(qū)分實(shí)例變量,下面我們來講一下實(shí)例變量的特點(diǎn)。

  • 實(shí)例變量的只能在類中聲明,但是在方法、構(gòu)造函數(shù)或任何塊之外。

  • 當(dāng)在為堆中對象分配空間時,將為每個實(shí)例變量分配一塊區(qū)域。

  • 實(shí)例變量只能通過創(chuàng)建對象來使用,當(dāng)使用 new 關(guān)鍵字進(jìn)行創(chuàng)建對象時,實(shí)例變量同時也被創(chuàng)建,當(dāng)垃圾回收器回收對象時,實(shí)例變量也會被銷毀。

  • 實(shí)例變量可以使用訪問修飾符來修飾

  • 實(shí)例變量不用強(qiáng)制初始化,它有自己的默認(rèn)值。

  • 每個對象都有自己的一個實(shí)例變量的副本,因此在一個對象中修改變量不會對其他對象中的實(shí)例變量造成影響

  • 實(shí)例變量只能通過創(chuàng)建對象引用來使用。

二、全局變量

全局變量又被稱為Global variables。如果你有其他語言的編程經(jīng)驗(yàn),比如 C、C++  的話,你會接觸到全局變量這個概念,你可以使用下面代碼來創(chuàng)建全局變量

#include<stdio.h>   // 全局變量  int A;  int B;   int Add()  {   return A + B;  }

但是在 Java 中,是不存在全局變量的。因?yàn)?Java 是一門面向?qū)ο蟮木幊陶Z言,所有的內(nèi)容都是屬于類的一部分。Java  這么做的原因是為了防止數(shù)據(jù)和類成員被其他程序的其他部分有意或者無意的修改。所以在 Java 中,使用 靜態(tài)變量 來起到全局訪問的目的。

三、靜態(tài)變量

靜態(tài)變量又被稱為Static variables。靜態(tài)變量的定義比較簡單,靜態(tài)變量是屬于該類的變量,它是由 static 關(guān)鍵字來修飾的。static  修飾的變量屬于靜態(tài)變量,它只能定義在類的內(nèi)部、方法的外部。

靜態(tài)變量的特點(diǎn):

靜態(tài)變量只能使用 static 關(guān)鍵字進(jìn)行修飾,它不能在方法中進(jìn)行聲明,不論是靜態(tài)方法還是非靜態(tài)方法。

Java變量的概念有哪些

  • 靜態(tài)變量會在程序運(yùn)行前進(jìn)行初始化,并且只初始化一次。靜態(tài)變量會有一個初始化順序,我們后面說。

  • 靜態(tài)變量的所有實(shí)例共享同一個副本。也就是說,靜態(tài)變量只有一個,它不會隨著對象實(shí)例的創(chuàng)建而進(jìn)行副本拷貝

  • 靜態(tài)變量可以通過類名.變量名 進(jìn)行訪問,并且不需要創(chuàng)建任何對象就能訪問。

  • public class Fruits {      public String fruitName;     private int fruitNum;     static String fruitType;      public static void main(String[] args) {         Fruits.fruitType = "apple"; // 類名.變量名         System.out.println(fruitType);     } }
  • 可以在非靜態(tài)方法 中使用靜態(tài)變量

四、類變量

類變量又被稱為 Class variables在 Java 中,類變量就是靜態(tài)變量,它們都用 static  關(guān)鍵字進(jìn)行修飾,所以,如果你再聽到說靜態(tài)變量的時候,它也就是類變量。

五、局部變量

還有一種說法,說 Java 中只有類變量、實(shí)例變量和局部變量。這么分也沒有問題,可能有人會問到,你把成員變量和常量放在哪了?別著急我們后面會說

先來說一下什么是局部變量:

局部變量又稱為 Local  variables。它指的是在方法中、構(gòu)造器中或者塊代碼中定義的變量。局部變量的生命周期隨方法、構(gòu)造器、代碼塊的執(zhí)行完畢而銷毀。

不管上面的一些變量概念如何變換、局部變量都站如松,坐如鐘,行如風(fēng),臥如弓,從容應(yīng)對各種不同文章的比較。真是一個省事的變量。

那么這么好的東西我們可要仔細(xì)研究一下其特點(diǎn)是啥:

  • 根據(jù)定義可知,局部變量定義在方法、構(gòu)造器或者代碼塊中;

  • 然后局部變量的生命周期隨方法、構(gòu)造器、代碼塊的執(zhí)行完畢而銷毀;

  • 局部變量不能使用訪問修飾符,例如如下代碼

  • Java變量的概念有哪些

  • 局部變量僅在方法的聲明、構(gòu)造函數(shù)或者塊內(nèi)可見,局部變量只能在調(diào)用這些方法、構(gòu)造函數(shù)或者塊的內(nèi)部使用

  • 局部變量沒有默認(rèn)值,所以局部變量應(yīng)該在第一次使用或者聲明的時候就應(yīng)該初始化完成

  • Java變量的概念有哪些

六、成員變量

什么?成員變量在 Java 中就是實(shí)例變量?這個結(jié)論對嗎?

常量

驗(yàn)證過程為了驗(yàn)證這個結(jié)論,我們求助于 stackoverflow 網(wǎng)站

Java變量的概念有哪些

我們搜索 java member variable and instance variable 就幫我們定位到了這個標(biāo)題

大致意思是:什么是成員變量?成員變量和實(shí)例變量是否相同呢?我們下面有個回答

Java變量的概念有哪些

第一句就給出,實(shí)例變量和類變量都稱為成員變量,然后給出了 JDK 官網(wǎng)手冊對變量的定義。意思是在 Java 中,只有三種類型的變量

  • 定義在類中的成員變量 --- 被稱為屬性

  • 定義在方法(包含構(gòu)造方法)或者塊代碼中的變量 --- 被稱為局部變量

  • 定義在方法定義中的變量 --- 被稱為參數(shù)

嗯。。。或許還不是很好解決我們的問題,我?guī)е鴨栴}再次求助 JDK 官網(wǎng)手冊,又看到了關(guān)于 Variables 的定義

Java變量的概念有哪些

意思是在 Java 中,只有下面幾種類型的變量(別扯別的了,莫非你比官網(wǎng)還靠譜?)

  • 實(shí)例變量(非靜態(tài)屬性) :大致意思就是說

  • Java變量的概念有哪些

  • 非靜態(tài)屬性也就被稱為實(shí)例變量,因?yàn)樗鼈兊闹凳窍鄬τ诿總€實(shí)例來說的。換句話說,對于每個對象來講,實(shí)例變量的值都是唯一的;

  • 類變量(靜態(tài)屬性):類變量就是使用 static 修飾符聲明的字段,這就會告訴編譯器:無論該類被實(shí)例化了多少次,該變量只存在一個副本。另外,可以添加關(guān)鍵字  final 來表示常量。

  • 局部變量:沒有特殊的關(guān)鍵字將制定的變量聲明為局部變量、確定其聲明的完全取決于聲明變量的位置。

  • 參數(shù):想一下我們平常用到最多的方法是什么方法?當(dāng)然是 main 方法啊,main 方法是怎么定義的?

  • public static void main(String[] args) {}

其中的 args 是不是就是 String 的數(shù)組的變量,我們也稱其為參數(shù),所以參數(shù)也沒有關(guān)鍵字進(jìn)行聲明,標(biāo)識其為參數(shù)也只是取決于其聲明位置。

到此,相信大家對“Java變量的概念有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI