Java第二周作業
本人姓名:鄒豐蔚
本人學號:201771010138
《面向對象程序設計(java)》第一周學習總結
第一部分:理論知識學習部分
3.1 基本知識
(1)標識符:由字母、下劃線、美元符號、數字、漢字組成, 且第一個符號不能為數字。Eg:Hello,$842,項目,www_939。
標識符可用作: 類名、變量名、方法名、數組名、文件名等
(2)關鍵字: 關鍵字就是Java語言中已經被賦予特定意義 的一些單詞。 Eg:class、public、try、catch、if、 float、import、void等。 註意:關鍵字不做變量名
(3)註釋:(1). // 註釋內容由//一直到此行結束。
3.2 數據類型
Java是一種強類型語言。這意味著每一個變量必須聲明一種為類型。
Java共有8種基本類型
– 整數類型(int、short、long、byte)
– 浮點類型(float、double)
– 字符類型 (char)
– 布爾類型(boolean )
3.3變量
在Java中,每一個變量屬於一種類型。在聲明變量時, 變量所屬的類型位於變量名之前。 l在Java中,一行可以聲明多個變量。逐一聲明每一個 變量可以提高程序的可讀性。
(1)變量初始化:
la.一個變量聲明後,必須通過賦值語句對它進行明確的初始 化
lb.在Java中,可以在代碼的任何位置進行變量聲明。變量 的聲明盡可能地靠近變量第一次使用的地方,這是一種良 好的程序編寫風格。
lc.在Java中,不能在同一作用域內聲明兩個同名的變量。
(2)常量的定義:
(1).在Java中,使用關鍵字final來指示常量。習慣上常量 名都用大寫。
(2).關鍵字final表示只能對變量賦一次值,其值一旦設定, 便不能改。
(3).在Java中,經常希望某個常量可以在一個類中的多個 方法中使用,通常將這些常量稱為類常量。可以使用 關鍵字staticfinal聲明一個類常量(class constants)。
3.4運算符
(1)各種運算符:l算術運算符;自增運算符與自減運算符;關系運算符;邏輯運算符;位運算符
(2)運算符的優先級與結合性
(3)數學函數與常量
3.5.類型轉換(長字節向短字節轉換):
隱式類型轉換:大多數的數值轉換是遵循優先級的關系自動完成的。 轉換原則如下: 如果兩個操作數中有一個是double類型的,則另一個將 會轉換成double類型。float、long型同理。否則,兩個操作數都將轉換成int類型。
3.6 字符串
Java字符串是Unicode字符的序列,它是組織字符的基本數據結構,用法類似於字符數組。
有內置的字符串類型,而是在標準Java類庫中提供了一個Java預定義類String。在Java中,字符串被當作對象來處理。
程序中需要用到的字符串可以分為兩大類:
– 創建之後不會再做修改和變動的不可變字符串String類;
– 創建之後允許再做更改和變化的構建字符串StringBuilder類。
所有的類都默認為是java.lang包中Object類的子類或間接子類----同族同宗,所有的類都可以享用一些基 本功能。
3.7輸入輸出: 1、Scanner類:可以用一個給定的輸入流創建該對象,例如用標準輸入流創建: Scanner s=new Scanner(System.in),也可以用一個File對象構造一個Scanner對象,如: Scanner s=new Scanner(new File(String FilePath)); 作為一個讀取的類,Scanner主要有以下的方法:String nextLine();String next();Int nextInt(); double nextDouble(); (java6 有Console類可以讀取密碼不可見:Console cons=System.console(); cons.readPassword("")) 相應的有一些檢測的hasNext方法; 2、PrintWriter類:可以用一個File對象構造一個PrintWriter對象: PrintWriter pw=new PrintWriter(new File(String FilePath)); 作為一個寫出的類,PrintWriter主要的方法有:write(String str),print,println,printf等。
3.8 控制流程
Java有5種語句: l
(1)方法調用語句 System.out.println(“Hello!”);
(2)表達式語句 x=23; i++;l
(3)復合語句p63 用{}把一些語句括起來就構成了一個語句。 { z=x+23; System.out.println(“Hello”); } l
(4)控制語句(程序控制流程由這些語言確定) if 、switch、for、while、do-while l
(5)packege語句和import語句
3.9大數值
(1)如果基本的整型和浮點型數據無法達到要求的精度, 那麽可以使用java.math包中的兩個類, BigInteger和BigDecimal。這兩個類可以操作任 意長的數字。 l
(2)BigInteger類實現了任意精度的整數運算, BigDecimal實現了任意精度的浮點運算
10 數組
數組是一種數據結構,它是有序數據的集合,數組中的每個元素的數據類型都是相同的。
對元素的確定是由數組名和它的下標實現的,如:
a[0]代表數組a的第一個元素,a[1]代表數組a的第二個元素,依次類推
第二部分:實驗部分
實驗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的內容,掌握文件的輸入輸出操作。
下面是該實驗的代碼以及實驗所得的結果:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
import java.util.Arrays;
public class WriteReadFileTest {
/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {
//寫入文件演示
PrintWriter out = new PrintWriter("myfile.txt");
out.println("姓名 高數 Java 數據結構 平均成績 總成績");
out.println("張三 20 30 40 0 0");
out.println("李四 50 60 70 0 0");
out.close();//切記,輸出完畢,需要close
//讀入文件演示
Scanner in = new Scanner(new File("myfile.txt"));//為myfile.txt這個File創建一個掃描器in
int number = 1;//行號
while(in.hasNextLine()){//判斷掃描器是否還有下一行未讀取,該循環把文件的每一行都讀出
String line = in.nextLine();//讀出myfile.txt的下一行
System.out.println("第"+(number++)+"行的內容" +"="+line);
Scanner linescanner = new Scanner(line);//對每一行的內容建立一個掃描器
linescanner.useDelimiter(" ");//使用空格作為分隔符
String name = linescanner.next();
String math = linescanner.next();
String java = linescanner.next();
String ds = linescanner.next();
String avg = linescanner.next();
String total = linescanner.next();
System.out.println("name="+name+" math="+math+" java="+java+" ds="+ds+" avg"+avg+" total="+total);
}
in.close();//讀入完畢,最後需要對其進行close。
}
}
實驗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語言的標識符、關鍵字、註釋的基本知識。在這章的學習中,我學會了在elipse裏添加註釋,明確了數據類型、變量、運算符及字符串的轉換以及使用。掌握了Java語言構造基本程序的數據類型、變量、運算符、各類表達式、輸入輸出、流程控制的基本語法。Java是一門與C語言聯系密切,和其它語言類課程一樣,極其需要自主學習的課程。因此,我會在課下花更多的時間學習這門課程。
Java第二周作業