一、定義變量和聲明變量
在編程中,定義變量和聲明變量是兩個相關但不同的概念,尤其是在靜態類型的編程語言中。靜態類型的編程語言比如Java
1、聲明變量
(1)定義:聲明變量是指告訴編譯器變量的名字、類型和在某些情況下其存在的事實,但不分配內存空間
(2)特點:聲明變量可以出現在代碼的多個位置。特別是在具有作用域的概念的語言中,比如Java
(3)前向聲明:只聲明不定義變量的聲明變量的方式,它允許編譯器知道變量的存在,以便在后面的代碼中正確地引用該變量
(4)舉例:在Java中,非成員變量x,'int x;'則是聲明變量x為整型,但不為該變量分配內存空間和初始化
2、定義變量
(1)定義:定義變量是指不僅聲明變量,還為變量分配內存空間(實際創建變量的地方)
(2)特點:
- 定義變量伴隨著初始化。即使不顯示初始化,比如在定義類中的成員變量時,編譯器也會為變量分配空間,并根據變量類型為其賦予默認值
- 一個變量在任何作用域內只能被定義一次
(3)舉例:在Java中, 成員變量x,若顯示初始化,‘int x=10;'則是定義變量x為整型,并將變量x的值初始化為10;若不顯示初始化,‘int x;’則是定義變量x為整型,并將變量x的值默認初始化為0
3、小結
(1)聲明變量是告訴編譯器變量的信息,包括名稱、類型、某些事實
(2)定義變量是在聲明變量的基礎上,為變量分配內存并對其進行初始化
(3)定義了變量一定聲明了該變量,但聲明了變量不一定定義了該變量
二、定義類和聲明類
在Java中,不區分“聲明類”和“定義類”的概念,因為這兩個術語在Java的語境下是同義的。
1、定義類和聲明類
(1)“定義”一個類,指的是創建一個類的完整結構,包括訪問權限修飾符、類名、成員變量、構造方法、方法。
(2)因為Java不支持單獨的前向聲明,因此在Java中定義類的這個過程同時完成了聲明類的任務。
(3)一旦編寫了定義類的代碼,就定義了這個類的存在,同時也聲明了這個類的存在
3、舉例:定義一個類Person
public class Person {int age;public Person() {}public void oper(){}
}
在這個例子中,'Person'類的定義包含了訪問權限修飾符public、類名Person、成員變量age、構造方法Person()、方法oper()這5個必要元素,這個類的定義同時是這個類的聲明,因為它提供了類的全部信息。使得編譯器和Java虛擬機能夠理解和使用這個類
4、小結
在Java中,當我們說“定義一個類”時,通常是指創建了一個包含所有必要元素的完整類結構,這同時也完成了類的聲明