日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

描述java源程序构成_Java第二章Java程序设计

發布時間:2024/1/23 java 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 描述java源程序构成_Java第二章Java程序设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

《Java第二章Java程序設計》由會員分享,可在線閱讀,更多相關《Java第二章Java程序設計(140頁珍藏版)》請在人人文庫網上搜索。

1、第2章 Java基本語法,2.1 Java程序的構成 2.2 數據類型、變量和常量 2.3 運算符和表達式 2.4 流程控制 2.5 數組 習 題,學習目的與要求: 深刻理解并熟記Java 的語法規范。 熟練使用各種數據類型的定義、表示和引用。 熟練使用各種控制語句。 熟練使用一維數組,文件命名規則,總則:文件名必須與類名一致。 (1)如果文件只有一個類,那么文件名必須與類名完全一致,包括大小寫。 (2)一個文件中,只能有一個public類; (3)如果文件中不只一個類,那文件名必須與聲明為public的類名保持一致;,(4)如果文件不只一個類,沒有聲明為public類,則文件名可以與其他類的。

2、名字中的一個保持一致; (5)如果類中有main方法,并聲明為public類,main方法必須位于public類中; (6)如果類中有main方法,沒有聲明為public類,文件名保存為與含有main方法的類名一致。,/*檢測類名與文件名的一致性*/ class StudentTest public static void main(String args) Student aStudent=new Student(); aStudent.setName(“張楠”); aStudent.setStudentNum(“2010416001”); System.out.println(“學生的姓名。

3、是:”+aStudent.getName()+”,學號是:”+aStudent.getStudentNum(); ,class People private String name; public String getName() return name; public void setName(String strName) name=strName; ,class Student extends People private String studentNum; public String getStudentNum() return studentNum; public void set。

4、StudentNum(String strStudentNum) studentNum=strStudentNum; ,文件名只能保存為StudentTest.java才能運行。 思考:在class StudentTest前面加上public后,再保存為People.java或Student.java,編譯會出現什么情況。,2.1 Java程序的構成,2.1.1 邏輯構成 Java源程序邏輯構成分為兩大部分:程序頭包的引用和類的定義。 1. 程序頭包的引用 主要是指引用JDK軟件包自帶的包,也可以是自己定義的類。引用之后程序體中就可以自由應用包中的類的方法和屬性等。,2. 類的定義 源程序必須。

5、有一個主類; 在應用程序中,主類為包含main方法的類; 在Applet中,主類為用戶自定義的系統Applet類的擴展類。在Java源程序中,主類的名字同文件名一致。 類的定義又包括類頭聲明和類體定義。類體中包括屬性聲明和方法描述。,2.1.2 物理構成 Java源程序物理上由三部分構成,分別為語句、塊和空白。 (1) 語句指一行以分號“;”結束的語句。 (2) 塊指用括號對界定的語句序列,塊可以嵌套使用。 (3) 空白指語句之間、塊內部或者塊之間的空白行。空白不影響Java源程序的編譯和運行,適當地運用空白,可以形成良好的代碼風格。,2.1.3 注釋語句 行注釋為以/開始的行; 塊注釋以/*。

6、開始和*/結束 例如,下面的語句就是注釋語句用來說明程序文件名稱的。 /程序文件名稱為WelcomeApplet.java 上述的語句注釋可以更改為: /*程序文件名稱為WelcomeApplet.java*/ 或 /* 程序文件名稱為 WelcomeApplet.java */,2.1.4 標識符、關鍵字和轉義符 在Java語言中,標識符是賦予變量、類和方法等的名稱。由編程者自己指定,但需要遵循一定的語法規范: (1) 標識符由字母、數字、下劃線(_)、美元符號($)組成,但美元符號用得較少。 (2) 標識符從一個字母、下劃線或美元符號開始。 (3) Java語言中,標識符大小寫敏感,必須區。

7、別對待。 (4) 標識符沒有最大長度的限制,但最好表達特定的意思。 (5) 標識符定義不能是關鍵字。,例如:_abc , $ABC ,2A ,A# ,For,順時 Java開發的命名習慣 所有的命名要望文生義,這樣才具有良好的可讀性 Total,Sum,ShunshiStudent 類名,接口名:每個單詞的首字母大寫,其他字母小寫 如類MyFirstJava,Player,Teacher 屬性,方法,,局部變量名:第一個單詞全小寫,從第二個單詞開始以后每個單詞首字母大寫,其他字母小寫 如方法 getName() setDoctorBirthday() 常量:每個單詞所有字母全部大寫,單詞之間用。

8、_來連接 java中使用final修飾 final int MARK_GREED=22; 包名:所有字母全部小寫 如package com.shunshi.corejava.day01,_abc , $ABC ,2A ,A# ,For,順時 關鍵字又稱保留字,是指Java語言中自帶的用于標志數據類型名或者程序構造名等的標識符,如public、double等。,關鍵字:對Java技術編譯器有特殊的含義,可以被編譯器識別執行 abstract do implements private throw boolean double import protected throws break else 。

9、instanceof public transient byte extends int return true case false interface short try catch final long static void char finally native super volatile class float new switch while continue for null synchronized default if package this,Java關鍵字特點 java關鍵字與c+很多相似,只要與c+一樣的,它的含義都與c+中的相同 有些關鍵字c+有,而java沒有 。

10、sizeof求出某種類型的變量的占內存的大小 為什么c+有sizeof? 因為不同機器內存占用空間大小不一樣 16,32,64位,取決于操作系統平臺。 為什么Java不需要? 因為有JVM。 java中的關鍵字都是小寫的 true、false和null為小寫,而不是象在C+語言中那樣為大寫。嚴格地講,它們不是關鍵字。,有些關鍵字java沒有取消保留下來,但它自己也不用它也不給程序員用 goto和const不是Java編程語言中使用的關鍵字,而是保留字。 什么是保留字? 為什么保留下來但不能用? 在java中final替代const goto在c+代表無條件跳轉,功能很好,但不能經常用,要謹慎。。

11、 很多建議去掉goto關鍵字,沒有理解goto真正含義。 為什么c+到現在都沒有刪除掉goto?它有一個特殊使命 Java中使用break代替goto 跳出一層循環 :break 跳出多層循環:break out out是一個標號,可以跳到out標識處 break避免濫用goto,把goto功能削弱了,只能跳到外層循環 java中加入新的關鍵字enum assert enum:枚舉 assert:斷言,表2.1 轉 義 符,轉義符是指一些有特殊含義的、很難用一般方式表達的字符,如回車、換行等。所有的轉義符以反斜線()開頭,后面跟著一個字符來表示某個特定的轉義符,如表2.1所示。,2.2 數據類。

12、型、變量和常量,2.2.1 數據類型 Java編程語言定義了八種基本的數據類型(見表2.2),共分為四類:整數類(byte、short、int、long)、文本類(char)、浮點類(double、float)和邏輯類(boolean)。,表2.2 Java的數據類型,1. 整數類 (1) 采用三種進制十進制、八進制和十六進制。 2 十進制值是2; 077 首位的0表示這是一個八進制的數值; 0 xBAAC 首位的0 x表示這是一個十六進制的數值。 (2) 具有缺省int。 (3) 用字母“L”和“l”定義long。 (4) 所有Java編程語言中的整數類型都是帶符號的數字。,2. 文本類 (。

13、1) 代表一個16 bit Unicode字符。 (2) 必須包含用單引號( )引用的文字。 (3) 使用下列符號: a一個字符。 t-一個制表符。 u? -一個特殊的Unicode字符,?應嚴格使用四個十六進制數進行替換。,3. 浮點類 默認為double類型,如果一個數字包括小數點或指數部分,或者在數字后帶有字母F或f(float)、D或d(double),則該數字為浮點數。,4. 邏輯類 boolean數據類型有兩種值:true和false。 例如:boolean flag = true; 上述語句聲明變量flag為boolean 類型,它被賦予的值為true。,數據類型轉換:分為自動類。

14、型轉換和強制類型轉換 自動類型轉換: 整型、浮點型、字符型數據可以混合運算。在執行運算時,不同類的數據先轉化為同一類型,然后進行運算。轉換從低級到高級的順序為: Short或byte int longfloat double char 強制類型轉換 高級數據要轉換成低級數據需用強制類型轉換,格式為: (數據類型)數據或(數據類型)(表達式) 注:邏輯類數據不能和其它類型的數據轉換。,強制類型轉換:只要不能自動轉換的,則只能是強制轉換 整型數據之間的強轉:改變數據的符號;改變數值 int a=0 x2aff; byte b=(byte)a; b為-1 強制轉換的原理:從最低位開始取到目標類型長度。

15、為止 整型之間的強轉是保留二進制低位,去掉高位,需要考慮在內存中如何存儲 實型強轉整型是保留整數,去掉小數,不考慮實型在內存中的如何存儲 byte+byte會自動提升為int byte a1=1,a2=2;byte a3=a1+a2;(精度丟失) +=不進行類型提升 byte c=3; c=c+3; c+=3;System.out.println(c); 默認整型為int,int,long提升為float有精度丟失 float fa=37; System.out.println(fa); int ia=(int)fa; System.out.println(ia);,2.2.2 變量與常量 常。

16、量是指整個運行過程中不再發生變化的量 變量是指程序的運行過程中發生變化的量,通常用來存儲中間結果,或者輸出臨時值。 變量的聲明也指變量的創建。執行變量聲明語句時,系統根據變量的數據類型在內存中開辟相應的存儲空間并賦予初始值。變量有一個作用范圍,超出它聲明語句所在的塊就無效。,Java的常量 Java中的常量分為整數型常量、浮點型常量、布爾型常量、字符型常量和字符串常量 常量的定義格式為: final 常量類型 常量名1=常量值,常量名2=常量值2. final是定義常量的關鍵字。 Java中的常量值區分為不同的類型,類型可以是Java中任何合法的數據類型,Java的變量 Java變量定義的格式。

17、: 類型名 變量名1,變量名2,; 或:類型名 變量名1=初值,變量名2=初值,; 變量按作用域分類: 局部變量:在方法或方法的代碼塊中聲明,作用域從該變量的定義位置起到它所在的代碼塊結束。 方法參數(形式參數):傳遞給方法的參數,作用域是這個方法。 異常處理參數:傳遞給異常處理代碼,作用域是異常處理部分。 注意: 局部變量必須先賦值再使用 局部變量的作用域是從定義它開始到定義它的代碼塊結束 在同一重合范圍內不允許有2個同名局部變量出現, 類(成員)變量:在類定義中聲明,作用域是整個類。 在一個確定的域中,變量名應是唯一的。通常,一個域用大括號來劃定,下面看一個使用各種類型變量聲明并改變的示例。

18、。程序中pi為常量,s1、i1、l1、ch1、f1、d1、b1為全局變量,可以在方法change中發生改變,然后在方法main中輸出。而s2、i2、l2、ch2、f2、d2、b2是方法main的局部變量,它們的作用范圍只局限于方法main中。 【例2.2】測試不同數據類型的變量,程序輸出如圖2.2所示。源程序代碼如下: /程序文件名稱為SetVariable.java public class SetVariable /全局變量,static double pi = 3.141592654;/數學常量static short s1; static int i1; static long l1;。

19、 static char ch1; static float f1; static double d1; static boolean b1; public static void main(String args) ,/局部變量 short s2 = 35; int i2 = -32; long l2 = 34555L; char ch2 = A; float f2 = 897.89F; double d2 = 34.345; boolean b2 = false; /輸出常量 System.out.println(數學常量pi = + pi); /輸出局部變量,System.out.pri。

20、ntln(*局部變量*); System.out.println(短整型變量s2 = + s2); System.out.println(整型變量i2 = + i2); System.out.println(長整型變量l2 = + l2); System.out.println(字符變量ch2 = + ch2); System.out.println(浮點數類型f2 = + f2); System.out.println(雙精度型變量d2 = + d2); System.out.println(布爾型變量b2 = + b2); /調用方法修改全局變量的值,change(); /輸出全局變量的值。

21、 System.out.println(*全局變量*); System.out.println(短整型變量s1 = + s1); System.out.println(整型變量i1 = + i1); System.out.println(長整型變量l1 = + l1); System.out.println(字符變量ch1 = + ch1); System.out.println(浮點數類型f1 = + f1); System.out.println(雙精度型變量d1 = + d1); System.out.println(布爾型變量b1 = + b1); ,/方法:修改全局變量的值 publ。

22、ic static void change() s1 = 125; i1 = 88; l1 = 987654321L; ch1 = B; f1 = 3.2590F; d1 = -1.04E-5; b1 = true; ,圖2.2 變量輸出結果,2.3 運算符和表達式,Java常用的運算符分為五類:算術運算符、賦值運算符、關系運算符、布爾邏輯運算符、位運算符。 表達式是由常量、變量、對象、方法調用和操作符組成的式子。表達式必須符合一定的規范,才可被系統理解、編譯和運行。表達式的值就是對表達式自身運算后得到的結果。 根據運算符的不同,表達式相應地分為以下幾類:算術表達式、關系表達式、邏輯表達式、賦。

23、值表達式,這些都屬于數值表達式。,2.3.1 算術運算符及算術表達式 Java中常用的算術運算符如下: +加運算符 -減運算符 *乘運算符 /除運算符 %取模運算(除運算的余數) +增量運算符 -減量運算符,【例2.3】測試運算符及表達式,程序輸出如圖2.3所示。源程序代碼如下: /程序文件名稱為NumberOper.java public class NumberOper public static void main(String args) /變量初始化 int a = 30; int b = 20; /定義結果變量 int r1,r2,r3,r4,r5,r6,r7,r8,r9; /計算。

24、結果 r1 = a + b;,r2 = a-b; r3 = a * b; r4 = a / b; r5 = a % b; r6 = a +; r7 = b-; r8 = + a; r9 = - b; /輸出結果 System.out.println(a = + a + b = + b); /a,b的值 System.out.println(a+b = + r1); System.out.println(a-b = + r2);,System.out.println(a*b = + r3); System.out.println(a/b = + r4); System.out.println(a。

25、%b = + r5); System.out.println(a+ = + r6); System.out.println(b- = + r7); System.out.println(+a = + r8); System.out.println(-b = + r9); ,圖2.3 程序輸出結果,2.3.2 關系運算符 關系運算符用于比較兩個數據之間的大小關系,關系運算表達式返回布爾值,即“真”或“假”。Java中的常用關系運算符如下: = =等于 ! =不等于 大于 =大于等于 =小于等于,【例2.4】編寫程序,測試關系運算符及其表達式,程序輸出如圖2.4所示。源程序代碼如下:,/程序文件名。

26、稱為TestRelation.java public class TestRelation public static void main(String args) /變量初始化 int a = 30; int b = 20; /定義結果變量 boolean r1,r2,r3,r4,r5,r6; /計算結果,r1 = a = b; r2 = a != b; r3 = a b; r4 = a = b; r6 = a b = + r3); System.out.println(a=b = + r5); System.out.println(a=b = + r6); ,圖2.4 程序輸出結果,2.3。

