扎西平措 201571030332 《面向對象程序設計 (JAVA)》第二週 學習總結

                                                                              面向對象程序設計 (JAVA)》第二週 學習總結java

項目算法

內容數組

這個做業屬於哪一個課程數據結構

<任課教師博客主頁連接>https://www.cnblogs.com/nwnu-daizh/app

這個做業的要求在哪裏eclipse

<做業連接地址><https://edu.cnblogs.com/campus/xbsf/2018CST1/homework/4519>函數

做業學習目標學習

 

<填寫具體目標>測試

  • 適應老師教學方式,能按照自主學習要求完成本週理論知識學習;
  • 掌握Java Application程序結構;
  • 掌握Java語言的數據類型與變量;
  • 學會使用Java運算符構造各種表達式;
  • 掌握Java Application輸入輸出技術;
  • 掌握Java流程控制技術(分支、循環);(重點)
  • 掌握Math類、String類的用法。(難點)

 

 

 

  

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

一.簡單的Java程序應運程序

1.標識符0標識符由字母、下劃線、美圓符號和數字組成,且第一個符號不能爲數字。

 

   標識符可用做:類名、對象名、變量名、方法名、數組名、文件名等

2.關鍵字關鍵字就是Java語言中已經被賦予特定意義的一些單詞。常見有:class、public、try、catch、if、float、import、void等。關鍵字不作變量名。

二.註釋

        註釋Java有三種註釋的方式:1.註釋內容由//一直到此行結束。

                                                       2./*和*/定義一個註釋塊。

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

三.數據類型

1.數據類型Java是一種強類型語言。這意味着每個變量必須聲明一種爲類型。

  Java共有8種基本類型   -整數類型(int、short、long、byte)-浮點類型(float、double)-字符類型(char)-布爾類型(boolean)
2.整數類型整型常量表示:十進制,八進制,十六進制,二進制
   整型變量的數據類型分爲四種:int short long byte,Java中整數的範圍與運行Java代碼的機器無關且Java中沒有unsigned類型。
   int型   ,變量定義:int x;int height,age;定義同時可賦值:intheight=180,age=20;對於int型變量,內存分配個4字節,佔32位                                              
  short型  ,變量定義:short h;short m,n;定義同時可賦值:shortm=12,n=20;對於short型變量,內存分配2個字節,佔16位,                                              
  long型  ,變量定義:long sum;long I,j.k;定義同時可賦值:longsum=343435L;對於long型變量,內存分配8個字節,佔64位 ,                                             
  byte型  ,變量定義:byte w;byte x,y,z;定義同時可賦值:bytex=12,y=24,z=36;對   於byte型變量,內存分配個1字節,佔8位
 
3.浮點類型Java中有兩種浮點類型:float double
   浮點常量的表示:小數表示,科學計數表示溢出和出錯的三種特殊的浮點常量:正無窮大——Double.POSITIVEINFINITY負無窮大——Double.NEGATIVE_INFINITYNaN
   float型有效小數位數爲6~7,變量的定義float x;floatx1,x2,x3,定義時賦初值floatx1=12.23f,x2=32.00f,x3,對於float型變量內存分配4個字節,佔32位    
  double型有效小數位數爲15,變量定義double d;doubled1,d2,d3,定義時能夠賦初值doubled1=12.23,d2=32.00d,d3;對於double型變量內存分配8個字節,佔64位。
4.字符類型常量‘a’、‘A’、‘8’、‘?'。變量定義char q;char c,type,cat;定義同時可賦值char c=‘a ',type,cat;19   字符集:Java採用unicode字符編碼集,該編碼集16位,含有65536個字符。
  Unicode(統一碼、萬國碼)是一個編碼規範,轉義字符-前綴lu表示Unicode值,而十六進制的4位數字則代表具體是哪一個Unicode字符。
5.布爾類型常量true、false變量的定義boolean x;boolean x,y;定義同時可賦值booleanx=true,y=false;在Java中,布爾值和整數不能相互轉換
 
四.變量
1.變量在Java中,每個變量屬於一種類型。在聲明變量時,變量所屬的類型位於變量名以前。-double salary;-int vacationDays;-long earthPopulation;-boolean done;在Java中,一行能夠聲明多個變量。逐一聲明每個變量能夠提升程序的可讀性。 2.變量初始化一個變量聲明後,必須經過賦值語句對它進行明確的初始化——永遠不要使用一個未初始化的變量值。在Java中,能夠在代碼的任何位置進行變量聲明。變量的聲明儘量地靠近變量第一次使用的地方,這是一種良好的程序編寫風格。在Java中,不能在同一做用域內聲明兩個同名的變量
 
五.運算符
1.各類運算符:與面向對象運算相關Java提供的一個特別運算符new-這是一個用來建立對象的運算符。Java另一個特別運算符Instanceof-返回一個布爾值來指出某個對象是不是一個特定類或者是它的子類的一個實例。 2.需注意運算符的優先級與結合性優先級操做符結合性 3.數學函數與常量數學函數包含在Math類中。-冪函數-三角函數-指數函數及它的反函數等Java還提供了兩個常量。-Math.PI-Math.E若不想在數學方法名和常量名前加前綴Math.」,可在源文件頂部加上如下代碼便可。 4.強制類型轉換強制類型轉換的語法:(目標類型) 變量。
 
六.字符串
1.字符串Java字符串是Unicode字符的序列,它是組織字符的基本數據結構,用法相似於字符數組。有內置的字符串類型,在標準Java類庫中提供了一個Java預約義類String。
   程序中須要用到的字符串能夠分爲兩大類:-建立以後不會再作修改和變更的不可變字符串String類;-建立以後容許再作更改和變化的構建字符串StringBuilder類。
 
七.輸入輸出
1.讀取輸入經過控制檯進行輸入時,須要構造一個Scanner對象,並與「標準輸入流」System.in關聯。-Scannerin=newScanner(System.in);-例3-2InputTest.javap55任務:測試InputTest.javaScanner類定義在java.util包中,所以使用時需將相應的包加載進來 2.文件輸入與輸出要想對文件進行讀取,就須要一個用File對象構造一個Scanner對象。要想寫入文件,就須要構造一個PrintWriter對象,在構造器中,須要需提供文件名。
 

八控制語句(程序控制流程由這些控制語句肯定)

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程序設計語言。

相關文章
相關標籤/搜索