王之泰201771010131《面向對象程式設計(java)》第二周學習總結

来源:https://www.cnblogs.com/hackerZT-7/archive/2018/09/09/9608477.html
-Advertisement-
Play Games

王之泰201771010131《面向對象程式設計(java)》第二周學習總結 第一部分:理論知識學習部分 第三章 第三章內容主要為Java語言的基礎語法,主要內容如下 1.基礎知識 1.1標識符 a)標識符可用作類名、變數名、方法名、數組名、文件名等。 註:第一個符號不能為數字,即不能用數字開頭。 ...


王之泰201771010131《面向對象程式設計(java)》第二周學習總結

第一部分:理論知識學習部分

第三章

第三章內容主要為Java語言的基礎語法,主要內容如下

 

                       

 

1.基礎知識

1.1標識符

   a)標識符可用作類名、變數名、方法名、數組名、文件名等。

註:第一個符號不能為數字,即不能用數字開頭。

1.2關鍵字

   a)關鍵字是Java語言中已經被賦予特定意義的一些單詞。

   b)常見有:class、public、try、catch、if、 float、import、void等。

註:關鍵字不做變數名

1.3註釋

   a)// 註釋內容由//一直到此行結束。

   b)/*和*/ 定義一個註釋塊。

   c)/**開始,*/結束 這種註釋方法可用來自動產生文檔。

2.數據類型

   a)Java中每種變數在使用前都必須申明變數類型

   b)大的來分有四種類型,細化就有八種類型,即:整數類型(int、short、long、byte) 浮點類型(float、double) 字元類型(char) 布爾類型(boolean)

   c)Java中的boolean型和byte型是C語言中沒有的。

   d)值得一提的是,Java的編碼類型並不是C語言使用的ANSI碼,而是Unicode碼。Unicode(統一碼、萬國碼)是一個編碼規範,它滿足跨語言、跨平臺進行文本轉換、處理的要求。

註:Java中沒有unsigned類型;

    布爾值和整數在Java中不能相互轉換

 3.變數

   a)在Java中,每一個變數屬於一種類型。在聲明變數時,變數所屬的類型 於變數名之前。

   b) 一行可以聲明多個變數,但不建議這麼做。逐一聲明每一個變數可以提高程式的可讀性。

註:一個變數聲明後,必須通過賦值語句對它進行明確的初始化;

       變數的聲明儘可能地靠近變數第一次使用的地方,這是一種良好的程式編寫風格。

       Java中,不能在同一作用域內聲明兩個同名的變數。

3.1常量

   a)在Java中,使用關鍵字final來指示常量。一般常量名都用大寫。如:final double CM_PER_INCH=2.54; 

   b)關鍵字final表示只能對變數賦一次值,其值一旦設定,便不能改。 

   c)在Java中,經常希望某個常量可以在一個類中的多個方法中使用,我們將這些常量稱為類常量。可以使用關鍵字staticfinal聲明一個類常量(class constants)。

4.運算符

   a)Java中,各種運算符都與面向對象有關

   b) Java提供了兩個特別運算符

      – new這是一個用來創建對象的運算符。 

      – instance of返回一個布爾值來指出某個對象是否是一個特定類或者是它的子類的一個實例。

   c)用算符的優先順序

   d) 數學函數包含在Math類中。冪函數;三角函數;指數函數及它的反函數等Java還提供了兩個常量。Math.PI  Math.E

 5.類型轉換

   a)

       

 

    b)強制類型轉換

       兩個操作數中有一個是double類型的,另一個將會轉換成double類型。 兩個操作數中有一個是float類型的,另一個將會轉換成float類型。

       兩個操作數中有一個是long類型的,另一個 將會轉換成long類型。

       否則,兩個操作數都將轉換成int類型。

6.字元串

    a)在Java中,字元串被當作對象來處理。 

    b)程式中需要用到的字元串可以分為兩大類:

        創建之後不會再做修改和變動的不可變字元串String類

        創建之後允許再做更改和變化的構建字元串StringBuilder類

    c) 使用“”定義字元串

 7.輸入輸出

    a) 通過控制台進行輸入時,需要構造一個Scanner對象,並與“標準輸入流”System.in關聯。

    b) 使用System.out.print(x)將數值x輸出到控制臺上,這條命令將以x對應的數據類型所允許的最大非0數字位數列印輸出x。

8. 控制流程

9. 大數值

    a)如果基本的整型和浮點型數據無法達到要求的精度,可以使用java.math包中的兩個類, BigInteger和BigDecimal。

    b)這兩個類可以操作任意長的數字

       BigInteger類實現了任意精度的整數運算

       BigDecimal實現了任意精度的浮點運算

 10.數組

    a)數組是一種數據結構,它是有序數據的集合, 數組中的每個元素的數據類型都是相同的。

   b)對元素的確定是由數組名和它的下標實現的, 如a[0]代表數組a的第一個元素,a[1]代表數組 a的第二個元素,依次類推

 

第二部分:實驗部分

   實驗二 Java基本程式設計(1)

        實驗時間 2018-9-6

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)

 

 

 

 

 

 

實驗具體代碼如下:

 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 }

 

    實驗驗證結果如下:

 

 

 

實驗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 }

 

實驗驗證結果如下

 

實驗3:更改實驗2中s1、s2、s3為StringBuilder類對象,觀察程式運行結果並與實驗2結果進行對比,理解String類對象與StringBuilder類對象的區別。

實驗具體代碼如下:

 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);//調用appand方法把s2追加到s1上,即將s1 擴充
 9         System.out.println(s1);
10 
11     }
12 
13 }

 