27、.3 布爾邏輯運算符,表2.3 布爾運算符及規則,例如: Boolean a = false; Boolean b = true; a boolean b = true; /定義結果變量 boolean r1,r2,r3,r4,r5,r6; /計算結果,r1 = !a; r2 = a ,圖2.5 程序輸出結果,2.3.4 位運算符 Java中的常用位運算符如下: 位求反 int b = 2; /定義結果變量 int r1,r2;,/計算結果 r1 = a b; r2 = a b = + r1); System.out.println(ab = + r2); ,圖2.6 程序輸出結果,2.3.5。

28、 賦值運算符 賦值運算符分為簡單運算符和復雜運算符。簡單運算符指“=”,而復雜運算符是指算術運算符、邏輯運算符、位運算符中的雙目運算符后面再加上“=”。表2.4列出Java常用的賦值運算符及其等價表達式。,表2.4 賦值運算符及其等價表達式,2.3.6 其它操作符及其表達式 三目運算符(?:)相當于條件判斷,表達式x?y:z用于判斷x是否為真,如果為真,表達式的值為y,否則表達式的值為z。 例如: int x = 5; int a = (x3)?5:3; 則a的值為5。如果x = 2,則a的值為3。,對象運算符(instanceof)用來判斷一個對象是否屬于某個指定的類或其子類的實例,如果是,。

