第2章標識符和數(shù)據(jù)類型_第1頁
第2章標識符和數(shù)據(jù)類型_第2頁
第2章標識符和數(shù)據(jù)類型_第3頁
第2章標識符和數(shù)據(jù)類型_第4頁
第2章標識符和數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、第第2章章 標識符和數(shù)據(jù)類型標識符和數(shù)據(jù)類型本章主要內(nèi)容本章主要內(nèi)容 Java的基本語法單位的基本語法單位 1Java編碼體例編碼體例2Java的基本數(shù)據(jù)類型的基本數(shù)據(jù)類型3復合數(shù)據(jù)類型復合數(shù)據(jù)類型 4類和對象的初步介紹類和對象的初步介紹 5Java程序的結(jié)構(gòu)程序的結(jié)構(gòu) package語句語句:可以沒有,或可以有多個,但必:可以沒有,或可以有多個,但必須放在文件開始的地方須放在文件開始的地方 import語句語句:可以沒有,或可以有多個,如果有:可以沒有,或可以有多個,如果有import語句的話,必須放在所有類定義之前語句的話,必須放在所有類定義之前 public型的類定義型的類定義:每個文件

2、中最多有一個:每個文件中最多有一個 類定義類定義:每個文件中包含的類定義的個數(shù)沒有限:每個文件中包含的類定義的個數(shù)沒有限制制 接口定義接口定義:每個文件中包含的接口定義個數(shù)沒有:每個文件中包含的接口定義個數(shù)沒有限制限制Java的基本語法單位的基本語法單位空白、注釋及語句空白、注釋及語句空白空白 換行符及回車鍵、空格鍵、水平定位鍵(換行符及回車鍵、空格鍵、水平定位鍵(tab)都是空白。都是空白。Java程序的元素之間可插入任意數(shù)程序的元素之間可插入任意數(shù)量的空白,編譯器將忽略掉多余的空白量的空白,編譯器將忽略掉多余的空白 程序中除了加入適當?shù)目瞻淄猓€應使用縮進程序中除了加入適當?shù)目瞻淄?,還應使

3、用縮進格式,使得同一層語句的起始列位置相同格式,使得同一層語句的起始列位置相同不提倡的程序風格不提倡的程序風格一種不好的風格一種不好的風格class Point int x,y;Point(int x1,int y1) x=x1;y=y1;Point()this(0,0);void moveto(int x1,int y1)x=x1;y=y1;提倡的程序風格提倡的程序風格class Point int x, y;/ 點的點的x軸、軸、y軸坐標軸坐標Point(int x1, int y1) / 構(gòu)造方法構(gòu)造方法 x = x1;y = y1;Point() / 構(gòu)造方法構(gòu)造方法 this( 0,

4、 0);void moveto(int x1, int y1) / 點移動到(點移動到(x1, y1) x = x1;y = y1;注釋注釋程序中適當?shù)丶尤胱⑨專瑫黾映绦虻某绦蛑羞m當?shù)丶尤胱⑨?,會增加程序的可讀可讀性性 程序中允許加空白的地方就可以寫注釋。注程序中允許加空白的地方就可以寫注釋。注釋不影響程序的執(zhí)行結(jié)果,編譯器將忽略注釋不影響程序的執(zhí)行結(jié)果,編譯器將忽略注釋釋Java中的三種注釋形式:中的三種注釋形式:/ 在一行的注釋在一行的注釋/* 一行或多行的注釋一行或多行的注釋 */* 文檔注釋文檔注釋 */語句、分號和塊語句、分號和塊 Java中的語句是中的語句是最小的執(zhí)行單位最小的執(zhí)

5、行單位Java各語句間以分號各語句間以分號“;”分隔。一個語句可寫在分隔。一個語句可寫在連續(xù)的若干行內(nèi)連續(xù)的若干行內(nèi)花括號花括號“”和和“”包含的一系列語句稱為包含的一系列語句稱為語句塊語句塊,簡稱為簡稱為塊塊語句塊可以語句塊可以嵌套嵌套 即語句塊中可以含有子語句塊。在詞法上,塊被當作即語句塊中可以含有子語句塊。在詞法上,塊被當作一個語句看待一個語句看待 Java關鍵字關鍵字abstractbooleanbreakbytecasecatchcharclassconstcontinuedodoubleelseextendsfalsefinallycastdefaultfinalfinallyfl

