20177100106東文財《面向對象程序設計(java)》
20177100106《面向對象程序設計(java)》第二周學習總結
第一部分:理論知識學習部分
1.標識符:
① 標識符由字母、下劃線、美元符號和數字組成, 且第一個符號不能為數字。
②標識符可用作: 類名、變量名、方法名、數組名、文件名等。
2. 註釋:
Java有三種註釋的方式:
① // 註釋內容由//一直到此行結束。
② /*和*/ 定義一個註釋塊。
③ /**開始,*/結束 這種註釋方法可用來自動產生文檔。
3.數據結構:
(1) 整數類型:
①整型常量表示: 十進制:123, 6000
八進制:077, 065
十六進制:0x234, 0xab12
②整型變量的數據類型分為四種: int short long byte
③Java中整數的範圍與運行Java代碼的機器無關。
④Java中沒有unsigned類型 。
(2)浮點類型:
①Java中有兩種浮點類型: float double
②浮點常量的表示: 小數表示 430.2
科學計數 4.302E2
③表示溢出和出錯的三種特殊的浮點數值: 正無窮大
負無窮大
NaN(非數字)
(3)布爾類型:
①常量 true、false
②變量的定義 boolean x; boolean x,y;
③定義同時可賦值 boolean x=true, y=false;
④在Java中,布爾值和整數不能相互轉換。
4.變量初始化:
① 一個變量聲明後,必須通過賦值語句對它進行明確的初始 化——永遠不要使用一個未初始化的變量的值。
②在Java中,可以在代碼的任何位置進行變量聲明。變量的聲明盡可能地靠近變量第一次使用的地方,這是一種良 好的程序編寫風格。
③在Java中,不能在同一作用域內聲明兩個同名的變量。
5.各種運算符:
①算術運算符
②自增運算符與自減運算符
③關系運算符
④邏輯運算符
⑤位運算符
6. 數學函數與常量:
①數學函數包含在Math類中。
– 冪函數
– 三角函數
– 指數函數及它的反函數等
②Java還提供了兩個常量。
– Math.PI
– Math.E
③若不想在數學方法名和常量名前加前綴 “Math.”,可在源文件頂部加上以下代碼即可。
– import static java.lang.Math.*;
7.類型轉化:
8.字符串:
①Java字符串是Unicode字符的序列,它是組織字符的基本數據結構,用法類似於字符數組。 ②有內置的字符串類型,而是在標準Java類庫中提供了一 個Java預定義類String。
在Java中,字符串被當作對象來處理。
③程序中需要用到的字符串可以分為兩大類:
創建之後不會再做修改和變動的不可變字符串String類;
創建之後允許再做更改和變化的構建字符串StringBuilder類。
9.字符串常量:
①使用“”定義字符串。
“abc”,“歡迎使用Java”都是字符串。
② Java會自動為字符串常量生成一個String類的對象,所以可以直接初始化String對象。
如:String s = “Hello world!”
10. String類
①使用“”定義字符串。
“abc”,“歡迎使用Java”都是字符串。
②Java會自動為字符串常量生成一個String類的對象, 所以可以直接初始化String對象。
如:String s = “Hello world!”
11.讀取輸入:
①通過控制臺進行輸入時,需要構造一個Scanner對象,並 與“標準輸入流”System.in關聯。 – Scanner in = new Scanner(System.in);
②由於Scanner類輸入是可見的,所以不適用於從控制臺讀取密碼。Java SE 6.0特別引入Console類實現這個目的。
12.格式化輸出:
①使用System.out.print(x)將數值x輸出到控制臺上, 這條命令將以x對應的數據類型所允許的最大非0數字 位數打印輸出x。
②Java SE 5.0沿用了C語言庫函數中的printf方法, System.out.printf()。
用於printf的轉換符
用於printf的標誌
③ printf方法中日期和時間的格式化輸出
日期和時間的轉換符
13.文件輸入與輸出:
①要想對文件進行讀取,就需要一個用File對象構 造一個Scanner對象。
比如: – Scanner in = new Scanner(new File(“myfile.txt”));
②要想寫入文件,就需要構造一個PrintWriter對象,在構造器中,只需提供文件名:
– PrintWriter out = new PrintWriter(“myfile.txt”);
14. 幾點註意:
①表達式值、常量i的值為整型,不能是字符串。
②常量i != 常量j
③執行:先計算表達式值,若與常量i相同,則 執行語句序列i;若都不相同,則執行語句序 列n+1。
④註意case子句後的break!!
15.循環語句:
循環語句分為三種: while
do-while
for
16.中斷控制流程語句
①break 作用:結束整個循環的執行,轉到下一語句。
②continue 作用:結束本次循環,開始下一次循環。
註意:(1)Java中沒有goto語句!!!
(2)Java中提供了一種帶標簽的break語句, 用於跳出多重嵌套的循環語句。
17.返回語句:
①Java的返回語句與Java的方法緊密相關,當程序執行到此語句時,將立即返回上一級方法。
②格式:return value;
18.大數值:
①如果基本的整型和浮點型數據無法達到要求的精度,那麽可以使用 java.math 包中的兩個類,BigInteger和BigDecimal。這兩個類可以操作任意長的數字。
②BigInteger類實現了任意精度的整數運算,BigDecimal實現了任意精度的浮點運算。
19.數值:
①數組是一種數據結構,它是有序數據的集合,數組中的每個元素的數據類型都是相同的。 ②對元素的確定是由數組名和它的下標實現的,
如a[0]代表數組a的第一個元素,
a[1]代表數組 a的第二個元素,依次類推。
20.數組的聲明:
①一維數組格式: 數組元素類型 數組名字[]; 數組元素類型[] 數組名字;
②二維數組格式: 數組元素類型 數組名字[][]; 數組元素類型[][] 數組名字;
③其中數組元素類型可以為Java中的任意類型,包括基 本類型和復合類型
21.一維數組的初始化:
①在聲明數組的同時對數組的元素進行初始化,
例如: 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};
22.多維數組的初始化:
①系統會自動根據初始值的大小計算出數組的大小。
例如:int[][] magicSquare={ {16, 3, 2, 13 }, {5, 10, 11, 8}, {9, 6, 7, 12}, {4, 15, 14, 1} };
②Java語言中,二維數組被看作數組的數組,把數組當作對象來處理。
23.多維數組:
①在程序設計時,如果需要存儲二維表格數據,其中每個數據的類型是一樣的,可采用二維數組。
②對二維數組的每個元素賦值一般是通過嵌套的二重循環來進行。
24.不規則則數組:
①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”);
25.數組總結:
①數組使用之前要確定大小,可以在程序中根據需要動態生成數組(如用表達式計算出大小)。
②BigInteger和BigDecimal。這兩個類可以處理包含任意長度數字序列的數值。
③數組的屬性—length : 數組元素的個數。
④Java中的數組作為一種對象類型,可以作為方法的參數,方法調用時傳的是指向數組的引用。
⑤valueOf方法可以將普通的數值轉化為大數值。
第二部分:實驗部分
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) |
實驗結果如下:
實驗2:編寫包含以下代碼片段的java應用程序,輸出字符串類對象s3的值。
String s1=“Hello!”; String s2=“World”; String s3=s1+s2; |
實驗結果如下:
實驗3:更改實驗2中s1、s2、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(“!”); } } |
實驗結果如下:
實驗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的內容,掌握文件的輸入輸出操作。
實驗結果如下:
實驗7:按照實驗5的操作步驟,導入第3章示例程序,每個示例程序從語法、算法兩個角度總結學習內容。
(1)測試Retirement.java,Retirement2.java,LotteryOdds.java掌握循環控制結構;
實驗結果如下:
(2)測試BigIntegerTest.java,掌握大數值類的用法;
實驗結果如下:
(3)測試LotteryDrawing.java,掌握數組的用法;
實驗結果如下:
(4)測試CompoundInterest.java,掌握多維數組的用法;
實驗結果如下:
(5)測試LotteryArray.java,掌握不規則數組的用法。
實驗結果如下:
4.實驗總結:
通過對第三章的學習我更加熟悉了Java編程的一些方式,和一些語法。並進一步熟悉了命令行方式下java程序開發的基本步驟;掌握Eclipse集成開發環境下導入Java源程序的過程;掌握Java語言構造基本程序的數據類型、變量、運算符、各類表達式、輸入輸出、流程控制的基本語法;而且掌握了String類、StringBuilder類數用法,另外還學會了一些處理大數值的方法。
總的來說第三章的知識點挺多的,盡管有一些東西我還不是很熟悉,後面我會繼續學習課本知識,並做相應的編程。相信很快會完全掌握第三章的內容。
20177100106東文財《面向對象程序設計(java)》