29、返回真(true),否則返回假(false)。 例如: boolean b = userObject instanceof Applet 用來判斷userObject類是否是Applet類的實例。,2.3.7 優先級,表2.5 運算符優先級,2.4 流 程 控 制,流程控制分為三種基本結構:順序結構、分支結構和循環結構。 分支結構包括單分支語句(if-else語句)和多分支語句(switch語句); 循環結構包括次數循環語句(for語句)和條件循環語句(while語句)。,2.4.1 分支語句 分支語句分為兩類:單分支語句和多選語句。 1. if-else語句 if-else語句的基本格式為:。

30、 if(布爾表達式) 語句或塊1; else 語句或塊2; ,【例2.7】測試if-else語句,如果x10,則輸出x的值,并提示結果正確,否則輸出x= 10,提示結果不正確。程序輸出結果如圖2.7所示。源程序代碼如下: /程序文件名稱為TestIf.java public class TestIf /聲明全局變量x static int x; public static void main(String args) x = 12; if(x10) ,System.out.println(x = + x + 結果正確); else System.out.println(x = 10 + 結果不。

31、正確); change(); System.out.println(修改x的值之后); if(x10) System.out.println(x = + x + 結果正確); else System.out.println(x = 10 + 結果不正確); ,/change方法:修改x的值 public static void change() x = 5; ,圖2.7 程序輸出結果,2. switch語句 switch語句的基本格式為: switch(表達式1) case 表達式2: 語句或塊2; break; case表達式3: 語句或塊3; break; case 表達式4: 語句或塊4。

