王之泰201771010131《面向对象程序设计(java)》第二周学习总结
王之泰201771010131《面向?qū)ο蟪绦蛟O計(java)》第二周學習總結(jié)
第一部分:理論知識學習部分
第三章
第三章內(nèi)容主要為Java語言的基礎語法,主要內(nèi)容如下
?
? ? ? ? ? ? ? ? ? ? ? ?
?
1.基礎知識
1.1標識符
? ?a)標識符可用作類名、變量名、方法名、數(shù)組名、文件名等。
注:第一個符號不能為數(shù)字,即不能用數(shù)字開頭。
1.2關鍵字
? ?a)關鍵字是Java語言中已經(jīng)被賦予特定意義的一些單詞。
? ?b)常見有:class、public、try、catch、if、 float、import、void等。
注:關鍵字不做變量名
1.3注釋
? ?a)// 注釋內(nèi)容由//一直到此行結(jié)束。
? ?b)/*和*/ 定義一個注釋塊。
? ?c)/**開始,*/結(jié)束 這種注釋方法可用來自動產(chǎn)生文檔。
2.數(shù)據(jù)類型
? ?a)Java中每種變量在使用前都必須申明變量類型
? ?b)大的來分有四種類型,細化就有八種類型,即:整數(shù)類型(int、short、long、byte) 浮點類型(float、double) 字符類型(char) 布爾類型(boolean)
? ?c)Java中的boolean型和byte型是C語言中沒有的。
? ?d)值得一提的是,Java的編碼類型并不是C語言使用的ANSI碼,而是Unicode碼。Unicode(統(tǒng)一碼、萬國碼)是一個編碼規(guī)范,它滿足跨語言、跨平臺進行文本轉(zhuǎn)換、處理的要求。
注:Java中沒有unsigned類型;
??? 布爾值和整數(shù)在Java中不能相互轉(zhuǎn)換
?3.變量
? ?a)在Java中,每一個變量屬于一種類型。在聲明變量時,變量所屬的類型 于變量名之前。
? ?b) 一行可以聲明多個變量,但不建議這么做。逐一聲明每一個變量可以提高程序的可讀性。
注:一個變量聲明后,必須通過賦值語句對它進行明確的初始化;
? ? ? ?變量的聲明盡可能地靠近變量第一次使用的地方,這是一種良好的程序編寫風格。
? ? ? ?Java中,不能在同一作用域內(nèi)聲明兩個同名的變量。
3.1常量
? ?a)在Java中,使用關鍵字final來指示常量。一般常量名都用大寫。如:final double CM_PER_INCH=2.54;?
? ?b)關鍵字final表示只能對變量賦一次值,其值一旦設定,便不能改。?
? ?c)在Java中,經(jīng)常希望某個常量可以在一個類中的多個方法中使用,我們將這些常量稱為類常量。可以使用關鍵字staticfinal聲明一個類常量(class constants)。
4.運算符
? ?a)Java中,各種運算符都與面向?qū)ο笥嘘P
? ?b) Java提供了兩個特別運算符
? ? ? – new這是一個用來創(chuàng)建對象的運算符。?
? ? ? – instance of返回一個布爾值來指出某個對象是否是一個特定類或者是它的子類的一個實例。
? ?c)用算符的優(yōu)先級
? ?d) 數(shù)學函數(shù)包含在Math類中。冪函數(shù);三角函數(shù);指數(shù)函數(shù)及它的反函數(shù)等Java還提供了兩個常量。Math.PI ?Math.E
?5.類型轉(zhuǎn)換
? ?a)
? ? ? ?
?
? ? b)強制類型轉(zhuǎn)換
? ? ? ?兩個操作數(shù)中有一個是double類型的,另一個將會轉(zhuǎn)換成double類型。 ?兩個操作數(shù)中有一個是float類型的,另一個將會轉(zhuǎn)換成float類型。
? ? ? ?兩個操作數(shù)中有一個是long類型的,另一個 將會轉(zhuǎn)換成long類型。
? ? ? ?否則,兩個操作數(shù)都將轉(zhuǎn)換成int類型。
6.字符串
? ??a)在Java中,字符串被當作對象來處理。?
? ??b)程序中需要用到的字符串可以分為兩大類:
? ? ? ? 創(chuàng)建之后不會再做修改和變動的不可變字符串String類
? ? ? ??創(chuàng)建之后允許再做更改和變化的構(gòu)建字符串StringBuilder類
? ? c) 使用“”定義字符串
?7.輸入輸出
? ??a) 通過控制臺進行輸入時,需要構(gòu)造一個Scanner對象,并與“標準輸入流”System.in關聯(lián)。
? ??b) 使用System.out.print(x)將數(shù)值x輸出到控制臺上,這條命令將以x對應的數(shù)據(jù)類型所允許的最大非0數(shù)字位數(shù)打印輸出x。
8. 控制流程
9. 大數(shù)值
? ??a)如果基本的整型和浮點型數(shù)據(jù)無法達到要求的精度,可以使用java.math包中的兩個類, BigInteger和BigDecimal。
? ??b)這兩個類可以操作任意長的數(shù)字
? ? ? ?BigInteger類實現(xiàn)了任意精度的整數(shù)運算
? ? ? ?BigDecimal實現(xiàn)了任意精度的浮點運算
?10.數(shù)組
? ? a)數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),它是有序數(shù)據(jù)的集合, 數(shù)組中的每個元素的數(shù)據(jù)類型都是相同的。
? ?b)對元素的確定是由數(shù)組名和它的下標實現(xiàn)的, 如a[0]代表數(shù)組a的第一個元素,a[1]代表數(shù)組 a的第二個元素,依次類推
?
第二部分:實驗部分
? ?實驗二 Java基本程序設計(1)
? ? ? ? 實驗時間 2018-9-6
1、實驗目的與要求
(1)進一步熟悉命令行和IDE兩種方式下java程序開發(fā)的基本步驟;
(2)掌握Eclipse集成開發(fā)環(huán)境下導入Java源程序的過程;
(3)掌握Java語言構(gòu)造基本程序的數(shù)據(jù)類型、變量、運算符、各類表達式、輸入輸出、流程控制的基本語法;
(4)掌握String類、StringBuilder類、數(shù)組類的用法。
2、實驗內(nèi)容和步驟
實驗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) |
?
?
?
?
?
?
實驗具體代碼如下:
1 package test1; 2 3 public class test0 { 4 5 public static void main(String[] args) { 6 int i=1; 7 double d=1.0; 8 System.out.println(45+45*50%i--); 9 System.out.println(1.5*3+d++); 10 System.out.println((true)&&(3>4)); 11 System.out.println((i>0)||(i<0)); 12 13 14 } 15 16 }?
? ? 實驗驗證結(jié)果如下:
?
?
?
實驗2:編寫包含以下代碼片段的java應用程序,輸出字符串類對象s3的值。
| String s1=“Hello!”; String s2=“World”; String s3=s1+s2; |
?
?
?
?
實驗具體代碼如下:
1 package test1; 2 3 public class test4 { 4 5 public static void main(String[] args) { 6 String s1 = "Hello "; 7 String s2 = "world!"; 8 String s3 = s1 + s2; 9 System.out.println(s3); 10 11 } 12 13 }?
實驗驗證結(jié)果如下
?
實驗3:更改實驗2中s1、s2、s3為StringBuilder類對象,觀察程序運行結(jié)果并與實驗2結(jié)果進行對比,理解String類對象與StringBuilder類對象的區(qū)別。
實驗具體代碼如下:
1 package test1; 2 3 public class test4 { 4 5 public static void main(String[] args) { 6 StringBuilder s1 = new StringBuilder( "Hello "); 7 StringBuilder s2 = new StringBuilder( "world!"); 8 s1.append(s2);//調(diào)用appand方法把s2追加到s1上,即將s1 擴充 9 System.out.println(s1); 10 11 } 12 13 }?
實驗結(jié)果如下:
?
?
?實驗4:在命令行方式下調(diào)試運行下列程序,理解java應用程序命令行參數(shù)的用法。
| 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(“!”); ? } } |
?
?
?
?
?
?
?
?
?
?
實驗驗證及結(jié)果如下:
?
實驗5:Eclipse環(huán)境下導入第3章示例程序InputTest.java步驟:
(1)新建java project如下圖:
?
?
(2)選擇File->import->File ystem->Next,打開文件導入窗口如下圖,點擊上方Browse選擇導入源程序并選中,點擊下方Browse選擇源程序?qū)胛恢脼樾马椖縄nputTest/src位置后,點擊finish完成導入。
(3)打開InputTest項目src文件夾的缺省包,雙擊InputTest.java在IDE源程序編輯區(qū)打開文件。
(4)右鍵單擊InputTest.java文件名打開快捷菜單,選擇Run as->java application運行此程序,結(jié)合程序運行結(jié)果,理解代碼中Scanner類對象用法,掌握java控制臺輸入方法。
程序運行結(jié)果如下 :
?
實驗6:按照實驗5的操作步驟,導入WriteReadFileTest.java示例程序,結(jié)合程序運行結(jié)果理解程序代碼,觀察項目文件夾下文件myfile.txt的內(nèi)容,掌握文件的輸入輸出操作。
程序運行結(jié)果如下:
?
?myfile.txt內(nèi)容如下:
?
實驗7:按照實驗5的操作步驟,導入第3章示例程序,每個示例程序從語法、算法兩個角度總結(jié)學習內(nèi)容。
(1)測試Retirement.java,Retirement2.java,LotteryOdds.java掌握循環(huán)控制結(jié)構(gòu);
Retirement.java測試結(jié)果如下
總結(jié):該程序計算需要多長時間才能存夠一定數(shù)量的退休金。28到35行為一個計數(shù)器,利用while循環(huán)計算出存儲值超過目標值時輸出存儲值。
使用的類不在Java.lang包中使用import字在程序第一行加上java.util類包
13到25行為輸入;28到35為程序處理;37行為輸出;
?
Retirement2.java測試程序如下
總結(jié):該程序使用了do/while 循環(huán),該循環(huán)體至少執(zhí)行一次,Java中的循環(huán)通常為一個語句塊。
?
LotteryOdds.java測試程序如下
總結(jié):該程序用來計算抽獎中獎的概率,應用了for循環(huán),計算了如下公式的值:n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3...*k)
?
(2)測試BigIntegerTest.java,掌握大數(shù)值類的用法;
總結(jié):
?
?
(3)測試LotteryDrawing.java,掌握數(shù)組的用法;
?
(4)測試CompoundInterest.java,掌握多維數(shù)組的用法;
?
(5)測試LotteryArray.java,掌握不規(guī)則數(shù)組的用法。
?
?
第三部分:實驗總結(jié)
? ? ? ? 第三章內(nèi)容主要為Java語法的基礎知識,正如老師所說,其中百分之八九十的內(nèi)容都是與我們學過的C語言基礎語法相同的,所以對于已經(jīng)有了C基礎的我們來說,學習這一章內(nèi)容并不像剛學計算機語言那樣比較吃力。所以通過對這一章的學習,相當于復習了一遍C語言中的基本語法。正因為有了C語言的基礎,所以這一章學習起來才不那么吃力。在這一章的學習中,我學會了使用Java運算符構(gòu)造各類表達式,掌握了Java流程控制技術,但是對string類和數(shù)組類的用法還有些許欠缺,但在課余時間我會盡自己最大可能學習并消化這部分內(nèi)容。通過老師上課為我們梳理的知識脈絡,和課后自己的閱讀上機學習,成功的完成了第二次實驗內(nèi)容。雖然實驗中出現(xiàn)了很多bug,但在老師的提示和助教學長得幫助下成功debug。并且在這一周老師過渡式的上課當中,逐漸適應了上課模式。
? ? ? ?通過這一周的學習,我更加理解了在實踐中學習的重要性,例如,實驗四中在行命令下調(diào)試程序,必須的先讀懂程序才能正確調(diào)試出結(jié)果,而且若只是理論學習,以我的水平看不出來會出現(xiàn)數(shù)組越界問題,但輸入合適參數(shù)時可以正常運行。這個問題也是助教學長反復提示過的。我覺得在這周學習中我的收獲遠大于上周的學習內(nèi)容,并且在接下來的時間里我會繼續(xù)努力學習,提高自身編程水平。
轉(zhuǎn)載于:https://www.cnblogs.com/hackerZT-7/p/9608477.html
總結(jié)
以上是生活随笔為你收集整理的王之泰201771010131《面向对象程序设计(java)》第二周学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux stm32 虚拟串口驱动安装
- 下一篇: Pug