實驗結果如下:

 

 

 實驗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的內容,掌握文件的輸入輸出操作。

程式運行結果如下:

 

 myfile.txt內容如下:

 

實驗7:按照實驗5的操作步驟,導入第3章示常式序,每個示常式序從語法、演算法兩個角度總結學習內容。

(1)測試Retirement.java,Retirement2.java,LotteryOdds.java掌握迴圈控制結構;

Retirement.java測試結果如下

總結:該程式計算需要多長時間才能存夠一定數量的退休金。28到35行為一個計數器,利用while迴圈計算出存儲值超過目標值時輸出存儲值。

使用的類不在Java.lang包中使用import字在程式第一行加上java.util類包

13到25行為輸入;28到35為程式處理;37行為輸出;

 

Retirement2.java測試程式如下

總結:該程式使用了do/while 迴圈,該迴圈體至少執行一次,Java中的迴圈通常為一個語句塊。

 

LotteryOdds.java測試程式如下

總結:該程式用來計算抽獎中獎的概率,應用了for迴圈,計算瞭如下公式的值:n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3...*k)

 

(2)測試BigIntegerTest.java,掌握大數值類的用法;

總結:

 

 

(3)測試LotteryDrawing.java,掌握數組的用法;

 

(4)測試CompoundInterest.java,掌握多維數組的用法;

 

(5)測試LotteryArray.java,掌握不規則數組的用法。

 

 

第三部分:實驗總結

        第三章內容主要為Java語法的基礎知識,正如老師所說,其中百分之八九十的內容都是與我們學過的C語言基礎語法相同的,所以對於已經有了C基礎的我們來說,學習這一章內容並不像剛學電腦語言那樣比較吃力。所以通過對這一章的學習,相當於複習了一遍C語言中的基本語法。正因為有了C語言的基礎,所以這一章學習起來才不那麼吃力。在這一章的學習中,我學會了使用Java運算符構造各類表達式,掌握了Java流程式控制制技術,但是對string類和數組類的用法還有些許欠缺,但在課餘時間我會盡自己最大可能學習並消化這部分內容。通過老師上課為我們梳理的知識脈絡,和課後自己的閱讀上機學習,成功的完成了第二次實驗內容。雖然實驗中出現了很多bug,但在老師的提示和助教學長得幫助下成功debug。並且在這一周老師過渡式的上課當中,逐漸適應了上課模式。

       通過這一周的學習,我更加理解了在實踐中學習的重要性,例如,實驗四中在行命令下調試程式,必須的先讀懂程式才能正確調試出結果,而且若只是理論學習,以我的水平看不出來會出現數組越界問題,但輸入合適參數時可以正常運行。這個問題也是助教學長反覆提示過的。我覺得在這周學習中我的收穫遠大於上周的學習內容,並且在接下來的時間里我會繼續努力學習,提高自身編程水平。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本博文歸納在 Vue 學習過程中, Vue-cli 工具的使用說明。除此之外還通過 Vue-cli 工具將之前 Vuejs 基本語法當中實現的 todoList 進行重構。 安裝 創建 創建一個基於 webpack 模板的新項目,在此之前,先 cd Desktop 到桌面路徑 各選項簡介 安裝完畢之 ...
  • 《一統江湖的大前端》系列是自己的學習筆記,旨在介紹javascript在非網頁開發領域的應用案例和發現各類好玩的js庫,不定期更新。如果你對前端的理解還是寫寫頁面綁綁事件,那你真的是有點OUT了,前端能做的事情已經太多了, , , , , , 甚至 ,什麼火就搞什麼,絕對是專業的 蹭熱點小能手 。 ...
  • 字元串的生成轉換 你可以將任何類型的數據都轉換為字元串,你可以用下麵三種方法的任何一種: 字元串轉化為其他類型 js提供了parseInt()和parseFloat()兩個轉換函數,Number也可以實現轉化 字元的操作 字元串增刪查改 字元串比較 比較兩個字元串,比較是規則是按照字母表順序比較的 ...
  • todoList 結合之前 Vuejs 基礎與語法 使用 v-model 雙向綁定 input 輸入內容與數據 data 使用 @click 和 methods 關聯事件 使用 v-for 進行數據迴圈展示 <!DOCTYPE html> <html lang="en"> <head> <meta ...
  • 剛開始學JQuery寫的如有錯誤歡迎批評指正 JQuery擁有的選擇器可以讓我們更快更方便找到想要的元素,然後對相應的元素進行操作 簡單介紹一下一些常用的選擇器: 1.基本選擇器: 2.層級選擇器: 層級函數 3.過濾選擇器: 4.內容選擇器: 5.屬性選擇器: 6.子元素選擇器: 7.表單選擇器: ...
  • 全棧工程師也可以叫web 前端 H5主要是網站 app 小程式 公眾號這一塊 HTML篇 html(超文本標記語言,標記通用標記語言下的一個應用。) “超文本”就是指頁面內可以包含圖片、鏈接,甚至音樂、程式等非文字元素。 超文本標記語言的結構包括“頭”部分(英語:Head)、和“主體”部分(英語:B ...
  • 我主要進行對日期數據進行查看使用,有數據的顯示顏色、沒有數據可以不選 更多可以查看官方網站:http://www.daterangepicker.com/#examples ...
  • 在js中,函數本身屬於對象的一種,因此可以定義、賦值,作為對象的屬性或者成為其他函數的參數。函數名只是函數這個對象類的引用。 函數定義 從技術上講,這是一個函數表達式。但不推薦使用,因為這種語法會導致解析兩次代碼。第一次是解析常規javascript代碼,第二次解析傳入構造函數中的字元串,影響性能。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...