面向對象程序設計 (JAVA)》第二週 學習總結java
項目算法 |
內容數組 |
這個做業屬於哪一個課程數據結構 |
<任課教師博客主頁連接>https://www.cnblogs.com/nwnu-daizh/app |
這個做業的要求在哪裏eclipse |
<做業連接地址><https://edu.cnblogs.com/campus/xbsf/2018CST1/homework/4519>函數 |
做業學習目標學習 |
<填寫具體目標>測試
|
第一部分:結合Java和C基礎語法的異同比較,總結本週理論知識(30)ui
一.簡單的Java程序應運程序
1.標識符0標識符由字母、下劃線、美圓符號和數字組成,且第一個符號不能爲數字。
標識符可用做:類名、對象名、變量名、方法名、數組名、文件名等
2.關鍵字關鍵字就是Java語言中已經被賦予特定意義的一些單詞。常見有:class、public、try、catch、if、float、import、void等。關鍵字不作變量名。
二.註釋
註釋Java有三種註釋的方式:1.註釋內容由//一直到此行結束。
2./*和*/定義一個註釋塊。
3./**開始,*/結束這種註釋方法可用來自動產生文檔。
三.數據類型
1.數據類型Java是一種強類型語言。這意味着每個變量必須聲明一種爲類型。
八控制語句(程序控制流程由這些控制語句肯定)
1.if、switch、for、while、do-while
2.Package語句和import語句
九.大數值
a)若是基本的整型和浮點型數據沒法達到要求的精度,可使用java.math包中的兩個類, BigInteger和BigDecimal。
b)這兩個類能夠操做任意長的數字:BigInteger類實現了任意精度的整數運算, BigDecimal實現了任意精度的浮點運算
十.數組
1.數組是一種數據結構,它是有序數據的集合。數組中的每個元素的數據類型都是相同的。
2.數組的聲明:一維數組格式 數組元素類型 數組名字[]; 數組元素類型[] 數組名字;
二維數組格式:數組元素類型 數組名字[][]; 數組元素類型[][] 數組名字;其中數據類型能夠爲java中的任意類型,包括基本類型和複合類型。也可用定義的類來聲明數組;
java在數組聲明時並不爲數組分配內存,在java中,數組是獨立的類,有自身的辦法。
3.數組的建立
數組聲明後,要用new運算符爲其分配內存空間,分配內存空間時必須指明數組的長度。
格式:數組名字=new 數組元素類型[個數]
第二部分:實驗部分
實驗名稱:實驗二 Java基本程序設計(1)
1. 實驗目的:
(1)進一步熟悉命令行和IDE兩種方式下java程序開發的基本步驟;
(2)掌握Eclipse集成開發環境下導入Java源程序的過程;
(3)掌握Java語言構造基本程序的數據類型、變量、運算符、各種表達式、輸入輸出、流程控制的基本語法;
(4)掌握Math類、String類、StringBuilder類的用法。
2. 實驗步驟與內容:
實驗1 程序互評(10分)
評分要求:結合評分程序的運行狀況,給出評分程序成績,滿分5分,每一個錯誤扣1分,扣至0分爲止;
評分者每發現一個正確的錯誤,本人實驗1得分加1分,最高加5分。
實驗2 : 編寫包含如下代碼片斷的java應用程序,輸出字符串類對象s3的值。
String s1=「Hello!」;
String s2=「World」;
String s3=s1+s2;
代碼以下:
public class cld {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1="Hello!"; //定義了一個String,名爲s1,並將字符串Hello賦值給s1
String s2="World"; //定義了一個String,名爲s2,並將字符串World賦值給s2
String s3=s1+s2; //定義了一個String,名爲上,並將s1+s2的值賦給s3
System.out.println(s3); //輸出s3的值
}
}
運行結果以下:
實驗3 (5分)更改實驗2中s一、s二、s3爲StringBuilder類對象,觀察程序運行結果並與實驗2結果進行對比,理解String類對象與StringBuilder類對象的區別。
程序代碼以下:
package message;
public
class
Message {
public
static
void
main(String[] args) {
StringBuilder s1=
new
StringBuilder(
"Hello!"
);
//在字符串構建器StringBuilder中建立一個新的StringBuilder
StringBuilder s2=
new
StringBuilder(
"world"
);
StringBuilder s3=
new
StringBuilder();
s3.append(s1);
s3.append(s2);
//用StringBuilder將s1和s2拼接起來
System.
out
.println(s3);
}
}
2)String類對象與StringBuilder類對象的區別:
1.String類
1) 字符串是常量;
2)String自己是不可改變的,它只能賦值一次,每次內容發生改變,都會生成一個新的String類對象,而後原有的對象引用新的對象。(它們的值在建立以後不能更改)
3)String實現字符串加法,會在內存中建立不少字符串佔用內存,佔用內存越多,程序的效率就越低。
2.StringBuilder類
1)每次操做都是對自身對象進行操做,而不是產生新的對象,其所佔空間會隨着內容的增長而擴充;
2)字符串緩衝區,能夠提升字符串的效率,支持可變的字符串;
3)StringBuilder實現字符串加法,始終是一個數組,佔用內存少,因此效率高。
4)若是須要用許多小段的字符串構建一個字符串,那麼,首先,構建一個空的字符串構建器:
StringBuilder builder = new StringBuilder();
當每次須要添加一部份內容時,就調用 append 方法。
builder.append(ch); // appends a single character
builder.append(str); // appends a string
在須要構建字符串時就調用 toString 方法,將能夠獲得一個 String 對象,其中包含了構建器中的字符序列。
String completedString = builder.toString();
實驗4 (5分)在命令行方式下調試運行下列程序,理解java應用程序命令行參數的用法。
a)程序代碼以下:
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(「!」);
}
}
b) 其運行結果以下:
c) Java程序中main方法裏存在「String[] args」參數:
1. 「String[] args」是命令行參數(其接收運行參數)
Java程序運行的同時,能夠經過兩種方式將命令行參數賦給給「String[] args」:
一種是在Java命令行後面帶上參數,另外一種是經過編譯器(本文將用eclipse進行演示)進行輸入,以後虛擬機就直接把他們存放到「String[] args」數組中。
2. args是命令行參數,由於參數能夠爲多個,因此要用數組來存取咱們輸入的參數值。
3. 針對以上程序,在命令行中調試運行:
輸入 Java Message -h (或 Java Message -g)回車,即將參數賦給 args 數組,運行程序。
4.若在eclipse中進行,右鍵找到run as,選擇Run Configurations,在文件Message中,找到它的 Arguments,在program arguments中輸入參數 -h (-g) 後點擊run便可。
實驗5 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控制檯輸入方法。
A.Scanner類對象用法:
1)使用Scanner的步驟:
a: 必須導包 import java.util.Scanner; 可以使用快捷鍵ctril+shift+o
b:建立對象 Scanner sc = new Scanner(System.in);
c:調用方法 sc.xxx( )
B.Scanner類的方法
1)public int nextInt( ) : 讀取一個int類型的值
2)public String nextLine( ):讀取一個String類型的值
3)public boolean hasNextXxx():判斷是不是某種類型的元素
C.Scanner類的方法總結:
1)next( ): 只讀取輸入直到空格。它不能讀兩個由空格或符號隔開的單詞。此外,next()在讀取輸入後將光標放在同一行中。(next()只讀空格以前的數據,而且光標指向本行)
2)nextLine():讀取輸入,包括單詞之間的空格和除回車之外的全部符號(即。它讀到行尾)。讀取輸入後,nextLine()將光標定位在下一行。
3)nextline( ):只讀取數值,剩下的「\n」尚未讀取,並將光標放在本行中 。
4)hasNextInt( ):判斷是不是int 類型的元素,進而獲取元素。
5)next()方法並不能返回帶空格、Tab鍵、回車符的字符串,而nextLine能夠。
D.上述程序中的,Scanner in=new Scanner(System.in);
System.in 是得到一個鍵盤輸入流,監聽鍵盤輸入的數據,因此,Scanner in=new Scanner(System.in);就已經獲得了獲取鍵盤輸入的實列。
Scanner 是一個類,in 是一個實列或者說是對象,new 是一個建立對象的方法…Scanner類表如今得到控制檯輸入,至關於與聲明一我的類(Scanner),這我的類是誰(in),後面新建立一我的類new Scanner(system.in),system.in 表示他有什麼特徵。換言之,就是,新建立一個輸入的Scanner 對象,而後賦值給in。在使用時要關閉 流 ,不然會有警報。
實驗6 文件讀寫程序測試(10分)
按照實驗5操做步驟,導入WriteReadFileTest.java示例程序,運行程序並理解程序代碼,觀察項目文件夾下文件myfile.txt的內容,掌握文件的輸入輸出操做。
1.導入WriteReadFileTest.java示例程序,運行程序結果以下:
實驗7 (5分)
按照實驗5的操做步驟,導入第3章3-3——3-4示例程序,掌握兩個程序循環控制結構的用途。
1)導入的3-3示例程序以下:
2)導入3-4示例程序以下:
實驗8 (5分)
按照實驗5的操做步驟,導入第3章3-5示例程序,理解抽獎機率計算算法。
1)導入3-5示例程序以下:
3-5該程序使用了for循環,此程序用來計算抽獎中獎的機率,若是從n個數字中抽取K個數字,可用如下公式進行計算獲得結果。
compute binomial coefficient n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3*...*k)
其語句爲:
3. 實驗總結:(10分)
經過本週的學習,我進一步熟悉了eclipse的使用,還有就是命令行和IDE兩種方式下Java程序開發的基本步驟。在完成這次老師佈置的做業的過程當中,我又一次遇到了新的問題,新的挑戰,可是我會克服這些困難努力學習的。實驗六和實驗七以及實驗八都是在實驗五的基礎上完成的,經過實驗五的操做,對於文件的導入又有了進一步的熟悉。實驗過程當中,掌握了Java語言構造基本程序的數據類型,變量,運算符,各種表達式,輸入輸出,流程控制的基本語法,但願在之後的學習中,能更好的掌握Java程序設計語言。