201871010104-陈园园 《面向对象程序设计(java)》第二周学习总结
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???201871010104-陳園園 《面向對象程序設計(java)》第二周學習總結
| 項目 | 內容 |
| 這個作業屬于哪個課程 | ttps://www.cnblogs.com/nwnu-daizh/ |
| 這個作業要求在哪里 | https://www.cnblogs.com/lily-2018/p/11441372.html |
| 作業學習目標 |
第一部分:結合Java和C基礎語法的異同比較,總結本周理論知識。
1、標識符
? ? ?Java中標識符是由字母、下劃線、美元符號和數字組成,且第一個符號不能為數字。標識符可用作類名、對象名、變量名、方法名、數組名、文件名。
2、關鍵字
? ? ?關鍵字就是java中語言已經被賦予特定意義的一些單詞。常見的有:class、public、try、catch、import、if、float、void等。關鍵字不做變量名。
3、注釋
? ? java中注釋有三種方式:
? ? 1)// ? 注釋內容由//一直到此行結束。
? ? 2)/*和*/ ? 定義一個注釋塊
? ? 3)/**開始,*/結束 ? ?這種注釋方法可以用來自動產生文檔。
4、數據類型
? ? 整數類型(int、short、long、byte)
? ?浮點類型(float、double)
? ?字符類型(char)
? ?布爾類型(boolean)
? ?java中沒有unsigned類型。在java中,布爾值和整數不能相互轉換。
5、字符集:java采用unicode字符編碼集,該編碼集16位,含有65536個字符。Unicode(統一碼,萬國碼)是一個編碼規范,為解決傳統字符編碼方案局限產生。它為每種語言中的每個字符設定了統一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。
6、轉義字符
7、變量
? ? ?在java中,每一個變量屬于一種類型。在聲明變量時,變量所屬的類型位于變量名之前。一行可以聲明多個變量,逐一聲明每一個變量可以提高程序的可讀性。
? ? ?一個變量聲明后,必須通過賦值語句對它進行明確的初始化。在java中,可以在代碼的任何位置進行變量的聲明。變量的聲明盡可能地靠近變量第一次使用的地方,這是一種良好的程序編寫風格。
? ? ?在java中,不能在同一作用域內聲明兩個同名的變量。
8、常量
? ? 在java中,使用關鍵字final來表示常量。習慣上常量名都用大寫。關鍵字final表示只能對變量賦一次值,其值一旦設定,便不能改。使用關鍵字static final聲明一個類常量。
9、各種運算符
? ?算是運算符、自增運算符域自減運算符、關系運算符、邏輯運算符、位運算符、運算符的優先級與結合性。
? ?java提供了兩個特別的運算符,new(用來創建對象的運算符)、insteadof(返回一個布爾值來指出某個對象是否是一個特定的類或者是它的子類的一個實例)。
?
?10、類、域、方法和全局變量、函數
?
?1)類是C中沒有的,Java中類定義如下:
?
?[修飾符] class 類名[extends 父類名][implements 接口名]
?
其中修飾符可以為以下一個或多個訪問修飾符:
?
?abstract:抽象類。
?
?final:最終類。
?
?public:公共類。
?
?2)域(成員變量)和全局變量類比:
?
?Java中域的定義如下:
?
?[修飾符] 類型 成員變量名;
?
?修飾符可選以下一個或多個關鍵字:
?
?public:公共成員。
?
?protected:本類或同一個包的其他類以及其它包該類的子類可訪問。
?
?private:私有成員。
?
?final:常量,確定后不能改變。
?
?static:靜態變量。
?
?transient:臨時變量。
?
?volatile:備份變量。
?
?各類型成員變量默認初始化為:
?
整型變量:0
?
浮點型變量:0.0
?
布爾型變量:false
?
字符型變量:空格
?
類變量:null
?
C中全局變量定義同一般變量:
?
[存儲類別] 數據類型 變量表列;
?
其中存儲類別可選:
?
auto:自動變量,當不申明存儲類別時隱式默認該值。
?
static:靜態變量。
?
register:寄存器變量。
?
extern:外部變量。
?
3)方法和函數類比:
?
Java中方法的定義如下:
?
[修飾符] 返回類型 方法名([參數表列])
?
修飾符可選以下一個或多個:
?
public:公共方法。
?
protected:本類或同一個包的其他類以及其它包該類的子類可訪問。
?
private:私有方法。
?
abstract:抽象方法,只有方法頭沒有方法體。
?
static:靜態方法。
?
存儲類別可選:
?
extern:外部函數。
?
static:靜態函數。
?
11、數學函數與常量
? ? 數學函數包含在Math類中(冪函數、三角函數。指數函數以及它的反函數)等。
12、數組
?
Java中數組定義有兩種方式:
?
數據類型數組名[];或?數據類型 []數組名;
?
定義和初始化可同時進行,如:int []a = {0,1,2,3,4,5,6,7,8,9};
?
注意Java中數組如果在定義時沒有進行初始化,在進行初始化的時候需要先分配內存,即:
?
數組名 = new 數據類型[常量表達式];
?
也可在定義同時進行內存分配:
?
數據類型數組名[] = new 數據類型[常量表達式];
?
C和Java都不支持變長數組,引用的時候都是 數組名[下標]。區別是:Java的下標范圍為0~數組長度-1,不在該范圍會拋出數組下標越界異常,而C有效范圍也是0~數組長度-1,但下標超出此界不會報錯。
?
?
13、類、域、方法和全局變量、函數
?
?1)類是C中沒有的,Java中類定義如下:
?
?[修飾符] class 類名[extends 父類名][implements 接口名]
?
其中修飾符可以為以下一個或多個訪問修飾符:
?
?abstract:抽象類。
?
?final:最終類。
?
?public:公共類。
?
?2)域(成員變量)和全局變量類比:
?
?Java中域的定義如下:
?
?[修飾符] 類型 成員變量名;
?
?修飾符可選以下一個或多個關鍵字:
?
?public:公共成員。
?
?protected:本類或同一個包的其他類以及其它包該類的子類可訪問。
?
?private:私有成員。
?
?final:常量,確定后不能改變。
?
?static:靜態變量。
?
?transient:臨時變量。
?
?volatile:備份變量。
?
?各類型成員變量默認初始化為:
?
整型變量:0
?
浮點型變量:0.0
?
布爾型變量:false
?
字符型變量:空格
?
類變量:null
?
C中全局變量定義同一般變量:
?
[存儲類別] 數據類型 變量表列;
?
其中存儲類別可選:
?
auto:自動變量,當不申明存儲類別時隱式默認該值。
?
static:靜態變量。
?
register:寄存器變量。
?
extern:外部變量。
?
第二部分:實驗部分
實驗名稱:實驗二 Java基本程序設計(1)
1.? 實驗目的:
(1)進一步熟悉命令行和IDE兩種方式下java程序開發的基本步驟;
(2)掌握Eclipse集成開發環境下導入Java源程序的過程;
(3)掌握Java語言構造基本程序的數據類型、變量、運算符、各類表達式、輸入輸出、流程控制的基本語法;
(4)掌握Math類、String類、StringBuilder類的用法。
3. 實驗步驟與內容:
實驗1 java風格九九乘法表程序互評。
實驗2 ?編寫包含以下代碼片段的java程序,輸出字符串類對象s3的值。
String ?s1="Hello!";
String s2="World";
String s3=s1+s2;
代碼如下:
package cyy; public class cl {public static void main(String[] args) {String s1="Hello!";String s2="World";String s3=s1+s2;s3=s2.concat(s1);System.out.println(s3);}}?
運結結果如下:
?
?
?實驗3:更改實驗2中的s1,s2,s3為StringBuilder類對象,觀察程序運行結果并與實驗2結果進行對比,理解String類對象與StringBuilder類對象的區別。
代碼如下:
package cyy; public class cl {public static void main(String[] args) {StringBuilder s1=new StringBuilder("Hello!");StringBuilder s2=new StringBuilder("World");StringBuilder builder=new StringBuilder();builder.append(s1);builder.append(s2);System.out.println(builder);} }
運行結果如下:
?
?實驗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 文件讀寫程序測試
1)按照實驗5操作步驟,導入WriteReadFileTest.java示例程序,運行程序并理解程序代碼,觀察項目文件夾下文件myfile.txt的內容,掌握文件的輸入輸出操作。
2)myfile.txt內容如下
?
?
實驗7 ?
按照實驗5的操作步驟,導入第3章3-3——3-4示例程序,掌握兩個程序循環控制結構的用途
3-3實例
代碼如下:
import java.util.*;/*** This program demonstrates a <code>while</code> loop.* @version 1.20 2004-02-10* @author Cay Horstmann*/ public class Retirement {public static void main(String[] args){// read inputsScanner in = new Scanner(System.in); //通過控制臺進行輸入時,需要構建一個Scanner對象,并與“標準輸入流”System.in關聯。System.out.print("How much money do you need to retire? "); double goal = in.nextDouble();//輸入"How much money do you need to retire? "的內容;System.out.print("How much money will you contribute every year? ");double payment = in.nextDouble();//輸入"How much money will you contribute every year? "的內容;System.out.print("Interest rate in %: ");double interestRate = in.nextDouble();//輸入"Interest rate in %: "的內容;double balance = 0; //定義雙精度型 balance,并進行初始化;int years = 0; //定義整型years,并進行初始化;// update account balance while goal isn't reachedwhile (balance < goal) //while循環{// add this year's payment and interestbalance += payment; //balance=balance + payment;double interest = balance * interestRate / 100;balance += interest;years++;}System.out.println("You can retire in " + years + " years.");} }運行結果如下:
?
?3-4實例
代碼如下:
import java.util.*;/*** This program demonstrates a <code>do/while</code> loop.* @version 1.20 2004-02-10* @author Cay Horstmann*/ public class Retirement2 {public static void main(String[] args){Scanner in = new Scanner(System.in); //通過控制臺進行輸入時,需要構建一個Scanner對象,并與“標準輸入流”System.in關聯。System.out.print("How much money will you contribute every year? ");double payment = in.nextDouble(); //輸入"How much money will you contribute every year? "的內容;System.out.print("Interest rate in %: ");double interestRate = in.nextDouble(); //輸入"Interest rate in %: "的內容;double balance = 0;int year = 0;String input;// update account balance while user isn't ready to retiredo //do-while循環{// add this year's payment and interestbalance += payment; //balance=balance+payment;double interest = balance * interestRate / 100;balance += interest;year++;// print current balanceSystem.out.printf("After year %d, your balance is %,.2f%n", year, balance);// ask if ready to retire and get inputSystem.out.print("Ready to retire? (Y/N) ");input = in.next();}while (input.equals("N")); //循環滿足的條件,當輸入“Y”的時候結束循環語句;} }運行結果如下:
?
?實驗8:按照實驗5的操作步驟,導入第3章3-5示例程序,理解抽獎概率計算算法。
代碼如下:
import java.util.*;/*** This program demonstrates a <code>for</code> loop.* @version 1.20 2004-02-10* @author Cay Horstmann*/ public class LotteryOdds {public static void main(String[] args){Scanner in = new Scanner(System.in);System.out.print("How many numbers do you need to draw? ");int k = in.nextInt(); //輸入"How many numbers do you need to draw? "的內容;System.out.print("What is the highest number you can draw? ");int n = in.nextInt(); //輸入"What is the highest number you can draw? "的內容;/** compute binomial coefficient n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3*...*k)*/int lotteryOdds = 1;for (int i = 1; i <= k; i++) //for循環;lotteryOdds = lotteryOdds * (n - i + 1) / i;System.out.println("Your odds are 1 in " + lotteryOdds + ". Good luck!");} }
運行結果如下:
?
?四.實驗總結
? 本周的實驗主要是在c語言的基礎之上,對java作了學習,通過將兩者作對比將java的基礎知識加以鞏固與學習,此外,還通過實例中的代碼慢慢地走進java,慢慢理解java中的各種數學算法,雖然看著不太懂。但是我相信以后可能會慢慢得到升華,努力為以后的學習打下一個基礎。
?
轉載于:https://www.cnblogs.com/chanyeol1127/p/11483986.html
總結
以上是生活随笔為你收集整理的201871010104-陈园园 《面向对象程序设计(java)》第二周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android环绕耳机,完全不同的“听音
- 下一篇: 在线批量无损压缩图片工具