6、oatforfuturegenericgotoifimplementsimportinnerinstanceofintinterfacelongnativenewnulloperatorouterpackageprivateprotectedpublicrestreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvarvoidvolatilewhile標識符標識符標識符是以字母、下劃線(標識符是以字母、下劃線(_)或美元符)或美元符($)開頭,由字母、數(shù)字、下劃線()開頭,由字母、數(shù)字、下劃線(_)或美元

7、符(或美元符($)組成的字符串)組成的字符串標識符區(qū)分大小寫,長度沒有限制標識符區(qū)分大小寫,長度沒有限制 標識符例合法的標識符合法的標識符非法標識符非法標識符2Sun / 以數(shù)字以數(shù)字2開頭開頭class/ 是是Java的關鍵字,有特殊含義的關鍵字,有特殊含義#myname / 含有其他符號含有其他符號#Identifier username User_name _sys_var1 $changesizeofJava編碼體制編碼體制Java中的一些命名約定中的一些命名約定 : 類類 類名應為名詞,含有大小寫,每個字的首字母大寫類名應為名詞,含有大小寫,每個字的首字母大寫 接口接口 接口是一種特

8、殊的類,接口名的命名約定與類名相接口是一種特殊的類,接口名的命名約定與類名相同同 方法方法 方法名應是動詞,含有大小寫,首字母小寫,方法名應是動詞,含有大小寫,首字母小寫,其余各字的首字母大寫,盡量不要在方法名中使用下劃其余各字的首字母大寫,盡量不要在方法名中使用下劃線線 常量常量 簡單類型常量的名字應該全部為大寫字母,字簡單類型常量的名字應該全部為大寫字母,字與字之間用下劃線分隔,對象常量可使用混合大小寫與字之間用下劃線分隔,對象常量可使用混合大小寫 變量變量 所有的實例變量、類變量和全局變量都使用混合所有的實例變量、類變量和全局變量都使用混合大小寫,首字符為小寫,后面的字首用大寫,作為字間

9、大小寫,首字符為小寫,后面的字首用大寫,作為字間的分隔符。變量名中不要使用下劃線的分隔符。變量名中不要使用下劃線Java的基本數(shù)據(jù)類型的基本數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型復合數(shù)據(jù)類型復合數(shù)據(jù)類型類類型類類型布爾類型:布爾類型:boolean數(shù)組數(shù)組接口類型:接口類型:interface字符類型:字符類型:char數(shù)值類型數(shù)值類型浮點數(shù)類型:浮點數(shù)類型:float,double整數(shù)類型:整數(shù)類型:byte,short,int,long類型轉(zhuǎn)換類型轉(zhuǎn)換各類型所占用的位數(shù)從短到長依次為:各類型所占用的位數(shù)從短到長依次為:byte short char int

10、 long float double不同類型數(shù)據(jù)的轉(zhuǎn)換規(guī)則不同類型數(shù)據(jù)的轉(zhuǎn)換規(guī)則操作數(shù)操作數(shù)1類型類型操作數(shù)操作數(shù)2類型類型轉(zhuǎn)換后的類型轉(zhuǎn)換后的類型byte或或shortintintbyte或或short或或intlonglongbyte或或short或或int或或longfloatfloatbyte或或short或或int或或long或或 floatdoubledoublecharintint類型轉(zhuǎn)換類型轉(zhuǎn)換當位數(shù)多的類型向位數(shù)少的類型進行轉(zhuǎn)換時,需當位數(shù)多的類型向位數(shù)少的類型進行轉(zhuǎn)換時,需要用戶明確指明,即進行強制類型轉(zhuǎn)換要用戶明確指明,即進行強制類型轉(zhuǎn)換一般地,高級類型(即位數(shù)較多的數(shù)據(jù)

11、類型)轉(zhuǎn)一般地,高級類型(即位數(shù)較多的數(shù)據(jù)類型)轉(zhuǎn)為低級類型(即位數(shù)較少的數(shù)據(jù)類型)時,截斷為低級類型(即位數(shù)較少的數(shù)據(jù)類型)時,截斷高位內(nèi)容,因此會導致精度下降或數(shù)據(jù)溢出高位內(nèi)容,因此會導致精度下降或數(shù)據(jù)溢出 int i = 3; byte b = (byte) i;變量、說明和賦值變量、說明和賦值程序程序2-2 變量的說明和賦值變量的說明和賦值 程序程序2-3為每種基本類型定義了一個變?yōu)槊糠N基本類型定義了一個變量,并為其賦值量,并為其賦值復合數(shù)據(jù)類型復合數(shù)據(jù)類型早期的程序設計語言把變量看作是孤立的東西 如果我們在一個程序中需處理日期,則往往說明三個獨立的整數(shù)分別代表日、月、年。如下所示:

