個(gè)人博客地址:https://huchangwei.github.io
1腌零、Java的兩個(gè)基礎(chǔ)特性
(1)所有對(duì)象都是繼承字單根基類Object.
(2)只能以一種方式創(chuàng)建對(duì)象(在堆上創(chuàng)建).
2趣兄、常見(jiàn)總結(jié)
(1)Java的逗號(hào)表達(dá)式只能用于for語(yǔ)句里,如
for(int i = 0, j = i + 10; i<5 ; i++ )
{
;
}
(2)Java添加了foreach的用法,跟C++ STL里的范型極其類似,簡(jiǎn)單用法如下:
for(int i : range())
printnb(i + " ");
//:后面必須是一個(gè)數(shù)組,可以迭代數(shù)組的元素
(3)Java同樣支持構(gòu)造函數(shù),在Java里稱為構(gòu)造器睡榆,使用方法與C++是一樣的:
class Test{
Test(){PP
System.out.println("Test constructor");
}
//重載
Test(int i){
System.out.println("Test constructor" + i);
}
}
需要注意的是,如果沒(méi)有聲明構(gòu)造器Java會(huì)調(diào)用默認(rèn)的構(gòu)造器袍榆,但是如果已經(jīng)定義了構(gòu)造器(無(wú)論是否有參數(shù))胀屿,編譯器不會(huì)再自動(dòng)創(chuàng)建默認(rèn)構(gòu)造器,如:
class Test{
Test(int i){}
]
Test t = new Test();//會(huì)報(bào)錯(cuò)包雀,因?yàn)闆](méi)有這個(gè)構(gòu)造器
(4)static關(guān)鍵字:在static方法內(nèi)部不能調(diào)用非靜態(tài)方法宿崭,反過(guò)來(lái)可以調(diào)用。Java中禁止使用全局方法才写,static方法可以直接通過(guò)類調(diào)用葡兑,這點(diǎn)跟C++相同奖蔓,static方法內(nèi)部不存在this指針。
static初始化可以通過(guò)靜態(tài)塊中初始化讹堤,如:
static int j;
static {
j = 5;
}
(5)Java支持可變參數(shù)列表吆鹤,如:
public class Args{
static void printArray(Object... args){
for(Object obj: args){
System.out.print(obj + " ");
}
}
public static void main(String[] args){
printArray(1, 2, 3);
printArray("a", "b", "c");
}
}
(6)public的類要放到單獨(dú)的一個(gè)文件里面去,并以該類名作為文件名洲守,如:
//Test.java
//編譯出錯(cuò)
public class Test{
}
public class Hello{
}
要想在同一個(gè)文件聲明多個(gè)類疑务,只能有一個(gè)public,private梗醇,protectes不能修飾類知允,只能修飾方法和變量:
//Test.java
//合法
public class Test{
}
class Hello{
}
(7)Java與C++有個(gè)重要的不同,Java的每個(gè)類都可以含有自己的main函數(shù)叙谨,并且其他類可以調(diào)用其main函數(shù)温鸽,這個(gè)特性可使得每個(gè)類的單元測(cè)試都變得簡(jiǎn)便易行。而且在完成單元測(cè)試之后唉俗,也無(wú)需刪除main()嗤朴,可以留待下次單元測(cè)試。