32、; break; default: 語句或塊5; break; ,其中: (1) 表達式1的值必須與整型兼容。 (2) case分支要執行的程序語句。 (3) 表達式2、3、4是可能出現的值。 (4) 不同的case分支對應著不同的語句或塊序列。 (5) break表示跳出這一分支。,【例2.8】測試switch語句,當x=1、2、3時,分別打印1、2、3,x不為這三個值時,打印x的值。程序輸出結果如圖2.8所示。源程序代碼如下: /程序文件名稱為TestSwitch.java public class TestSwitch public static void main(String arg。

33、s) /聲明變量x int x; x = 12;,System.out.println(x=12時打印的值); choose(x); x = 3; System.out.println(x=3時打印的值); choose(x); /choose方法:switch語句結構 public static void choose(int x) switch(x) ,case 1: System.out.println(1); break; case 2: System.out.println(2); break; case 3: System.out.println(3); break; defaul。

34、t: System.out.println(x); ,圖2.8 程序輸出結果,2.4.2 for循環語句 for循環語句實現已知次數的循環,其基本格式為: for(初始化表達式;測試表達式;步長) 語句或塊; ,其執行順序如下: (1) 首先運行初始化表達式。 (2) 然后計算測試表達式,如果表達式為true,執行語句或塊;如果表達式為false,退出for循環。 (3) 最后執行步長。,【例2.9】用for循環統計1100(包括100)之間數的總和。程序輸出結果如圖2.9所示。源程序代碼如下: /程序文件名稱為TestFor.java public class TestFor public 。