12、int day, month, year; 復合數(shù)據(jù)類型復合數(shù)據(jù)類型這種方法的不足:這種方法的不足: 如果程序需要處理多個日期,則需要更多的說明。如果程序需要處理多個日期,則需要更多的說明。例如要保存兩個生日,需如下說明:例如要保存兩個生日,需如下說明: 因使用了多個變量而變得混亂,容易出錯。同時,因使用了多個變量而變得混亂,容易出錯。同時,又占用了過多的命名空間。更重要的是每個值都又占用了過多的命名空間。更重要的是每個值都是獨立的變量是獨立的變量 int myBirthDay,myBirthMonth,myBirthYear;int yourBirthday,yourBirthMonth,y

13、ourBirthYear;復合數(shù)據(jù)類型復合數(shù)據(jù)類型有兩種辦法來解決這個問題:有兩種辦法來解決這個問題: 提供日期類型提供日期類型。并為這個類型定義了相應的函。并為這個類型定義了相應的函數(shù),通過調(diào)用這些函數(shù)就可以得到所需要的結(jié)數(shù),通過調(diào)用這些函數(shù)就可以得到所需要的結(jié)果果 定義復合數(shù)據(jù)類型。定義復合數(shù)據(jù)類型。復合數(shù)據(jù)類型為我們提供復合數(shù)據(jù)類型為我們提供了更強大的類型定義工具,設計程序時也更加了更強大的類型定義工具,設計程序時也更加靈活靈活復合數(shù)據(jù)類型復合數(shù)據(jù)類型定義:用戶定義的新類型為復合數(shù)據(jù)類型定義:用戶定義的新類型為復合數(shù)據(jù)類型在有些語言中,復合數(shù)據(jù)類型又稱作結(jié)構(gòu)在有些語言中,復合數(shù)據(jù)類型又稱

14、作結(jié)構(gòu)類型或記錄類型。復合數(shù)據(jù)類型由程序員類型或記錄類型。復合數(shù)據(jù)類型由程序員在源程序中定義,一旦有了定義,該類型在源程序中定義,一旦有了定義,該類型就象其他類型一樣使用就象其他類型一樣使用復合數(shù)據(jù)類型復合數(shù)據(jù)類型 對于新定義的復合數(shù)據(jù)類型,因系統(tǒng)不知對于新定義的復合數(shù)據(jù)類型,因系統(tǒng)不知道它的具體內(nèi)容,要由程序員指定其詳細道它的具體內(nèi)容,要由程序員指定其詳細的存儲結(jié)構(gòu),這里存儲空間的大小不是以的存儲結(jié)構(gòu),這里存儲空間的大小不是以字節(jié)來衡量,也不是位,而是按已知的其字節(jié)來衡量,也不是位,而是按已知的其他類型來考慮他類型來考慮 Java是面向?qū)ο蟮某绦蛟O計語言,它為用是面向?qū)ο蟮某绦蛟O計語言,它為

15、用戶提供的復合數(shù)據(jù)類型就是我們在前面提戶提供的復合數(shù)據(jù)類型就是我們在前面提到的復合數(shù)據(jù)類型,即到的復合數(shù)據(jù)類型,即類類、接口接口和和數(shù)組數(shù)組類和對象的初步介紹類和對象的初步介紹為什么使用面向?qū)ο蠹夹g(shù)為什么使用面向?qū)ο蠹夹g(shù) 面向過程的設計方式使用的眾多變量名、函數(shù)面向過程的設計方式使用的眾多變量名、函數(shù)名互不約束,令程序員不堪重負名互不約束,令程序員不堪重負 面向過程方法設計的程序把處理的主體與處理面向過程方法設計的程序把處理的主體與處理的方法分開,因此各種成分錯綜復雜地放在一的方法分開,因此各種成分錯綜復雜地放在一起,難以理解,易出錯,并且難于調(diào)試起,難以理解,易出錯,并且難于調(diào)試 為什么使用

