201871010134-周英傑《面向對象程式設計(java)》第二周學習總結

来源:https://www.cnblogs.com/dlzyj/archive/2019/09/09/11489332.html
-Advertisement-
Play Games

項目 內容 這個作業屬於哪個課程 https://www.cnblogs.com/nwnu-daizh/ 這個作業的要求在哪裡 https://www.cnblogs.com/nwnu-daizh/p/11475377.html 作業學習目標 第一部分:結合Java和C基礎語法的異同比較,總結本周理 ...


項目

內容

這個作業屬於哪個課程

https://www.cnblogs.com/nwnu-daizh/

這個作業的要求在哪裡

https://www.cnblogs.com/nwnu-daizh/p/11475377.html

作業學習目標

  1. 學習並掌握Java Application程式結構;
  2. 學習並掌握Java語言的數據類型與變數;
  3. 學會使用Java運算符構造各類表達式;
  4. 掌握Java Application輸入輸出技術;
  5. 掌握Java流程式控制制技術(分支、迴圈);
  6. 掌握Math類、String類的用法

 

 

 

 

 

 

 

 

 

 

 

第一部分:結合Java和C基礎語法的異同比較,總結本周理論知識 :

1.

1.1標識符

由字母,下劃線,美元符號,數字組成(首字母不能是字母);

1.2關鍵字

class、public、try、catch、import。。。(僅舉例於c語言不相同的);

1.3解釋

“//”進行行註釋;

“/*  */”進行塊註釋;

“/**   */”可用來自動生成文檔的註釋;

2.數據類型

整型 浮點類型 char類型 Unicode和char類型 boolean類型
用來表示沒有小數部分的數值,它允許是負數 用來表示有小數的部分  原來用來表示單個字元    用來判定邏輯條件

int             4位元組

short         2位元組  

long          8位元組

byte          1位元組

float       4位元組

double   8位元組

(!正無窮大!負無窮大!NaN)

 char    只有兩個類型:false,true

 

 

 

 

 

 

 

 

3.變數

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

3.2在Java中,一行可以聲明多個變數。逐一聲明每一個變數可以提高程式的可讀性。

3.3變數的初始化

1>一個變數聲明後,必須通過賦值語句對它進行明確的初始化——永遠不要使用一個未初始化的變數的值。

2>在Java中,可以在代碼的任何位置進行變數聲明。變數的聲明應該儘可能地靠近變數第一次使用的地方,方便閱讀和使用。

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

3.4常量的定義

1>在Java中,使用關鍵字final來指示常量。習慣上常量名都用大寫。

final double CM_PER_INCH=2.54;

2>關鍵字final表示只能對變數賦一次值,其值一旦設定,在後續代碼中不能再對其進行修改。

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

4.運算符

[ ]、() (方法調用)   從左到右                                            

 !  ~  ++  --  +(一元)  –(一元)  ()(強制類型轉換)  new    從右到左

*   /    %  從左到右                                                                    

+ - 從左到右  

<<   >>(算術右移)   >>>(邏輯右移)    從左到右                                                                  

<   <=   >   >=   instanceof    從左到右                                            

==  !=    從左到右                                                                             

&    從左到右                                                                                   

^    從左到右                                                                                   

|    從左到右                                                                                     

&&   從左到右                                                                                 

||   從左到右                                                                                     

?:   從右到左                                                                                   

=  +=  -=  *=  /=   %=   &=  |=   ^=  <<=  >>=  >>>=     從右到左

 

 

 

5.字元串

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

 2>程式中需要用到的字元串大致分為兩大類:

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

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

 3>使用“”定義字元串

  4>Java中會自動為字元串常量生成一個String類的對象,可以直接初始化String對象。

  6.輸入輸出技術;

  1>鍵盤輸入:

         Scanner in=new Scanner(System.in);

          int cnt=in.nextInt();

   2>輸出

          system.out.print();

7.控制流程

控制流程
分支 迴圈

                          if-else語句

                          switch語句

                             for迴圈語句

                            while迴圈語句

                            do-while語句

 

 

 

 

 

 

 

 

 

**不同於C語言的java特有的迴圈for each,可以用來處理數組中的每個元素而不必為指定下標值而分心

