Java是由SUN公司開發成功的新一代程式設計語言,它最大的特點就是:使用它可在各式各樣不同的機器,不同的操作平台的網路環境中開發軟體,具有可移植性,高度的安全性,簡單,與體繫結構無關,動態執行等一系列特點,Java正逐步成為Internet應用的主要的開發語言。
今天我們來討論一下Java語言當中的對象的概念
萬事萬物皆對象:
Java在程式語言設計上,徹底假設使用者僅以物件導向模式來進行程式設計,在Java中,有一個十分重要的觀念:萬事萬物皆對象,即使Java程式本身,也是一個對象。
1.操控對象的reference:
reference和對象之間的關係,好比電視和遙控器,你可以擁有某referenc,但不見得要串連至某個對象,如果你想產生一個string reference:
例如:string s;
這樣話你就產生了一個reference,但不會產生實際對象,這時,你多半想將它串連到某個新產生的對象去,可以通過new來完成。
例如:string s = new string ("asdf")
2.class:
實際上Java裡你需要做的事情無非就是:定義class,產生對象,將訊息發送給對象。如果一切都是對象,為瞭解決某一類對象的特徵,我們需要對其進行定義,這就是class.
例如:class atypename{/*class body*/}
atypename a = new atypename ();
若要指定其資料成語的值,可以用句號來指定,再接成員的名稱:
例如:
class dateonly
{
int i;
float f;
boolean b;
}
dateonly d = new dateonly ( ) ;
d.i = 47;
d.f = 1.1f;
d.b = false;
不同於C++的是,在Java中,當變數是class內的基本類型(primitive type) 時,Java將保證它100%有一個省缺值,但若變數只是某個函數定義區內的局域變數時,變數將不會被初始化,你需要給他一個適當值,如果你忘了,Java編譯器將在編譯時間,認定其為錯誤,而C++編譯器只會對未初始化的變數給予警告。
3.引用組件(import):
例如:import java.until.arraylist表示你想使用arraylist class,你還可以用*來代替arraylist,以避免逐一聲明(雖然方便,但影響編譯時間)
4."牧羊人"函數 static:
在Java裡,一般情況下,你需要產生某個對象,再通過該對象取用其資料和
函數,但若將某個函數或資料聲明為static.它將不在局限與所需的class object,即使沒有任何object,外界還是可以調用其static函數。
例如:
class statictest { static int i = 47; }
statictest st = new statictest ( );
這裡st.i和statictest.i作用相同,他們共同指向一塊記憶體。
class staticfun
{
static void incr( ) { stitictest.i++ }
}
staticfun sf = new staticfun ( );
無論是通過對象----sf.incr()還是直接通過class---staticfun,incr ( )調用都是一樣的 。