




已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Java程序編寫過程就是設計類、實現(xiàn)類,定義其屬性、行為的過程。 例1-1 HelloWorldApp.java 例1-2 MyMusic.java 例1-3 ColorRect.java 例1-4 HelloWorld.java,一、Java程序的構成,從上面演示的程序可以看出,一般的Java源程 序文件由以下三部分組成: 1、Package 語句(0句或1句) 2、import 語句( 0句或多句) 3、類定義 說明: 1、Package語句表示本程序所屬的包。它只能 有 1句或沒有。如果有,必須放在最前面。如果沒 有,表示屬于默認包。,2、import表示引入其他類的庫,便于使用。該 語句可以有0句或多句,它必須放在類定義的前面。 3、類定義是Java源程序的主要組成部分,每個 文件中可以定義若干個類。 Java程序中定義類使用關鍵字Class, 每個類的 定義由類頭和頭體兩部分組成。類頭除了聲明類名 之外,還可以說明類的繼承特性,當一個類被定義 為是另一個已存在的類(父類)的子類時,它就可 以從其父類中繼承一些已定義好的類成員而不必自 己重復編碼。類體部分用來定義屬性和方法這兩種類的成員,其中方法類似于其他高級語言中的函數(shù),,而屬性則類似變量。 4、在java源程序中只能有一個公共類,應用程序中包含main方法,整個類定義由大括號 括起來。 在方法或?qū)傩郧懊婵梢约有揎椃?如public、static、void等。 5、語句是構成java程序的基本單位之一。每一 條語句都由分號“ ;”結束,語句塊可以使用 。 6、Java程序允許任意多的空白。 7、/ 后的內(nèi)容為注釋。注釋也可使用下列方式: /*多行.*/ 或 /*多行*/。,二、標識符、數(shù)據(jù)類型、變量與常量,2.1 標識符 任何一個變量、常量、方法、函數(shù)、對象和類 都需要有一個名字,這些名字就是標識符。標識 符由編程者自行確定。標識符要滿足以下規(guī)定: 1、標識符必須以字母、下劃線或美元符號開 頭,不能以數(shù)字開頭; 2、在字母、下劃線或美元符號后可以跟數(shù)字、 字母、下劃線或美元符號,沒有長度限制; 3、標識符區(qū)分大小寫,如Abc不同于abc; 4、標識符不能為關鍵字,但是它可以包含關,鍵字作為它名字的一部分,如thisone。 有效標識符,如:identifer thisWto User_na In $max $123 q1 qqq_$567maqwww_111 無效標識符,如:12qqqq wooo# wo wo class 98.3 說明:類名首字母應大寫; 變量、方法、對象的首字母應小寫; 在標識符中的所有單詞都應靠在一起, 而且大寫中間單詞的首字母,如ThisIsClassName ; 常數(shù)初始化字符則全部大寫。,2.2 數(shù)據(jù)類型,JAVA編程語言有八個原始(基本)數(shù)據(jù)類型,分為 以下四種: 1、邏輯類boolean boolean用來表示布爾型(邏輯)數(shù)據(jù)的數(shù)據(jù)類 型。 Boolean型變量或常量的取值只有true和false 兩個。 true代表“真”, false代表“假”。 2、字符類char 使用char類型可表示單個字符,用單引號括起來 的一個字符,如q, H等。它在內(nèi)存中占兩個字節(jié)。,它表示的是Unicode集。Java也提供轉(zhuǎn)義字符,以反斜杠()開頭,將其后的字符轉(zhuǎn)變?yōu)榱硗獾暮x。 用“ ”引用的文字是字符串類型,不是字符類型。 ddd:1到3位八進制數(shù)據(jù)所表示的字符 rxxx:1到4位十六進制數(shù)據(jù)所表示的字符 :單引號字符 “:雙引號字符 : 反斜扛字符 r:回車 n:換行 f:進紙 t:水平制表符 b:退格,3、整數(shù)類byte、short、int、long 四種整數(shù)類型byte(字節(jié)型)、short(短整型)、int(整型)、long(長整型)在內(nèi)存中所占長度不同,分別是1,2,4,8字節(jié)。表示的范圍是不一樣的。 整數(shù)默認為int類,如在其后有一個字母“L”或“l(fā)”則表示為長整型值。 十進制整數(shù),如123,-314,0 八進制整數(shù),要求以0開頭,如012, -021 十六進制整數(shù),要求以0x開頭,如0x12,4、浮點類double,float 如果一個數(shù)包括小數(shù)點或指數(shù)部分,或者在數(shù)字 后帶有字母F或f(float)、D或d(double), 則 該數(shù)為浮點數(shù)。如果不明確指明浮點數(shù)的類型,則 認為是double。如: 3.14159 2.08E25 6.56f float為單精度(32位)、double為雙精度(64位).,2.3 常量與變量 在Java中,不同類型的數(shù)據(jù)既可以以常量的形式出現(xiàn),也可以以變量的形式出現(xiàn)。 常量就是指在程序執(zhí)行期間其值不能發(fā)生變化的數(shù)據(jù),常量是固定的。如整型常量123,實型常量1.23,字符常量A,布爾常量true等。 a.整型常量 b.浮點型常量 c.布爾常量 d.字符常量 如A、D e.字符串常量 如“ASD”、“A123”,變量的值則是可以變化的,它的定義包括變量名、變量類型和作用域幾個部分。聲明變量語句如下: 類型 變量名,變量名=變量初值 例如:int a,b,c; double d1=3.2,d2=0.0; 注意以下幾點: (1)變量名必須是一個合法的標識符。變量名 應具有一定的含義,以增加程序的可讀性。 (2)變量類型可以為前面所說的任意一種數(shù)據(jù) 類型。,(3)聲明一個變量的同時也就指明了變量的作用域,變量的作用域指明可訪問該變量的一段代碼。 (4)變量的分類: 方法(語句塊)局部變量、方法參數(shù)變量、例外處理參數(shù)變量、對象變量、實例變量、類變量等六種。 局部(local)變量是在一個方法或語句塊內(nèi)定義的變量, 也被稱作自動(automatic)、臨時(temporary)或棧(stack)變量。,當執(zhí)行進入一個方法或語句塊時,局部變量被創(chuàng)建,當執(zhí)行離開該方法或語句塊時,局部變量被清除,它的作用域為它所在的代碼塊 ( 整個方法或方法中的某塊代碼)。在成員函數(shù)方法內(nèi)定義的變量對該成員變量是“局部的”,因而,你可以在幾個成員函數(shù)方法中使用相同的變量名而代表不同的變量。 在一個確定的域中,變量名應該是唯一的。通常,一個域用大括號“”和“”來劃定。 int a=0,方法參數(shù)變量(形參)傳遞給方法,它的作用域就是這個方法。 例外處理參數(shù)變量傳遞給例外處理代碼,它的作用域就是例外處理部分。 對象變量就是一個類的對象,如: Student aaa。 實例變量和類變量指在類中聲明的變量,而不是在類的某個方法中聲明,它的作用域是整個類。如描述汽車類時,有顏色、長短、重量、排氣量、品牌等屬性值。一部具體的汽車這些值有的不會相同,但當描述某一品牌的汽車時,品牌就是固定的,每部車都相同。這種情況下,顏色、長短、重量、排氣量就是實例變量,而品牌就是類變量。用關鍵字static來區(qū)別。如:static x;,下面看一道考試題: 一、簡述變量的類型,并用一個簡單、片段程序說明哪些變量屬于的類型(10分)。,一、答: 在面向?qū)ο缶幊讨?,變量可以分?種類型,它們分別是:類變量、實例變量、局部變量、方法參數(shù)變量、對象變量、例外參數(shù)變量。如: Class aaa int x; static int y; JButton text; public void sa(string w) Int cc=0; 上例中的x實例變量;y類變量;w方法參數(shù)變量;cc局部變量;text對象變量。,(4)下面是幾個變量的聲明: int a,b,c; /定義a,b,c為int型變量 double d,e; /定義d,e為double型變量 float f=2.5,g=5.8; /定義f,g為float型變量, 并賦初值。其中,多個變量間用逗號隔開。 (5)在Java程序中聲明變量后,需給該變量賦值。可用賦值語句來初始化變量任何局部變量都不能沒有初始值(否則,則無法通過編譯)。,賦值方式如下:將已聲明的變量名放在左邊,然后是等號(),右邊是有適當值的Java表達式。 它的意思是“取得右邊的值,把它復制到左邊”。右邊的值可以是任何常數(shù)、變量或者表達式,只要能產(chǎn)生一個值就行。但左邊的值必須是一個明確的、已命名的變量。如: int a; /這是聲明 a=45; /這是賦值 char c; /這是聲明 c=y; /這是賦值,相對于一個方法的“局部”變量,如果在初始化之前想使用它,編譯器會提示出錯,如下面這樣就是不允許的: void f() int i; i=i+1; 當一個對象被創(chuàng)建時,實例變量在分配存儲器的同時被值初始化。初始化值如表3-4所示。,下面給出幾個Java程序的例子,使大家對數(shù)據(jù)類型進一步加深理解。 【例1.5】 Java中的數(shù)據(jù)類型 【例1.6】 Java中變量的作用域一 【例1.7】 Java中變量的作用域二 【例1.8】 Java中對象的初始化,三、運算符,按照運算符功能來分,基本的運算符分包括算術運算符、關系運算符、邏輯運算符、位運算符、賦值運算符、條件運算符等。 3.1 算術運算 算術運算符包括加號(+)、減號(-)、乘號(*)、除號(/)、取模(%)、自增運算符(+)、自減運算符(-)等。 在算術運算中,有以下值得注意的地方: (1)算術運算符的總體原則是先乘除、再加減,括號優(yōu)先。 (2)整數(shù)除法會直接砍掉小數(shù),而不是進位。,(3)與C語言不同,對取模運算符%來說,其操作數(shù)可以為浮點數(shù)。如:37.2%10=7.2。 (4)Java也用一種簡寫形式進行運算,并同時進行賦值操作。例如,為了將10加到變量x,并將結果賦給x,可用:x+=10。 (5)Java對加運算符進行了擴展,使它能夠進行字符串的連接,如“abc“+“def“,得到串“abcdef“。 (6)前綴+、-與后綴+、-的區(qū)別: +i(前綴+)在使用i之前,使i的值加1,因此執(zhí)行完+i后,整個表達式和i的值均為i+1; i+(后綴+)在使用i之后,使i的值加1,因此執(zhí)行完i+后,整個表達式的值為i,而i的值變?yōu)閕+1。,例子: int j = 15, k=15; int x= +j; int y=k+;,結果: x16 j 16 y15 k16,int i = 3; System.out.println(+i);,結果為4,i=4,int i = 3; System.out.println(i+);,結果為3,i=4,int a=1; int b=2; int c=+b; int d=a+; c+; System.out.println(“a=”+a); System.out.println(“b=”+b); System.out.println(“c=”+c); System.out.println(“d=”+d);,結果:a=2 b=3 c=4 d=1,-i在使用i之前,使i的減1,因此執(zhí)行完-i后,整個表達式和i的值均為i-1;i-在使用i之后,使i的減1,因此執(zhí)行完i-后,整個表達式的值為i,而i的值變?yōu)閕-1。 【例1.9】 Java中算術運算符的使用,3.2 關系運算 關系運算符用來比較兩個值,返回布爾類型的值true或false。關系運算符都是二元運算符,如下所示。 op1op2 op1大于op2 ture = op1=op2 op1大于等于op2 ture op1op2 op1小于op2 ture = op1=op2 op1小于等于op2 ture = op1=op2 op1等于op2 ture != op1!=op2 op1不等于op2 ture 【例1.10】 Java中關系運算符的使用,3.3 邏輯運算 邏輯與(&) 邏輯或(|) 邏輯非(!),public class abc public static void main(string args ) int a=58; boolean k=(a0) ,結果:true,int a=9; int b=6; int c=6; boolean d,e,f,g; d=!(ab); e=(ab),/false /ture /ture /false,例如: int x 5,y 6; boolean b xy,運行結果:b=false,對“或運算”如果運算符左邊的表達式的值為true, 則整個表達式的結果為true,不必對運算符右邊的 表達式再進行運算;同樣,對“與運算”,如果左邊 表達式的值為false,則不必對右邊的表達式求值, 整個表達式的結果為false。,【例1.11】 Java中邏輯運算符的使用,邏輯表達式往往可用于表示比較復雜的條件,例如要判別某一年year是否為閏年,閏年的判別條件是:能被4整除但不能被100整除,或者能被400整除。,(year%4=0&year%100 !=0) | (year%400=0) 當year為某一數(shù)值時,上述表達式值為true,則year年為閏年,否則為非閏年。,在邏輯表達式的求解中,并不是所有的邏輯運算都被執(zhí)行,例如: 1. a&b&c:如果a非真,則不用判別b和c,直接輸出false; 若a為真,則判別b, 若b非真,則不用判別c,直接輸出false;當a、b都為true時,才判別c的真假。 2. a|b|c:如果a為真,則不用判別b和c, 直接輸出true;若a為非真,則判別b,若b為真,則不用判別c,直接輸出true; 當a、b都為false時,才判別c的真假。,3.4 位運算 在Java語言中,位運算符有按位與運算符(&)、按位或運算符(|)、按位異或運算符()、按位取反運算符()、左移位運算符()。 1按位與運算(&) 參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0。 即:0&0=0,0&1=0,1&0=0,1&1=1 2按位或運算(|) 參與運算的兩個值,如果兩個相應位都是0,則該位結果為0,否則為1。 即:0|0=0,0|1=1,1|0=1,1|1=1,3按位異或運算() 參與運算的兩個值,如果兩個相應位的某一個是1,另一個是0,那么按位異或()在該位的結果為1。也就是說如果兩個相應位相同,輸出位為0,否則為1。 即:00=0,01=1,10=1,11=0 4按位取反運算() 按位取反運算()屬于一元運算符,它只對一個自變量進行操作(其他所有運算符都是二元運算符)。按位取反生成與輸入位的相反的值若輸入0,則輸出1;輸入1,則輸出0。 即:0=1,1=0,5左移位運算符(與) 運算符執(zhí)行一個右移位(帶符號),左邊按符號位補0或1例如: int a=16,b; b=a2; /b=4,運算符同樣是執(zhí)行一個右移位,只是它執(zhí)行的是不帶符號的移位。也就是說對以補碼表示的二進制數(shù)操作時,在帶符號的右移中,右移后左邊留下的空位中添入的是原數(shù)的符號位(正數(shù)為0,負數(shù)為1);在不帶符號的右移中,右移后左邊留下的空位中添入的一律是0。 【例1.12】 Java中位運算符的使用,假若對主數(shù)據(jù)類型執(zhí)行任何算術運算或按位運算,“比int小”的數(shù)據(jù)(char、byte、short)在正式執(zhí)行運算之前,那些值會自動轉(zhuǎn)換成int,這樣一來,最終生成的值就是int類型。 整型、實型、字符型數(shù)據(jù)可以混合運算。運算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型,然后進行運算,轉(zhuǎn)換從低級到高級。通常,表達式中最大的數(shù)據(jù)類型是決定了表達式最終結果大小的那個類型。例如:若將一個float值與一個double值相乘,結果就是double;如將一個int值和一個long值相加,則結果為long。,不是所有的數(shù)據(jù)類型都允許隱含自動轉(zhuǎn)換。例如,下面的語句把long型數(shù)據(jù)賦值給int型數(shù)據(jù),在編譯時就會發(fā)生錯誤: long i=10; int j=i; 這是因為當把占用位數(shù)較長的數(shù)據(jù)轉(zhuǎn)化成占用位數(shù)較短的數(shù)據(jù)時,會出現(xiàn)信息丟失的情況,因而不能夠自動轉(zhuǎn)換。這時就需要利用強制類型轉(zhuǎn)換,執(zhí)行非兼容類型之間的類型轉(zhuǎn)換。上面的語句寫成下面的形式就不會發(fā)生錯誤: long i=10; int j=(int)i;,強制類型轉(zhuǎn)換的格式是: (數(shù)據(jù)類型)變量名 經(jīng)過強制類型轉(zhuǎn)換,將得到一個在“()”中聲明的數(shù)據(jù)類型的數(shù)據(jù),該數(shù)據(jù)是從指定變量所包含的數(shù)據(jù)轉(zhuǎn)換而來的。值得注意的是,指定變量本身不會發(fā)生任何變化。 將占用位數(shù)較長的數(shù)據(jù)轉(zhuǎn)化成占用位數(shù)較短的數(shù)據(jù)時,可能會造成數(shù)據(jù)超出較短數(shù)據(jù)類型的取值范圍,造成“溢出”。如: long i=10000000000; int j=(int)i; 因為轉(zhuǎn)換的結果已經(jīng)超出了int型數(shù)據(jù)所能表示的最大整數(shù)(4294967295),造成溢出,產(chǎn)生了錯誤。,3.5 其他運算符 1三目條件運算符(?:) 在Java語言中,三目條件運算符(?:)與C語言中的使用規(guī)則是完全一致的,使用的形式是: x ? y:z; 上面的三目條件運算的規(guī)則是:先計算表達式x的值,若x為真,則整個三目運算的結果是表達式y(tǒng)的值;若x為假,則整個三目運算的結果是表達式z的值。 下面的例子實現(xiàn)了從兩個數(shù)中找出較大的數(shù)的功能。 int a=3,b=4; int max=ab?a:b; max的值為4。,三目條件運算是可以嵌套的,如有以下的語句,則max表示的是a、b、c三個數(shù)中的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上游客戶管理制度
- 專利辦公管理制度
- 專家動態(tài)管理制度
- 世家大族管理制度
- 業(yè)余辦學管理制度
- 業(yè)務立項管理制度
- 東莞外資管理制度
- 兩違執(zhí)法管理制度
- 嚴格人員管理制度
- 嚴格內(nèi)控管理制度
- 公安院校及專業(yè)招生政審表
- 史上最全區(qū)塊鏈詳解課件
- (完整版)杭州電子科技大學數(shù)字電路期末考試試卷及答案
- 建筑裝飾裝修工程質(zhì)量驗收規(guī)范試題
- 能源計量器具配備和管理
- 《食品經(jīng)營許可證》申請報告書空白模板
- 試卷交接簽字單
- 有限空間作業(yè)及應急物資清單
- DB13(J)∕T 8060-2019 城鎮(zhèn)供熱管道及設備安裝工程施工質(zhì)量驗收標準
- 《國際商務》課程
- 壓力容器設計管理制度
評論
0/150
提交評論