語句格式:

     for(variable:collection)statement

8.數組

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

2>對元素的確定是由數組名和它的下標實現的,

第二部分:實驗部分

實驗名稱:實驗二 Java基本程式設計

1.  實驗目的:

(1)進一步熟悉命令行和IDE兩種方式下java程式開發的基本步驟;

(2)掌握Eclipse集成開發環境下導入Java源程式的過程;

(3)掌握Java語言構造基本程式的數據類型、變數、運算符、各類表達式、輸入輸出、流程式控制制的基本語法;

(4)掌握Math類、String類、StringBuilder類的用法。

3. 實驗步驟與內容:

實驗1 程式互評

實驗2 :編寫包含以下代碼片段的java應用程式,輸出字元串類對象s3的值。

String s1=“Hello!”;

String s2=“World”;

String s3=s1+s2;

 

源代碼

 1 package MyProject;
 2 
 3 public class Week2 {
 4 
 5     public static void main(String[] args) 
 6     {
 7         // TODO Auto-generated method stub
 8         String s1 ="Hello!";
 9         String s2= "World";
10         String s3=s1+s2;
11         System.out.println(s3);
12     }
13 
14 }

運行結果

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

源代碼

 1 package MyProject;
 2 
 3 public class Week2{
 4     public static void main(String[] args) 
 5 {
 6     StringBuilder s1=new StringBuilder("Hello!");
 7     StringBuilder s2=new StringBuilder("world");
 8     StringBuilder s3=new StringBuilder();
 9     s3.append(s1);   //append 字元拼接
10     System.out.println(s3);
11  }
12 }

運行結果

實驗4 :在命令行方式下調試運行下列程式,理解java應用程式命令行參數的用法。

源代碼

 1 package MyProject;
 2 
 3         public class Message
 4         {  
 5         public static void main(String[] args)
 6           {     
 7           if (args[0].equals("-h")) System.out.print("Hello");
 8             else if(args[0].equals("-g")) System.out.print("goodbye,");
 9           for(int i=1;i<args.length;i++)
10             System.out.print("  "+args[i]);
11           System.out.println("!");
12           }
13         
14     }

 

運行結果

 

 

 

實驗5 :1>java程式導入Eclipse環境下導入第3章示常式序InputTest.java步驟:

 

 

  2>選擇File->import->File System->Next,打開文件導入視窗如下圖,點擊上方Browse選擇導入源程式並選中,點擊下方Browse選擇源程式導入位置為新項目InputTest/src位置後,點擊finish完成導入。

 

 

  3>打開InputTest項目src文件夾的預設包,雙擊InputTest.javaIDE源程式編輯區打開文件。

4>右鍵單擊InputTest.java文件名打開快捷菜單,選擇Run as->java application運行此程式,結合程式運行結果,理解代碼中Scanner類對象用法,掌握java控制台輸入方法

源代碼

 1 import java.util.*;
 2 
 3 /**
 4  * This program demonstrates console input.
 5  * @version 1.10 2004-02-10
 6  * @author Cay Horstmann
 7  */
 8 public class InputTest
 9 {
10    public static void main(String[] args)
11    {
12       Scanner in = new Scanner(System.in);
13 
14       // get first input
15       System.out.print("What is your name? ");
16       String name = in.nextLine();
17 
18       // get second input
19       System.out.print("How old are you? ");
20       int age = in.nextInt();
21 
22       // display output on console
23       System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
24    }
25 }

 

 

 

 

實驗6 按照實驗5操作步驟,導入WriteReadFileTest.java示常式序,運行程式並理解程式代碼,觀察項目文件夾下文件myfile.txt的內容,掌握文件的輸入輸出操作。

