java學習之三——java基礎入門
阿新 • • 發佈:2019-02-09
我會盡量讓這一章的內容不那麼枯燥,畢竟當初我是陷入了昏死狀態。。。(大神可以飄過~)———還沒死透的編者~
1、 計算?
編者自己認為有必要說一下的幾個計算符號
1.++,--
++的意思就是自己加1;如:
int i = 1; i++; //執行了i++以後,i的值就變成了2; i--; //執行了i--之後,i的值就變成了0; ++i; //加號在前面就先自加1,在執行計算,加號在後面先執行計算,在自加1; --i; //減號號在前面就先自減1,在執行計算,減號在後面先執行計算,在自減1;
為了方便理解,請看圖:
請仔細檢視程式碼和執行完成的結果。
我們來分析一下: 1. 變數a是i++,i在前面,上面我們說過,加號在後面就先執行計算,所以此次a=2;賦值完成後,i的值變成了3,最後自己加1自身。 2. 變數b是++i,加號在前面,所以先自身加1,i就等於4了,然後在賦值給b,所以b=4。 3. 最後輸出,所以a=2,b=4,i=4;
2.===
稱為”恆等”,要求資料型別和數值都相等。如:
int a = 1; long b = 2; if(a === b){ //a與b恆等 }else{ //a與b不恆等
}
3.&&
短路與:可以提高效率,以後開發可以使用短路與,只要遇見錯誤就不執行短路與下面的判斷。如:
int a = 1; int b = 2; if(a==1&&b==1){ //ture的程式碼快 //如果a==1成立,就直接執行true的程式碼快,不用判斷b==1,直接跳過。 }else{ //false的程式碼快 }
4.^
異或:相同為0,不同為1;
5.()
括號:括號是計算中最長用到的,大家是不是還在為計算符號的先後等級而糾結。別掙扎了。沒有什麼是括號不能解決的!如:
float a = a+5*8%2-2; //是不是一下子就懵了,這程式碼先後順序是啥啊,自己當初寫的,後來自己去看都不知道啥意思了。 //所以,強烈推薦大家多用括號。 float a = a+(5*(8%2))-2; //例子舉得可能不是很好,但是大家記住就是,多用空格來寫計算的程式碼,你自己一目瞭然,別人看著也不頭昏!
2、 迴圈
講2個經常用到的哈~
1.while
while迴圈的用法:
int a = 1; //初始化一個變數,賦值為0; while(a<=5){ //a<=5是這個while的條件,意為只要a<=5就繼續執行下面的程式碼塊操作。超過就不執行。 a++; //a自身加1; }
2.do…while
do…while和while差不多.唯一區別在於:
1. do…while先執行程式碼塊內容一次,在判斷。
2. while是先進行判斷,在執行程式碼快內容。
如:
//初始化一個變數,賦值為0; int a = 1; //先執行下面的程式碼一次,在進行判斷。 do{ //a自身加1; a++; //輸出a自加1後的值; System.out.println(a); }while(a<=5); //上面程式碼執行完成後,在判斷條件是否滿足,如果不滿足就繼續執行上面的程式碼塊內容,如果滿足了就結束迴圈。(注意:while括號後需要加分號) //-------------------------------------- 執行結果為: 2 3 4 5 6 //沒有1,因為一開始直接執行了a自加1.a就變成了2.
3、 跳出迴圈在迴圈中可以使用continue和break可以跳出、終止迴圈。如:
程式碼1: for(int i=1;i<=10;i++){ if(i=5){ break; } } System.out.println("執行完成"); 程式碼2: for(int i=1;i<=10;i++){ if(i=5){ continue; } } System.out.println("執行完成"); 解釋: //兩個程式碼的條件都是i自加到5的時候,才觸發成立條件。 //第一個程式碼的意思就是,一旦i為5了,直接跳出這個for迴圈,開始執行下面的程式碼,這裡下面的程式碼是輸出執行完成。 //第二個程式碼的意思是,一旦i為5了,就不執行當前迴圈,跳出當前迴圈次數,開始下一次的迴圈.也可以理解成,跳離離他最近的一個迴圈體.
2、 類、方法
在java中進行比較時,要注意分’內容比較’和’地址比較’。如:
int a = 1; int b = 2; if(a==b){ System.out.println("一樣"); }else{ System.out.println("不一樣"); } //上面的程式碼我們可以看出原本是打算對a的值和b的值進行比較,看是否一致. //但是這種實際是錯誤的,他們進行比較的是a在記憶體中開闢的地址,和b在記憶體中開闢的地址,來進行的比較。 //所以判斷出來,輸出的肯定是'不一樣'。
在這裡介紹一種在java中對字串進行匹配的方法函式:’equals’
String a = 'java'; if(a.equals("java")){ System.out.println("相同"); }else{ System.out.println("不相同"); } //分析一下 //上面的輸出結果肯定是'相同' //a.equals("這裡寫你對比的內容"),這裡對比的物件就是a.對比哪個就用哪個變數'name.equals("內容")' //注意!!!!!!!!!!!!!! //上面是常規寫法,但是我們不推薦那樣寫,推薦使用下面這種寫法 String a = 'java'; if("java".equals(a)){ System.out.println("相同"); }else{ System.out.println("不相同"); } //要對比的內容寫在前面,對比的變數寫在後面。 //這種辦法老師說的時候為了避免什麼輸入空值,導致程式停止執行.我也記不太清除了。。。反正大家這樣寫最好!
3、 方法的過載
方法名相同,傳參過來的個數或者型別不同。
方法的過載和返回值無關,和返回值型別有關。如:
//我們在這方法名取為:help public void help(){ //第一個方法,無傳入引數. System.out.println("A"); } public void help(String num){ //第二個方法,方法名一樣,傳入1個字串引數. System.out.println(num+"B"); } public void help(int num){ //第三個方法,方法名一樣,傳入一個整形引數. System.out.println(num+"C"); } //上面這種方法名一樣的,但是各自執行的程式碼是不一樣的,接收的引數也是不一樣的。這就叫'過載'. //比如呼叫的話 help(); //只是呼叫這個方法,就只會輸出A. help("haha");//這個傳參了一個字串過去,結果會輸出hahaB. help(123);//這個只傳了一個整形過去,結果會輸出123C. //由此我們可以看出,過載就是自己判斷是否接收引數,以及接收引數的型別、個數等。
4、 this
this.name; (this代表是當前物件例項。)如:
class New{ //新建了一個類,類名為:New int a = 1; //這個新建一個成員變數,也就是全域性變數. public test(){ int a =2; //區域性變數a System.out.println(this.a);//這裡使用this其實是呼叫的外部的成員變數a } >} //輸出結果為1.
5、 java編譯時生成說明書
做成文件的時候可能會遇到
1、 javadoc - d doc HellWorld.java //只生成文件 2、 javadoc -d doc -author HellWorld.java //生成文件時帶上作者資訊和版本號