您好,登錄后才能下訂單哦!
本篇內容主要講解“Java變量的概念有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java變量的概念有哪些”吧!
實例變量
實例變量又被稱為Instance variables。不使用 static 關鍵字定義,并且在任何方法、構造方法、塊之外的變量都是實例變量。實例變量都是基于特定實例的,實例變量不會在實例之間共享,也就是說,每一個對象的實例都有自己的一個實例變量。下面是實例變量的一個例子
class Fruits { public String fruitName; // 具有公共訪問權限的 fruitName; private int fruitNum; // 具有私有訪問權限的 fruitNum; }
你可以使用下面這種方式進行實例變量的調用
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. 如何識別實例變量
那么我如何知道一個變量它是實例變量呢?下面是一些關于實例變量的定義規則
實例變量可以使用四種訪問修飾符進行修飾:public、protected、default、private
實例變量可以使用 transient、final 關鍵字進行修飾
實例變量不可以使用 abstract、synchronized、strictfp、native、static關鍵字進行修飾
實例變量帶有默認值,也就是說,實例變量不用初始化就能使用。下面是常用實例變量的初始值
2. 實例變量的特點
上面我們了解了實例變量的基本特征和如何區分實例變量,下面我們來講一下實例變量的特點。
實例變量的只能在類中聲明,但是在方法、構造函數或任何塊之外。
當在為堆中對象分配空間時,將為每個實例變量分配一塊區域。
實例變量只能通過創建對象來使用,當使用 new 關鍵字進行創建對象時,實例變量同時也被創建,當垃圾回收器回收對象時,實例變量也會被銷毀。
實例變量可以使用訪問修飾符來修飾
實例變量不用強制初始化,它有自己的默認值。
每個對象都有自己的一個實例變量的副本,因此在一個對象中修改變量不會對其他對象中的實例變量造成影響
實例變量只能通過創建對象引用來使用。
二、全局變量
全局變量又被稱為Global variables。如果你有其他語言的編程經驗,比如 C、C++ 的話,你會接觸到全局變量這個概念,你可以使用下面代碼來創建全局變量
#include<stdio.h> // 全局變量 int A; int B; int Add() { return A + B; }
但是在 Java 中,是不存在全局變量的。因為 Java 是一門面向對象的編程語言,所有的內容都是屬于類的一部分。Java 這么做的原因是為了防止數據和類成員被其他程序的其他部分有意或者無意的修改。所以在 Java 中,使用 靜態變量 來起到全局訪問的目的。
三、靜態變量
靜態變量又被稱為Static variables。靜態變量的定義比較簡單,靜態變量是屬于該類的變量,它是由 static 關鍵字來修飾的。static 修飾的變量屬于靜態變量,它只能定義在類的內部、方法的外部。
靜態變量的特點:
靜態變量只能使用 static 關鍵字進行修飾,它不能在方法中進行聲明,不論是靜態方法還是非靜態方法。
靜態變量會在程序運行前進行初始化,并且只初始化一次。靜態變量會有一個初始化順序,我們后面說。
靜態變量的所有實例共享同一個副本。也就是說,靜態變量只有一個,它不會隨著對象實例的創建而進行副本拷貝
靜態變量可以通過類名.變量名 進行訪問,并且不需要創建任何對象就能訪問。
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); } }
可以在非靜態方法 中使用靜態變量
四、類變量
類變量又被稱為 Class variables在 Java 中,類變量就是靜態變量,它們都用 static 關鍵字進行修飾,所以,如果你再聽到說靜態變量的時候,它也就是類變量。
五、局部變量
還有一種說法,說 Java 中只有類變量、實例變量和局部變量。這么分也沒有問題,可能有人會問到,你把成員變量和常量放在哪了?別著急我們后面會說
先來說一下什么是局部變量:
局部變量又稱為 Local variables。它指的是在方法中、構造器中或者塊代碼中定義的變量。局部變量的生命周期隨方法、構造器、代碼塊的執行完畢而銷毀。
不管上面的一些變量概念如何變換、局部變量都站如松,坐如鐘,行如風,臥如弓,從容應對各種不同文章的比較。真是一個省事的變量。
那么這么好的東西我們可要仔細研究一下其特點是啥:
根據定義可知,局部變量定義在方法、構造器或者代碼塊中;
然后局部變量的生命周期隨方法、構造器、代碼塊的執行完畢而銷毀;
局部變量不能使用訪問修飾符,例如如下代碼
局部變量僅在方法的聲明、構造函數或者塊內可見,局部變量只能在調用這些方法、構造函數或者塊的內部使用
局部變量沒有默認值,所以局部變量應該在第一次使用或者聲明的時候就應該初始化完成
六、成員變量
什么?成員變量在 Java 中就是實例變量?這個結論對嗎?
常量
驗證過程為了驗證這個結論,我們求助于 stackoverflow 網站
我們搜索 java member variable and instance variable 就幫我們定位到了這個標題
大致意思是:什么是成員變量?成員變量和實例變量是否相同呢?我們下面有個回答
第一句就給出,實例變量和類變量都稱為成員變量,然后給出了 JDK 官網手冊對變量的定義。意思是在 Java 中,只有三種類型的變量
定義在類中的成員變量 --- 被稱為屬性
定義在方法(包含構造方法)或者塊代碼中的變量 --- 被稱為局部變量
定義在方法定義中的變量 --- 被稱為參數
嗯。。。或許還不是很好解決我們的問題,我帶著問題再次求助 JDK 官網手冊,又看到了關于 Variables 的定義
意思是在 Java 中,只有下面幾種類型的變量(別扯別的了,莫非你比官網還靠譜?)
實例變量(非靜態屬性) :大致意思就是說
非靜態屬性也就被稱為實例變量,因為它們的值是相對于每個實例來說的。換句話說,對于每個對象來講,實例變量的值都是唯一的;
類變量(靜態屬性):類變量就是使用 static 修飾符聲明的字段,這就會告訴編譯器:無論該類被實例化了多少次,該變量只存在一個副本。另外,可以添加關鍵字 final 來表示常量。
局部變量:沒有特殊的關鍵字將制定的變量聲明為局部變量、確定其聲明的完全取決于聲明變量的位置。
參數:想一下我們平常用到最多的方法是什么方法?當然是 main 方法啊,main 方法是怎么定義的?
public static void main(String[] args) {}
其中的 args 是不是就是 String 的數組的變量,我們也稱其為參數,所以參數也沒有關鍵字進行聲明,標識其為參數也只是取決于其聲明位置。
到此,相信大家對“Java變量的概念有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。