35、static void main(String args) int sum = 0; for(int i = 1; i=100; i+) sum += i; System.out.println(1到100(包括100)的數的總和為: + sum); ,圖2.9 程序輸出結果,2.4.3 while循環語句 while循環語句實現受條件控制的循環,其基本格式為: while(布爾表達式) 語句或塊; 當布爾表達式為true時,執行語句或塊,否則跳出while循環。,上面for循環語句的例子改為while語句后如下所示: int sum = 0; int i = 1; while (i=100)。

36、 sum += i; i+; System.out.println(1到100(包括100)的數的總和為: + sum);,2.4.4 do語句 do語句實現受條件控制的循環,其基本格式為: do 語句或塊; while(布爾表達式),先執行語句或塊,然后再判斷布爾表達式。與while語句不同,當布爾表達式一次都不為true時,while語句一開始判斷就跳出循環,不執行語句或塊,而在do語句中則要執行一次。上面那個例子改為do循環為: int sum = 0; int i = 1; do sum += i; i+; while (i=100); System.out.println(1到100。

37、(包括100)的數的總和為: + sum);,3種循環結構如何選擇,要考慮幾個因素 首先分析業務問題是否是用循環來實現 分析業務問題判斷我們是否已經預先知道循環次數 如果預先知道循環次數:用for循環 如果預先不知道次數:用while循環 若至少要執行一次循環:用do.while循環 3種不同的循環結構其實可以相互轉化,按照上面的規則來選擇可以簡化編程,跳轉語句 Break label:在switch語句中,break語句用來跳過分支中的其它語句 ;在循環語句中,break用來跳出當前的循環語句 Continue label:continue語句只用于循環結構,用來結束本次循環,即跳過循環體中。

38、位于continue語句后面的尚未執的語句 Return 表達式:return語句用于從當前方法中退出 Label:是指標號,只起到對語句標識的作用,2.5 數組,數組 數組(array)是相同類型變量的集合。 數組變量是引用類型的變量,聲明數組變量并不分配內存空間。 聲明一個數組實質是要確定數組名、數組的維數和數組元素的數據類型 。,2.5.1 一維數組,一、一維數組定義 語法格式有兩種: 數組元素類型 數組名; 或 數組元素類型 數組名 如:int intSno或int intSno intSno:為數組名是符合Java標識符定義規則的用戶標識符。 Int:表示數組元素的數據類型為整型 方。

39、括號:數組的標志,Java語言中聲明數組時不能指定其長度。 int array6; ,二、初始化 可以通過直接指定初值的方式來完成,也可以用new操作符來完成。 1直接指定初值的方式 例 int a1=23,-9,38,8,65;,數組a1的初始化,2用關鍵字new初始化數組 用關鍵字new初始化數組,只為數組分配存儲空間而不對數組元素賦初值。用關鍵字new來初始化數組有兩種方式: (1) 先聲明數組,再初始化數組。格式如下: 類型標識符 數組名 ; 數組名=new 類型標識符數組長度; 其中,第一條語句是數組的聲明語句,第二條語句是初始化語句。,int a ; a=new int9;,(2)。