16、面向?qū)ο箅S著開發(fā)系統(tǒng)的不斷擴大,面向過程的方法越來隨著開發(fā)系統(tǒng)的不斷擴大,面向過程的方法越來越不能滿足使用者的要求越不能滿足使用者的要求OOP技術(shù)使得程序結(jié)構(gòu)簡單,相互協(xié)作容易,更技術(shù)使得程序結(jié)構(gòu)簡單,相互協(xié)作容易,更重要的是程序的重用性大大提高了重要的是程序的重用性大大提高了面向?qū)ο蟮姆椒▽W,就是使分析、設計和實現(xiàn)一面向?qū)ο蟮姆椒▽W,就是使分析、設計和實現(xiàn)一個系統(tǒng)的方法盡可能地接近我們認識一個系統(tǒng)的個系統(tǒng)的方法盡可能地接近我們認識一個系統(tǒng)的方法方法面向?qū)ο蠹夹g(shù)主要包含這樣幾個概念:對象、抽面向?qū)ο蠹夹g(shù)主要包含這樣幾個概念:對象、抽象數(shù)據(jù)類型、類、類型層次(子類)、繼承性、象數(shù)據(jù)類型、類、類型

17、層次(子類)、繼承性、多態(tài)性多態(tài)性為什么使用面向?qū)ο竺嫦驅(qū)ο蟮姆椒▽W包括以下三方面:面向?qū)ο蟮姆椒▽W包括以下三方面: 面向?qū)ο蟮姆治觯嫦驅(qū)ο蟮姆治觯∣OA, Object-Oriented Analysis) 面向?qū)ο蟮脑O計(面向?qū)ο蟮脑O計(OOD, Object-Oriented Design) 面向?qū)ο蟮某绦蛟O計面向?qū)ο蟮某绦蛟O計(OOP, Object-Oriented Program) 什么是OOPOOP技術(shù)把問題看成是相互作用的事物的集合,技術(shù)把問題看成是相互作用的事物的集合,用屬性來描述事物,而把對它的操作定義為方法。用屬性來描述事物,而把對它的操作定義為方法。在在OOP中,把事

18、物稱為對象,把屬性稱為數(shù)據(jù),中,把事物稱為對象,把屬性稱為數(shù)據(jù),這樣對象就是數(shù)據(jù)加方法??梢詫F(xiàn)實生活中的這樣對象就是數(shù)據(jù)加方法??梢詫F(xiàn)實生活中的對象經(jīng)過抽象,映射為程序中的對象。對象在程對象經(jīng)過抽象,映射為程序中的對象。對象在程序中是通過一種抽象數(shù)據(jù)類型來描述的,這種抽序中是通過一種抽象數(shù)據(jù)類型來描述的,這種抽象數(shù)據(jù)類型稱為類(象數(shù)據(jù)類型稱為類(Class)OOP中采用了三大技術(shù):中采用了三大技術(shù): 封裝、繼承和多態(tài)封裝、繼承和多態(tài) JavaOOP能力 Java與與C+ 的的OOP能力比較能力比較C+C+多重繼承多重繼承JavaJava接口、包、接口、包、finalfinal、supers

19、uper類、公有、私有、類、公有、私有、保護成員、靜態(tài)保護成員、靜態(tài)成員、構(gòu)造函數(shù)、成員、構(gòu)造函數(shù)、析構(gòu)函數(shù)、虛函析構(gòu)函數(shù)、虛函數(shù)、虛基類、數(shù)、虛基類、thisthis共有的部分C+獨特的Java獨特的Java中的類定義中的類定義Java中類定義的一般格式為:中類定義的一般格式為:修飾符修飾符 class 類名類名 extends 父類名父類名類型類型 成員變量成員變量1;類型類型 成員變量成員變量2; .修飾符修飾符 類型類型 成員方法成員方法1(參數(shù)列表)(參數(shù)列表)類型類型 局部變量局部變量;方法體方法體修飾符修飾符 類型類型 成員方法成員方法2(參數(shù)列表)(參數(shù)列表)類型類型 局部變量

20、局部變量;方法體方法體 .一輛轎車的類定義一輛轎車的類定義 Class Carint color_number;int door_number;int speed;void brake() void speedUp() void slowDown() 類定義的幾點說明類定義的幾點說明Java中的類定義與實現(xiàn)是放在一起保存的,整個中的類定義與實現(xiàn)是放在一起保存的,整個 類必須在一個文件中,因此有時源文件會很大類必須在一個文件中,因此有時源文件會很大Java源文件名必須根據(jù)文件中的公有類名來定義,源文件名必須根據(jù)文件中的公有類名來定義,并且要區(qū)分大小寫并且要區(qū)分大小寫類定義中可以指明父類,也可以不指明。若沒有類定義中可以指明父類,也可以不指明。若沒有指明從哪個類派生而來,則表明是從缺省的父類指明從哪個類派生而來,則表明是從缺省的父類Object派生而來。派生而來。Object是是Java中所有類的父類。中所有類的父類。Java中除中除Object之外的所有類均有一個且只有一之外的所有類均有一個且只有一個父類。個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論