優點:語法
面向對象
內存管理
和最棒的跨平台可移植性
缺點:
慢
JVM Java(虛擬機)
編譯后的字節碼與平台無關。
你的朋友不會買一台真正的Java機器,但是他們都會有Java虛擬機(通過軟件實現)。此虛擬機可以讀取與執行字節碼。
你要做的事情
1.編寫源代碼文件,用Javac編譯程序把文件進行編譯,然后在某個Java虛擬機上執行編譯過的字節碼。
4步:1.源代碼Party.java 2.執行Javac程序來編譯Party.java。3.編譯成為代碼:Party.class 4.啟動Java虛擬機(JVM)來運行Party.class文件。JVM會將字節碼轉換成平台能夠理解的形式來運行。
J2ME(Micro Edition)
J2SE(Standard Edition)
J2EE(Enterprise Edition)
數組容器
String[] a = {"1", "2", "3", "4", "5"};
繼承、 覆蓋。
當你在設計類時,要記住對象是靠類的模型塑造出來的。
你可以這樣看:
1.對象是已知的事物
2.對象會執行的動作
對象本身已知的事物,被稱為實例變量。它們代表對象的狀態(數據),且該類型的每一個對象都會獨立的擁有一份該類型的值。
所以你也可以把對象當作實例。
對象可以執行的動作叫做方法。在設計類時,你也會設計出操作對象數據的方法。對象帶有讀取或操作實例變量的方法是很常見的情形。舉例來說,鬧鍾對象會有個變量來保存響鈴時間,且會有getTime()與setTime()這兩個方法來存取該時間。
因此說對象帶有實例變量和方法,但它們都是類設計中的一部分。
二、類和對象兩者之間的有什么不同?
類不是對象(卻是用來創建它們的模型)
類是對象的藍圖。它會告訴虛擬機如何創建某種類型的對象。根據某類創建出的對象都會有自已的實例變量。舉例來說,你可以根據按鈕類來創建出許多大小、顏色、文字等不同的按鈕。
也可以這樣說,對象就好比通信薄中的一筆數據,通信薄的每張卡片都有相同的空白字段(實例變量)。填入新的聯絡人就如同創建新的實例(對象),填入卡片的數據代表聯絡人的狀態。
這個卡片類上的方法就是你會對卡片作的事情:getTel()、changeAddress()、deleteCard()等。所以每張卡片上能夠執行相同的操作,但取出的結果應該是依每張卡片各自獨立的。
三、創建你的第一個對象
要作出哪些東西才會運用對象呢?你需要兩個類。(例如說Dog、AlarmClock和Television等)一個是要被操作於對象的類,另外一個是要來測試該類的類。測試用的類帶有main()並且你會在其中建立與存取被測的對象。
本章后續章節的內容會有許多雙類的范例。測試用的類會被命名為“受測試類的名稱”+ TestDrive。例如說要測試Bungee這個類,我們會作出一個帶有main()的BungeeTestDrive。它會創建出Bungee的對象,並使用圈點(.)符號所代表的操作數來存取該對象的變量與方法。看過下面的范例后就應該更清楚了。
1.編寫類
class Dog{
int size;
String breed;
String name;
void brak(){
System.out.println("Ruff, Ruff!");
}
}
2.編寫測試用的類
class DogTestDrive{
public static void main(String[] args){
//Dog測試碼
}
}
3.在測試用的類中建立對象並存取對象的變量和方法
class DogTestDrive{
public static void main(String[] args){
Dog d = new Dog();
d.size = 40;
d.bark();
}
}
如果你曾經學習過面向對象的話,你會知道我們並沒有用到封裝,第4章會討論這個問題。