40、 在聲明數組的同時用new關鍵字初始化數組。格式如下: 類型標識符 數組名 =new 類型標識符數組長度; 或 類型標識符 數組名=new 類型標識符數組長度; 例如: int a=new int10;,新創建的數組對象,其元素根據類型被設置為默認的初始值。 數值類型為0 字符類型為u0000 布爾類型為false 引用類型為null,每個數組都有一個屬性length獲取它的長度,例如:a.length 指明數組a的長度(元素個數);,三、數組元素引用 數組名數組下標 其中:數組下標的取值從0開始,下標值可以是整數型常量或整數型變量表達式。 對intSno數組來說下面兩條賦值語句是合法的: i。

41、ntSno4=32; intSno3+2=86; 但intSno6=12;是錯誤的。,增強的for循環(JDK 1.5),JDK 1.5引入一個新的for循環,可以不用下標就可以依次訪問數組元素。語法: for(elementType value : arrayRefVar) 例如 for(int i = 0; i myList.length; i+) sum += myListi; for(double value : myList) sum += value; ,【示例程序c6_1.java】 數組的聲明、初始化和其長度的測定。 public class c6_1 public stati。

42、c void main(String arg ) int i; double a1 ;/ 放在變量后面聲明 char a2; / 放在變量前面聲明 a1=new double8;/為a1分配8個double型元素的存儲空間(64字節) a2=new char8; /為a2分配8個char型元素的存儲空間(16字節),int a3 =new int8;/在聲明數組時初始化數組, 為a3分配32字節 byte a4=new byte8; /在聲明數組時初始化數組,為a4分配8字節 char a5 =A,B,C,D,E,F,H,I;/直接指定初值方式 /下面各句測定各數組的長度,/以下各句引用數組中。

43、的每一個元素,為各元素賦值 for(i=0;i8;i+) a1i=100.0+i; a3i=i; a2i=(char)(i+97);/將整型轉換為字符型 System.out.println(a1.length=+a1.length); System.out.println(a2.length=+a2.length); System.out.println(a3.length=+a3.length); System.out.println(a4.length=+a4.length); System.out.println(a5.length=+a5.length);,/下面各句打印各數組元素 。

44、System.out.println(ta1ta2ta3ta4ta5); System.out.println(tdoubletchartinttbytetchar); for(i=0;i8;i+) System.out.println(t+a1i+t+a2i+t+ a3i+t+a4i+t+a5i); ,該程序的運行結果如下: a1.length=8 a2.length=8 a3.length=8 a4.length=8 a5.length=8,a1 a2 a3 a4 a5 double char int byte char 100.0 a 0 0 A 101.0 b 1 0 B 102.0 。

45、c 2 0 C 103.0 d 3 0 D 104.0 e 4 0 E 105.0 f 5 0 F 106.0 g 6 0 H 107.0 h 7 0 I,數組下標的靈活使用 【示例程序c6_2.java】 用數組求解Fibonacci數列的前20項,即使用數組下標表達式求解數學上的迭代問題。,public class c6_2 public static void main(String args) int i; int f =new int20;/創建數組f,使其可存儲20個整型數據 f0=1;f1=1; for(i=2;i20;i+) fi=fi-2+fi-1;/數組元素的下標使用循環變。

46、量 for(i=0;i20;i+) if(i%5=0)System.out.println(n); System.out.print(t+fi); ,運行結果是: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765,【示例程序c6_3.java】 設數組中的數值是由小到大存放的,編寫二分查找程序。 import java.io.*; class FindSearch int binarySearch(int arr ,int searchValue) int low=0;/ low是第一個數組元素的下標 int 。