源代碼

 1 import java.io.File;
 2 import java.io.FileNotFoundException;
 3 import java.io.PrintWriter;
 4 import java.util.Scanner;
 5 import java.util.Arrays;
 6 
 7 public class WriteReadFileTest {
 8 
 9     /**
10      * @param args
11      * @throws FileNotFoundException 
12      */
13     public static void main(String[] args) throws FileNotFoundException {
14 
15         //寫入文件演示
16         PrintWriter out = new PrintWriter("myfile.txt");
17         out.println("姓名 高數 Java 數據結構 平均成績 總成績");
18         out.println("張三 20 30 40 0 0");
19         out.println("李四 50 60 70 0 0");
20         out.close();//切記,輸出完畢,需要close
21         
22         
23         //讀入文件演示
24         Scanner in = new Scanner(new File("myfile.txt"));//為myfile.txt這個File創建一個掃描器in
25         int number = 1;//行號
26         while(in.hasNextLine()){//判斷掃描器是否還有下一行未讀取,該迴圈把文件的每一行都讀出
27             String line = in.nextLine();//讀出myfile.txt的下一行
28             System.out.println("第"+(number++)+"行的內容" +"="+line);
29             
30             Scanner linescanner = new Scanner(line);//對每一行的內容建立一個掃描器
31             linescanner.useDelimiter(" ");//使用空格作為分隔符
32             String name = linescanner.next();
33             String math = linescanner.next();
34             String java = linescanner.next();
35             String ds = linescanner.next();
36             String avg = linescanner.next();
37             String total = linescanner.next();
38             System.out.println("name="+name+" math="+math+" java="+java+" ds="+ds+" avg"+avg+" total="+total);
39         }
40         in.close();//讀入完畢,最後需要對其進行close。    
41 
42  }
43 }

運行結果

 

 

 

實驗7 按照實驗5的操作步驟,導入第3章3-3——3-4示常式序,掌握兩個程式迴圈控制結構的用途。

3-3源代碼

 1 import java.util.*;
 2 
 3 /**
 4  * This program demonstrates a <code>while</code> loop.
 5  * @version 1.20 2004-02-10
 6  * @author Cay Horstmann
 7  */
 8 public class Retirement
 9 {
10    public static void main(String[] args)
11    {
12       // read inputs
13       Scanner in = new Scanner(System.in);
14 
15       System.out.print("How much money do you need to retire? ");
16       double goal = in.nextDouble();
17 
18       System.out.print("How much money will you contribute every year? ");
19       double payment = in.nextDouble();
20 
21       System.out.print("Interest rate in %: ");
22       double interestRate = in.nextDouble();
23 
24       double balance = 0;
25       int years = 0;
26 
27       // update account balance while goal isn't reached
28       while (balance < goal)
29       {
30          // add this year's payment and interest
31          balance += payment;
32          double interest = balance * interestRate / 100;
33          balance += interest;
34          years++;
35       }
36 
37       System.out.println("You can retire in " + years + " years.");
38    }
39 }

運行結果

 

 

 3-4源代碼

 1 import java.util.*;
 2 
 3 /**
 4  * This program demonstrates a <code>do/while</code> loop.
 5  * @version 1.20 2004-02-10
 6  * @author Cay Horstmann
 7  */
 8 public class Retirement2
 9 {
10    public static void main(String[] args)
11    {
12       Scanner in = new Scanner(System.in);
13 
14       System.out.print("How much money will you contribute every year? ");
15       double payment = in.nextDouble();
16 
17       System.out.print("Interest rate in %: ");
18       double interestRate = in.nextDouble();
19 
20       double balance = 0;
21       int year = 0;
22 
23       String input;
24 
25       // update account balance while user isn't ready to retire
26       do
27       {
28          // add this year's payment and interest
29          balance += payment;
30          double interest = balance * interestRate / 100;
31          balance += interest;
32 
33          year++;
34 
35          // print current balance
36          System.out.printf("After year %d, your balance is %,.2f%n", year, balance);
37 
38          // ask if ready to retire and get input
39          System.out.print("Ready to retire? (Y/N) ");
40          input = in.next();
41       }
42       while (input.equals("N"));
43    }
44 }

運行結果

 

 

 

 

