201771010108《面向對象程序設計(java)》第二週學習總結java
第一部分:理論知識學習部分算法
第三章:Java的基本程序設計結構數組
1.標識符:① 標識符由字母、下劃線、美圓符號和數字組成, 且第一個符號不能爲數字。數據結構
②標識符可用做: 類名、變量名、方法名、數組名、文件名等。app
2. 關鍵字:①關鍵字就是Java語言中已經被賦予特定意義 的一些單詞。函數
②常見有:class、public、try、catch、if、 float、import、void等。學習
③關鍵字不作變量名。測試
3. 註釋:Java有三種註釋的方式:ui
① // 註釋內容由//一直到此行結束。spa
② /*和*/ 定義一個註釋塊。
③ /**開始,*/結束 這種註釋方法可用來自動產生文檔。
4.數據結構:
①Java是一種強類型語言。這意味着每個變量必 須聲明一種爲類型。
②Java共有8種基本類型
– 整數類型(int、short、long、byte)
– 浮點類型(float、double)
– 字符類型 (char)
– 布爾類型(boolean)
5. 整數類型:
①整型常量表示: 十進制:123, 6000
八進制:077, 065
十六進制:0x234, 0xab12
②整型變量的數據類型分爲四種: int short long byte
③Java中整數的範圍與運行Java代碼的機器無關。
④Java中沒有unsigned類型 。
6.浮點類型:
①Java中有兩種浮點類型: float double
②浮點常量的表示: 小數表示 430.2
科學計數 4.302E2
③表示溢出和出錯的三種特殊的浮點數值: 正無窮大
負無窮大
NaN(非數字)
7.布爾類型:
①常量 true、false
②變量的定義 boolean x; boolean x,y;
③定義同時可賦值 boolean x=true, y=false;
④在Java中,布爾值和整數不能相互轉換。
8.變量初始化:
① 一個變量聲明後,必須經過賦值語句對它進行明確的初始 化——永遠不要使用一個未初始化的變量的值。
②在Java中,能夠在代碼的任何位置進行變量聲明。變量的聲明儘量地靠近變量第一次使用的地方,這是一種良 好的程序編寫風格。
③在Java中,不能在同一做用域內聲明兩個同名的變量。
9.各類運算符:
①算術運算符
②自增運算符與自減運算符
③關係運算符
④邏輯運算符
⑤位運算符
10. 數學函數與常量:
①數學函數包含在Math類中。
– 冪函數
– 三角函數
– 指數函數及它的反函數等
②Java還提供了兩個常量。
– Math.PI
– Math.E
③若不想在數學方法名和常量名前加前綴 「Math.」,可在源文件頂部加上如下代碼便可。
– import static java.lang.Math.*;
11.類型轉化:
12.字符串:
①Java字符串是Unicode字符的序列,它是組織字符的基本數據結構,用法相似於字符數組。 ②有內置的字符串類型,而是在標準Java類庫中提供了一 個Java預約義類String。
在Java中,字符串被看成對象來處理。
③程序中須要用到的字符串能夠分爲兩大類:
– 建立以後不會再作修改和變更的不可變字符串String類;
– 建立以後容許再作更改和變化的構建字符串StringBuilder類。
13.字符串常量:
①使用「」定義字符串。
– 「abc」,「歡迎使用Java」都是字符串。
② Java會自動爲字符串常量生成一個String類的對象,因此能夠直接初始化String對象。
如:String s = 「Hello world!」
14. String類
①使用「」定義字符串。
– 「abc」,「歡迎使用Java」都是字符串。
②Java會自動爲字符串常量生成一個String類的對象, 因此能夠直接初始化String對象。
如:String s = 「Hello world!」
15.讀取輸入:
①經過控制檯進行輸入時,須要構造一個Scanner對象,並 與「標準輸入流」System.in關聯。 – Scanner in = new Scanner(System.in);
②因爲Scanner類輸入是可見的,因此不適用於從控制檯讀取密碼。Java SE 6.0特別引入Console類實現這個目的。
16.格式化輸出:
①使用System.out.print(x)將數值x輸出到控制檯上, 這條命令將以x對應的數據類型所容許的最大非0數字 位數打印輸出x。
②Java SE 5.0沿用了C語言庫函數中的printf方法, System.out.printf()。
– 用於printf的轉換符
– 用於printf的標誌
③ printf方法中日期和時間的格式化輸出
– 日期和時間的轉換符
17.文件輸入與輸出:
①要想對文件進行讀取,就須要一個用File對象構 造一個Scanner對象。
好比: – Scanner in = new Scanner(new File(「myfile.txt」));
②要想寫入文件,就須要構造一個PrintWriter對象,在構造器中,只需提供文件名:
– PrintWriter out = new PrintWriter(「myfile.txt」);
18. 幾點注意:
①表達式值、常量i的值爲整型,不能是字符串。
②常量i != 常量j
③執行:先計算表達式值,若與常量i相同,則 執行語句序列i;若都不相同,則執行語句序 列n+1。
④注意case子句後的break!!
19.循環語句:
循環語句分爲三種: while
do-while
for
20.中斷控制流程語句
①break 做用:結束整個循環的執行,轉到下一語句。
②continue 做用:結束本次循環,開始下一次循環。
注意:(1)Java中沒有goto語句!!!
(2)Java中提供了一種帶標籤的break語句, 用於跳出多重嵌套的循環語句。
21.返回語句:
①Java的返回語句與Java的方法緊密相關,當程序執行到此語句時,將當即返回上一級方法。
②格式:return value;
22.大數值:
①若是基本的整型和浮點型數據沒法達到要求的精度,那麼可使用 java.math 包中的兩個類,BigInteger和BigDecimal。這兩個類能夠操做任意長的數字。
②BigInteger類實現了任意精度的整數運算,BigDecimal實現了任意精度的浮點運算。
23.數值:
①數組是一種數據結構,它是有序數據的集合,數組中的每一個元素的數據類型都是相同的。 ②對元素的肯定是由數組名和它的下標實現的,
如a[0]表明數組a的第一個元素,
a[1]表明數組 a的第二個元素,依次類推。
24.數組的聲明:
①一維數組格式: 數組元素類型 數組名字[]; 數組元素類型[] 數組名字;
②二維數組格式: 數組元素類型 數組名字[][]; 數組元素類型[][] 數組名字;
③其中數組元素類型能夠爲Java中的任意類型,包括基 本類型和複合類型
25.一維數組的初始化:
①在聲明數組的同時對數組的元素進行初始化,
例如: int[] smallPrimes = {2, 3, 5, 7, 11, 13};
②會自動按照所給的初值的個數,算出數組的長度, 並分配相應的空間。
③在Java中,能夠初始化一個匿名數組。
例如: new int[] {17, 19, 23, 29, 31,37}
④使用這種語法形式能夠在不建立新變量的狀況下從新初始化一個數組。
例如: smallPrimes = new int[] {17, 19, 23, 29, 31,37};
26.多維數組的初始化:
①系統會自動根據初始值的大小計算出數組的大小。
例如:int[][] magicSquare={ {16, 3, 2, 13 }, {5, 10, 11, 8}, {9, 6, 7, 12}, {4, 15, 14, 1} };
②Java語言中,二維數組被看做數組的數組,把數組看成對象來處理。
27.多維數組:
①在程序設計時,若是須要存儲二維表格數據,其中每一個數據的類型是同樣的,可採用二維數組。
②對二維數組的每一個元素賦值通常是經過嵌套的二重循環來進行。
28.不規則則數組:
①Java可使用不規則數組,即數組的每一行有不一樣的長度。
②在建立不規則數組時,從最高維開始分別爲每一維數組分配空間。
例如:String a[][]=new String[2][];
a[0]=new String[2];
a[1]=new String[3];
a[0][0]=new String(「good」);
a[0][1]=new String(「luck」);
a[1][0]=new String(「to」);
a[1][1]=new String(「your」);
a[1][2]=new String(「family」);
29.數組總結:
①數組使用以前要肯定大小,能夠在程序中根據須要動態生成數組(如用表達式計算出大小)。
②一旦生成數組,大小不可改變。Java不支持變長數組。
③數組的屬性—length : 數組元素的個數。
④Java中的數組做爲一種對象類型,能夠做爲方法的參數,方法調用時傳的是指向數組的引用。
⑤ArrayIndexOutOfBoundsException異常。
第二部分:實驗部分
1、實驗目的與要求
(1)進一步熟悉命令行和IDE兩種方式下java程序開發的基本步驟;
(2)掌握Eclipse集成開發環境下導入Java源程序的過程;
(3)掌握Java語言構造基本程序的數據類型、變量、運算符、各種表達式、輸入輸出、流程控制的基本語法;
(4)掌握String類、StringBuilder類、數組類的用法。
2、實驗內容和步驟
實驗1:編寫java 應用程序,輸出如下4個表達式的值。
int i=1; double d=1.0; (1) 45+45*50%i-- (2) 1.5*3+d++ (3) (true)&&(3>4) (4) (i>0)||(i<0) |
①新建一個Java項目,再建一個類,以下圖所示:
②輸入實驗一的程序,如圖所示:
③實驗結果以下圖所示:
實驗2:編寫包含如下代碼片斷的java應用程序,輸出字符串類對象s3的值。
String s1=「Hello!」; String s2=「World」; String s3=s1+s2; |
①作該實驗能夠將上個實驗的代碼前加//,但這僅僅是一種知識,不建議新學者使用,以下圖:
②實驗二的代碼以下圖所示:
③實驗結果以下圖所示:
實驗3:更改實驗2中s一、s二、s3爲StringBuilder類對象,觀察程序運行結果並與實驗2結果進行對比,理解String類對象與StringBuilder類對象的區別。
①實驗代碼以下圖:
②實驗結果以下圖所示:
實驗4:在命令行方式下調試運行下列程序,理解java應用程序命令行參數的用法。
public class Message { public static void main(String[] args) { if (args[0].equals(「-h」)) System.out.print(「Hello」); else if(args[0].equals(「-g」); System.out.print(「goodbye,」); for(int i=1;i<args.length;i++) System.out.print(「 」+args[i]); System.out.println(「!」); } } |
①新建一個文本文檔,並將下圖代碼複製到文本中,並將其保存到d盤中,命名爲Message.java
②在命令提示符中運行結果以下所示:
實驗5:Eclipse環境下導入第3章示例程序InputTest.java步驟:
(1) 新建java project以下圖:
(2) 選擇File->import->File ystem->Next,打開文件導入窗口以下圖,點擊上方Browse選擇導入源程序並選中,點擊下方Browse選擇源程序導入位置爲新項目InputTest/src位置後,點擊finish完成導入。
(3) 打開InputTest項目src文件夾的缺省包,雙擊InputTest.java在IDE源程序編輯區打開文件。
(4) 右鍵單擊InputTest.java文件名打開快捷菜單,選擇Run as->java application運行此程序,結合程序運行結果,理解代碼中Scanner類對象用法,掌握java控制檯輸入方法。
①實驗運行結果以下所示:
實驗6:按照實驗5的操做步驟,導入WriteReadFileTest.java示例程序,結合程序運行結果理解程序代碼,觀察項目文件夾下文件myfile.txt的內容,掌握文件的輸入輸出操做。
①輸出導入結果以下圖所示:
②myfile.txt文件內容以下圖所示:
實驗7:按照實驗5的操做步驟,導入第3章示例程序,每一個示例程序從語法、算法兩個角度總結學習內容。
(1)測試Retirement.java,Retirement2.java,LotteryOdds.java掌握循環控制結構;
①測試Retirement.java掌握循環結構實驗結果以下圖所示:
②測試Retirement2.java掌握循環結構實驗結果以下圖所示:
③測試LotteryOdds.java掌握循環結構實驗結果以下圖所示:
(2)測試BigIntegerTest.java,掌握大數值類的用法;
實驗結果以下圖所示:
(3)測試LotteryDrawing.java,掌握數組的用法;
實驗結果以下圖所示:
(4)測試CompoundInterest.java,掌握多維數組的用法;
實驗結果以下圖所示:
(5)測試LotteryArray.java,掌握不規則數組的用法。
實驗結果以下圖所示:
第三部分:實驗總結
這是第二次Java做業,與第一次相比熟悉了不少,大多程序均可以本身獨立操做,但在程序代碼的理解上仍是存在較大的疑惑。經過此次實驗,我進一步熟悉了命令行和IDE兩種方式下java程序開發的基本步驟,也大體上掌握了Eclipse集成開發環境下導入Java源程序的過程以及Java語言構造基本程序的數據類型、變量、運算符、各種表達式、輸入輸出、流程控制的基本語法,也了腳了String類、StringBuilder類、數組類的用法。
若是第1、二章主要是給咱們介紹怎樣作,那麼我認爲第三章是重點給咱們講作什麼,有的實驗我以爲本身只是單純的把它作了出來,並非很理解它的代碼的具體含義,而且Java語言的語法不少,也不是能夠一會兒就記住的,我會在從此的學習中注意語法的正確使用,感謝老師,助教和同窗們的幫助。