47、high=arr.length-1;/ high是最后一個數組元素的下標 int mid=(low+high)/2; / mid是中間那個數組元素的下標 while(low=high /要找的數可能在數組的后半部分中,else high=mid-1; /要找的數可能在數組的前半部分中 mid=(low+high)/2; if(lowhigh) mid=-1; return mid;/ mid是數組元素下標,若為-1則表示不存在要查的元素 public class c6_3 public static void main(String args)throws IOException, Buffe。

48、redReader keyin=new BufferedReader(new InputStreamReader(System.in); int i,k,search,mid; String c1; int arr =2,4,7,18,25,34,56,68,89; System.out.println(打印原始數據); for(i=0;iarr.length;i+) System.out.print( +arri); System.out.println(n); System.out.println(請輸入要查找的整數); c1=keyin.readLine( );,search=Integ。

49、er.parseInt(c1); FindSearch p1=new FindSearch( ); mid=p1.binarySearch(arr,search); if(mid=-1) System.out.println(沒找到!); else System.out.println(所查整數在數組中的位置下標是:+mid); ,運行結果: 打印原始數據 2 4 7 18 25 34 56 68 89 請輸入要查找的整數 68 所查整數在數組中的位置下標是:7,四、復制數組,直接使用賦值語句不能實現數組的復制,結果是兩個數組引用變量指向同一個數組對象。 復制數組的方法 使用循環來復制每個元素。

50、 使用System.arraycopy方法 使用數組的clone方法,可以把一個數組變量拷貝給另一個,這時兩個變量引用同一個數組,如: int aa=1,2,3,4,5; int bb=aa;,aa,bb,Java.lang.System類的arraycopy()方法提供了數組元素復制功能: int source=1,2,3; int dest =5,6,7,8,9; / 復制源數組中從下標0開始的source.length個元素到 / 目的數組,從下標0的位置開始存儲。 System.arraycopy(source, 0, dest, 0, source.length);,System.a。

51、rraycopy(source, 0, dest, 0, source.length);,source,dest,source,dest,五、向方法傳遞數組,可以將數組變量作為實參傳遞給方法。 基本數據類型傳遞的是實際值的拷貝,修改形參,不影響實參。 數組引用變量中傳遞的是對象的引用,修改形參,將改變實參引用的數組對象。 也可以從方法中返回數組。,日常生活中處理的許多數據,從邏輯上看是由若干行、若干列組成的。例如,矩陣、行列式、二維表格等。圖6.8給出了一個簡單的矩陣。為適應存放這樣一類數據,人們設計出了一種如圖6.9所示的數據結構二維數組。,2.5.2 二 維 數 組,矩陣,二維數組,一、聲。

52、明 二維數組的聲明與一維數組類似,只是需要給出兩對方括號,其格式如下: 類型說明符 數組名 ; 或 類型說明符 數組名;,例如:聲明數組名為arr的二維整型數組: int arr ; 或 int arr; 其中:類型說明符可以是Java的基本類型和引用類型;數組名是用戶遵循標識符命名規則給出的一個標識符;兩個方括號中,前面的方括號表示行,后面的方括號表示列。,二、初始化 1用new操作符初始化數組 用new操作符來初始化數組有兩種方式:,(1) 先聲明數組再初始化數組。 數組名=new 類型說明符數組長度 ; 或 數組名=new 類型說明符數組長度 數組長度; 其中:對數組名、類型說明符和數組。

53、長度的要求與一維數組一致。,例如: int arra ; /聲明二維數組 arra=new int34;/初始化二維數組 上述兩條語句聲明并創建了一個3行4列的數組arra。也就是說arra數組有3個元素,而每一個元素又都是長度為4的一維數組。實際上共有12個元素,共占用12*4=48個字節的連續存儲空間。這里的語句: arra=new int34;,實際上相當于下述4條語句: arra=new int3 ;創建一個有3個元素的數組,且每個元素也是一個數組。 arra0=new int4;創建arra0元素的數組,它有4個元素。 arra1=new int4;創建arra1元素的數組,它有4個。

54、元素。 arra2=new int4;創建arra2元素的數組,它有4個元素。 也等價于: arra=new int3 for(int i=0;i3;i+) arrai=new int4;,也就是說,在初始化二維數組時也可以只指定數組的行數而不給出數組的列數,每一行的長度由二維數組引用時決定。但不能只指定列數而不指定行數。 上述語句的作用如圖6.11所示。,語句“arra=new int34;”的作用,(2) 在聲明數組時初始化數組。格式如下: 類型說明符 數組名=new 類型說明符數組長度 ; 或 類型說明符 數組名 =new 類型說明符數組長度 數組長度; 例如: int arr=new 。

55、int4 ; int arr =new int43; 但是,不指定行數而指定列數是錯誤的。例如,下面的初始 化是錯誤的。 int arr=new int 4;,2直接指定初值的方式 在數組聲明時對數據元素賦初值就是用指定的初值對數組初始化。例如: int arr1=3, -9,6,8,0,1,11,9,8 ; 此語句聲明并初始化數組arr1,它有3個元素,每個元素又都是有3個元素的一維數組。 用指定初值的方式對數組初始化時,各子數組元素的個數可以不同。例如: int arr1=3, -9,8,0,1,10,11,9,8;,它等價于: int arr1=new int3 ; int ar10=3。

56、,-9; int ar11=8,0,1; int ar12=10,11,9,8;,測定數組的長度及數組賦值 與一維數組一樣,也可以用.length成員方法測定二維數組的長度,即元素的個數。只不過當使用“數組名.length”的形式測定的是數組的行數;而使用“數組名i.length”的形式測定的是該行的列數。例如,若有如下的初始化語句: int arr1=3, -9,8,0,1,10,11,9,8 ; 則arr1.length的返回值是3,表示數組arr1有3行或3個元素。而arr12.length的返回值是4,表示arr12的長度為4,即有4個元素。,【示例程序c6_11.java】 在程序中。

57、測定數組的長度。 public class c6_11 public static void main(String arg ) int i,j; int len1 =new int2; int len2 =new int2; int a1=1,4,8,9,3,2,2; int a2 =90,3,9,12; int a1len=a1.length; /將a1數組的長度賦給a1len int a2len=a2.length; /將a2數組的長度賦給a2len,System.out.println(a1.length=+a1.length); for(i=0;i2;i+) len1i=a1i.le。

58、ngth; /將a1數組的子數組的長度賦給len1i System.out.println(a1 .length=+len1i); for(i=0;i2;i+) for(j=0;jlen1i;j+) System.out.print( +a1ij); System.out.println(n); ,System.out.println(a2.length=+a2.length); /賦a2數組的子數組的長度 for(i=0;i2;i+) len2i=a2i.length; System.out.println(a2 .length=+len2i); /打印a2數組的值 for(i=0;i2;i。

59、+) for(j=0;jlen2i;j+) System.out.print( +a2ij); System.out.println(n); ,a2=a1;/將a1數組賦給a2 System.out.println(a1.length=+a1.length); /賦a1數組的子數組的長度 for(i=0;i2;i+) len1i=a1i.length; System.out.println(a1 .length=+len1i); /打印a1數組的值 for(i=0;i2;i+) for(j=0;jlen1i;j+) System.out.print( +a1ij); System.out.pr。

60、intln(n); ,System.out.println(a2.length=+a2.length); /賦a2數組的子數組的長度 for(i=0;i2;i+) len2i=a2i.length; System.out.println(a2 .length=+len2i); /打印a2數組的值 for(i=0;i2;i+) for(j=0;jlen2i;j+) System.out.print( +a2ij); System.out.println(n); System.out.println(n); ,該程序的運行結果是:,數組名作為成員方法的參數 與一維數組類似,二維數組的數組名也可以作。

61、為參數傳遞給成員方法。下面通過兩個例題說明這個問題。 【示例程序c6_12.java】 編程實現在矩陣(用二維數組表示)中找最大數。 class Maxvalue int maxvl(int arr1 ) int i,k,max; int len=arr1.length,len1;,max=arr100; for(i=0;imax) max=arr1ik; return max; public class c6_12 ,public static void main(String args) int maxx; int arr =1,3,7,6,78,0,42,5,-98,7,10,-1; M。

62、axvalue p1=new Maxvalue( ); maxx=p1.maxvl(arr); System.out.println(max=+maxx); 運行結果: max=78,【示例程序c6_13.java】 兩個矩陣相加。 class AddClass void add(int arA ,int arB ,int arC ) int i,k,len1; int len=arA.length; for(i=0;ilen;i+) len1=arAi.length; for(k=0;klen1;k+) arCik=arAik+arBik; ,public class c6_13 publi。

63、c static void main(String args) int i,k; int arA =1,3,7,6,78,0,42,5,-98,7,10,-1; int arB =1,3,7,6,78,0,42,5,-98,7,10,-1; int arC =new int34; int len=arA.length,len1; AddClass p1=new AddClass( ); p1.add(arA,arB,arC); System.out.println(tAttBttC); for(i=0;ilen;i+), len1=arAi.length; for(k=0;klen1;k+) 。

64、System.out.print( +arAik);/打印第i行A矩陣 System.out.print(t); for(k=0;klen1;k+) System.out.print( +arBik);/打印第i行B矩陣 System.out.print(t); for(k=0;klen1;k+) System.out.print( +arCik);/打印第i行C矩陣 System.out.println(n); ,運行結果: A B C 1 3 7 6 1 3 7 6 2 6 14 12 78 0 42 5 78 0 42 5 156 0 84 10 -98 7 10 -1 -98 7 10 -1 -196 14 20 -2。

總結

以上是生活随笔為你收集整理的描述java源程序构成_Java第二章Java程序设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。