實驗8 按照實驗5的操作步驟,導入第3章3-5示常式序,理解抽獎概率計算演算法。

 1 import java.util.*;
 2 
 3 /**
 4  * This program demonstrates a <code>for</code> loop.
 5  * @version 1.20 2004-02-10
 6  * @author Cay Horstmann
 7  */
 8 public class LotteryOdds
 9 {
10    public static void main(String[] args)
11    {
12       Scanner in = new Scanner(System.in);
13 
14       System.out.print("How many numbers do you need to draw? ");
15       int k = in.nextInt();
16 
17       System.out.print("What is the highest number you can draw? ");
18       int n = in.nextInt();
19 
20       /*
21        * compute binomial coefficient n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3*...*k)
22        */
23 
24       int lotteryOdds = 1;
25       for (int i = 1; i <= k; i++)
26          lotteryOdds = lotteryOdds * (n - i + 1) / i;
27 
28       System.out.println("Your odds are 1 in " + lotteryOdds + ". Good luck!");
29    }
30 }

運行結果

 

 

 

4. 實驗總結:

在經過實驗之後我瞭解到了Java語言有8種數據類型,其中4種整型、2種浮點類型、1種用於表示Unicode編碼的字元單元的字元類型char和1種用於表示真值的boolean類型。float類型的數值有一個尾碼F或者f,沒有尾碼的話就預設為double。在Java語言中,利用關鍵字final指示常量,一次。一旦被賦值之後,就不能夠再更改了。boolean類型值只有兩個,是 true 和false,Java語言中boolean和整形兩者之間不能相互轉換,數據之間進行運算時需要註意運算符的先後 順序。字元串包含兩類:創建之後不會再做修改和變動的不可變字元串String類;創建之後允許再做更改和變化的構建字元串StringBuilder類。在編寫程式的過程中需要註意文件的輸入與輸出。其餘的數組,控制流程和C語言大致類似,上周差不多就這些了。

 

 

 

 

 

 

 

 

 

 

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • isinstance() 判斷isinstance(obj,cls)中obj是否是cls類的對象 issubclass() 判斷issubclass(sub,super)中sub是否是super類的派生類 反射 反射就是用字元串類型的名字去操作變數,python中的一切事物皆為對象(都可以使用反射) ...
  • 今日所學: /* 2019.08.19開始學習,此為補檔。 */ 1.String類 實例化:①String name1 = "張三" ; ②String name2 = new String("李四") ; 2.==比較的是引用,equals比較的是具體內容。 String name3 = nam ...
  • 力爭清晰完整準確(逐步完善,持續更新) 1、String類為什麼是final的 首先分析String的源碼: 類被final關鍵字限定,說明它不可以被繼承,沒有子類。即持有一個String對象的引用,它必然是String類,而不會是其他的類。 value[]是用來存儲值的,被final關鍵字修飾,說 ...
  • 之前看過《深入瞭解Java虛擬機》感覺容易忘,今天寫一篇博客加深一下印象。 JVM的記憶體分配和垃圾回收(GC)主要發生在Java堆中。而Java堆根據對象的存活時間可以分為新生代和老年代,而新生代又細分為Eden區、From Survivor區、To Survivor區,這是由於新生代中的垃圾回收算 ...
  • 前言 這個周末被幾個技術博主的同一篇公眾號文章 "fastjson又被髮現漏洞,這次危害可導致服務癱瘓!" 刷屏,離之前漏洞事件沒多久,fastjson 又出現嚴重 Bug。目前項目中不少使用了 fastjson 做對象與JSON數據的轉換,又需要更新版本重新部署,可以說是費時費力。與此同時,也帶給 ...
  • 0909自我總結 drf框架中jwt 一.模塊的安裝 :http://getblimp.github.io/django rest framework jwt/ 他是個第三方的開源項目 :`pip install djangorestframework jwt` 使用 設定好的jwt 測試介面:po ...
  • 異常處理(Throwable)和繼承Exception類是Throwable類的子類Throwable類的主要方法自定義異常類繼承於Exception類,通過throw new Exception手動拋出異常Java不支持多繼承繼承的特性:繼承調用父子類構造函數順序問題 異常處理(Throwable ...
  • 前面介紹了通過JDBC如何管理資料庫,當時提到Statement專門提供了executeQuery方法用於查詢操作,為什麼查詢操作這麼特殊呢?這是因為其它語句跑完一次就了事了,頂多像insert、update、delete再返回受影響的記錄數量,但select命令跟它們不一樣,查詢語句可能會返回多條 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...