級(jí)《面向?qū)ο蟪绦蛟O(shè)計(jì)》第二章教學(xué).ppt
《級(jí)《面向?qū)ο蟪绦蛟O(shè)計(jì)》第二章教學(xué).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《級(jí)《面向?qū)ο蟪绦蛟O(shè)計(jì)》第二章教學(xué).ppt(51頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第二章Java基礎(chǔ) 學(xué)習(xí)目標(biāo) 掌握標(biāo)識(shí)符和關(guān)鍵字熟練使用各種數(shù)據(jù)類型的定義 表示和引用掌握算術(shù) 邏輯和布爾運(yùn)算符自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換 2 1標(biāo)識(shí)符Java保留字 標(biāo)識(shí)符的命名規(guī)則 一定要牢記啊 類名首字母大寫 符號(hào)常量名全部字母大寫 變量名 對(duì)象名 方法名 包名等標(biāo)識(shí)符全部采用小寫字母 如果標(biāo)識(shí)符由多個(gè)單詞構(gòu)成 則首字母小寫 其后單詞的首字母大寫 其余字母小寫 合法的標(biāo)識(shí)符identifieruserNameUser Name sysval changeA98 23 abc非法的標(biāo)識(shí)符2mailroom classA 43 1 the Java保留字 又稱關(guān)鍵字 關(guān)鍵字不能作為標(biāo)識(shí)符 關(guān)鍵字是具有專門的意義和用途 不能當(dāng)作一般的標(biāo)識(shí)符使用 這些標(biāo)識(shí)符稱為保留字 reservedword 下面列出了java語言中的所有保留字 abstractdoimplementsprotectedthrowsbooleandoubleimportpublictransientbreakelseinstanceofreturntruethisthrowbyteextendsintshorttrysynchronizedcasefalseinterfacestaticvoidcontinuecatchfinallongstrictpfvolatilegotodefaultcharfinallynativesuperwhilepackageclassfloatnewswitchconstfornullifprivatejava中的關(guān)鍵字均用小寫字母表示 數(shù)據(jù)類型與常量 變量 數(shù)據(jù)是計(jì)算機(jī)程序處理的對(duì)象 數(shù)據(jù)的類型決定了數(shù)據(jù)的表示方式 取值范圍以及可進(jìn)行的操作 基本類型包括 整型 byte short int和long浮點(diǎn)型 float和double字符型 char邏輯型 boolean引用類型 需要用戶自己定義 數(shù)組接口類 基本數(shù)據(jù)類型 存儲(chǔ)沒有小數(shù)部分的數(shù)據(jù)類型Java各整數(shù)類型有固定的表數(shù)范圍和字段長度 而不受具體操作系統(tǒng)的影響 以保證Java程序的可移植性 1 整型 數(shù)值20在內(nèi)存中的存儲(chǔ)形式 00010100byte 1字節(jié) 0000000000010100short 2字節(jié) 高位置000000000000000000000000000010100int 4字節(jié) 0000000000000000000000000000000000000000000000000000000000010100Long 8字節(jié) 2 浮點(diǎn)型 浮點(diǎn)型是帶有小數(shù)部分的數(shù)據(jù)類型 包括兩種不同的數(shù)據(jù)類型 float和double float類型的變量占用4個(gè)字節(jié) 32位 double類型的數(shù)據(jù)則需要8個(gè)字節(jié) 64位 內(nèi)存 在許多程序中 就其表示的數(shù)值范圍而言 使用float類型來存儲(chǔ)浮點(diǎn)數(shù)已經(jīng)足夠了 浮點(diǎn)數(shù)據(jù)有兩種表示形式十進(jìn)制數(shù)形式 必須含有小數(shù)點(diǎn) 例如 3 14314 0 314科學(xué)記數(shù)法形式 如3 14e23 14E 12Java浮點(diǎn)數(shù)據(jù)默認(rèn)為double型 如要聲明一個(gè)常量為float型 則需在數(shù)字后面加f或F 如 doubled 3 14 floatf 3 14f 3 布爾型 boolean 布爾數(shù)據(jù)類型用于表達(dá)兩個(gè)邏輯狀態(tài)之一的值 true 真 或false 假 布爾型數(shù)據(jù)只有兩個(gè)值true和false 且它們不對(duì)應(yīng)于任何整數(shù)值 布爾型變量的定義如 booleanb true 4 字符型 char 字符型數(shù)據(jù)類型用于存放單個(gè)字符 每個(gè)字符占用2個(gè)字節(jié) 16位 的存儲(chǔ)空間 將一個(gè)字符放到一個(gè)字符變量中 實(shí)際上并不是把該字符本身放到內(nèi)存單元中去 而是將該字符的相應(yīng)的Unicode代碼放到存儲(chǔ)單元中 charc1 t charc2 3 char基于Unicode編碼 u前綴標(biāo)志著這是一個(gè)Unicode值例如 u0061代表字符 a 新術(shù)語 在Java技術(shù)中 變量 屬性方法 操作類仍然稱作類 所謂類就是一類屬性 變量 和操作 方法 的描述 其中 屬性可用一系列的變量表達(dá) 而操作用一系列方法表示 一類人員Person 抽象出下列屬性 名字 年齡 身高 婚否 性別 分別用變量name age height marriage sex表示 見名知義 吃飯 講話 走路等行為可表示為相應(yīng)的方法eat speak walk 等 用Java語言描述Person類如下 classPerson 以下5個(gè)是變量Stringname intage doubleheight booleanmarriage charsex speak 方法 eat 方法 對(duì)Person類中某一特定的人 上述變量就有特定的值 如name 張三 age 20 height 1 76 marriage false sex m 變量 屬性 變量是用來存放指定類型的數(shù)據(jù) 其值在程序運(yùn)行過程中是可變的 在使用Java中的每個(gè)變量之前 都必須對(duì)它進(jìn)行聲明 變量的聲明形式如下 修飾符 類型標(biāo)識(shí)符號(hào)變量名 常量 變量聲明包括指明變量的數(shù)據(jù)類型 變量名和作用域其中數(shù)據(jù)類型說明了這個(gè)變量能存放什么樣的數(shù)據(jù) 變量名是用來標(biāo)識(shí)該變量的 我們存取變量的內(nèi)容 變量的值 都是通過變量名來實(shí)現(xiàn)的 變量名 在Java中用標(biāo)識(shí)符來表示變量名 象Person這個(gè)類 我們使用了name age tall marriage sex這幾個(gè)標(biāo)識(shí)符 分別定義了五個(gè)變量 程序員應(yīng)該為變量取有意義的名稱 以利于程序的閱讀和理解 見名知義 但變量取名時(shí)還有一些限制 變量名由字母 數(shù)字 下劃線或美元符 組成的變量名不能以數(shù)字作為第一個(gè)字符區(qū)分大小寫下面是合法的變量名 Month 不同于month student name class1 dollar abc而下面的變量名都不合法 3a46 a b abc d ef 變量名 變量名中字母大寫和小寫是有區(qū)別的 name和Name表示兩個(gè)不同的變量名 Java中約定 變量名以小寫字母開頭 若一個(gè)變量名由超過一個(gè)單詞所組成 則第一個(gè)單詞之后的所有單詞都以大寫字母開頭 以便于理解該變量名 例如 anIntVar表示一個(gè)整型變量 變量的初始化 賦予變量一個(gè)初值 稱為變量的初始化 可在定義變量的同時(shí)進(jìn)行變量的初始化 如 intanIntVar 1 charaCharVar A floataFloatVar 1 23f booleanaBooleanVar true 也可定義變量后再單獨(dú)初始化 如 intanIntVar charaCharVar floataFloatVar booleanaBooleanVar anIntVar 1 aCharVar A aFloatVar 1 23f aBooleanVar true 兩種方法都完成了定義變量 anIntVar aCharVar aFloatVar aBooleanVar 并分別給它們賦初值 1 A 1 23 true 變量的作用域 變量的作用域 變量的使用范圍 假定在某代碼段中能夠使用一特定變量 則此段代碼即是該變量的作用域 在類中聲明的類成員變量 可在該類的各個(gè)成員方法中使用 在某個(gè)方法體中或參數(shù)表中聲明的變量 只能在該方法體中使用 在某個(gè)語句塊中聲明的變量 只能在該語句塊中使用 變量的作用域 publicclassVariableLifeTime publicstaticvoidmain String args intsum 0 intA 10 for intx 1 x 5 x inty 0 y y A sum sum y System out print x x System out print y y System out println sum sum System out println sum sum 查看結(jié)果 VariableLifeTime java classPerson 以下5個(gè)成員變量Stringname intage doubletall booleanmarriage charsex 以下2個(gè)方法eat Stringeatwhat System out println name ateupthe eatwhat Speak Stringsaywhat inttime inti for i 0 i time i System out println name say saywhat 變量name age tall marriage sex的作用域 變量i的作用域 下圖為變量作用域的示意圖 由左圖可以看出 變量name age tall marriage sex和變量i的作用域是不同的 變量name age tall marriage 和sex的作用域是整個(gè)類 在類的方法中也可使用它們 這種變量稱之為成員變量 確切地講 成員變量是在類當(dāng)中 但不是在其類的方法中定義的變量 而變量i是定義在speak方法中 它的作用域僅限于speak方法中 這類定義在某方法中的變量叫做局部變量 注意 同一作用域中不可有同名的變量 如上面的代碼在speak方法中不能再定義一個(gè)名字為i的變量 在Java中嵌套的程序塊的內(nèi)層和外層 不允許定義相同的變量名 否則將導(dǎo)致編譯錯(cuò)誤 publicclassScopeError publicstaticvoidmain String args intE 999 intE 999 System out println E E 常量 常量是指在程序運(yùn)行過程中其值不變的量 定義常量的方法有兩種 1 在定義變量的類型前面加final關(guān)鍵字 并同時(shí)進(jìn)行初始化 如下所示 finalintaFinalVar 0 finaldoublePI 3 14159 2 在定義變量的類型前面加final關(guān)鍵字 不進(jìn)行初始化 通過另外的語句進(jìn)行賦值 如下所示 finalintaFinalVar aFinalVar 0 常量和變量 常量與變量之間最根本的區(qū)別是 常量在經(jīng)過定義并給它一個(gè)值之后 不能再對(duì)它進(jìn)行修改 而變量則無此限制 對(duì)于常量a 進(jìn)行如下的操作是錯(cuò)誤的 finalinta 1 a 2 而對(duì)于變量a 如下這段代碼則是正確的 inta 1 a 2 示例 publicclassAssign publicstaticvoidmain String args intx inty 定義x y兩個(gè)整型變量floatz 1 234f 指定變量z為float型 且賦初值為1 234doublew 1 234 指定變量w為double型 且賦初值為1 234booleanflag true 指定變量flag為boolean型 且賦初值為truecharc 定義字符型變量cStringstr 定義字符串變量strStringstr1 Hi 指定變量str1為String型 且賦初值為Hic A 給字符型變量c賦值 A str bye 給字符串變量str賦值 bye x 12 給整型變量x賦值為12y x 給整型變量y賦值為12 2 3運(yùn)算符和表達(dá)式 運(yùn)算符分類依據(jù)操作數(shù)的個(gè)數(shù) 單目運(yùn)算符 一元運(yùn)算符 雙目運(yùn)算符 二元運(yùn)算符 多目運(yùn)算符 根據(jù)操作數(shù)和運(yùn)算結(jié)果分為 算術(shù) 關(guān)系 邏輯 位運(yùn)算符 賦值運(yùn)算符 條件運(yùn)算符 括號(hào)運(yùn)算符 1 算術(shù)運(yùn)算符 運(yùn)算符優(yōu)先級(jí)別 優(yōu)先級(jí)規(guī)則 乘除 從左到右 加減 從左到右 復(fù)雜的表達(dá)式 C 25 5 4 2 10 4 從左到右的規(guī)則求值 結(jié)果是 34按照優(yōu)先級(jí)規(guī)則求值 結(jié)果是 9用 來表述想要的結(jié)構(gòu) 2 關(guān)系運(yùn)算符 3 邏輯 布爾 運(yùn)算符 邏輯 布爾 運(yùn)算真值表 條件與 短路與 條件或 短路或 4 位運(yùn)算符 位運(yùn)算是對(duì)整數(shù)類型的操作數(shù)按二進(jìn)制的位進(jìn)行運(yùn)算 運(yùn)算的結(jié)果仍然是整數(shù)類型值 位運(yùn)算真值表 位移運(yùn)算符 位移運(yùn)算舉例 運(yùn)算符 將操作數(shù)的二進(jìn)制位右移 低位溢出 高位補(bǔ)充原來高位的值 如intb 60 b b 1 此時(shí)b的值為30 二進(jìn)制右移一位相當(dāng)于該數(shù)除 考慮若b 60 b b 1 b 運(yùn)算符 將操作數(shù)的二進(jìn)制位右移 低位溢出 高位補(bǔ)0 5 賦值運(yùn)算符及條件運(yùn)算符 賦值運(yùn)算符的形式 變量名 表達(dá)式 復(fù)合賦值運(yùn)算符x y x x yx y x x y條件運(yùn)算符的形式 表達(dá)式1 表達(dá)式2 表達(dá)式3舉例intmin x 4 y 20 min x y x y 運(yùn)算符的優(yōu)先級(jí)及結(jié)合性 表達(dá)式的運(yùn)算法則 按照運(yùn)算符優(yōu)先級(jí)從高到低的順序進(jìn)行計(jì)算 同級(jí)運(yùn)算符按運(yùn)算符的結(jié)合性進(jìn)行 到遇到圓括號(hào)時(shí) 先進(jìn)行括號(hào)內(nèi)的運(yùn)算 再將括號(hào)內(nèi)的運(yùn)算結(jié)果與括號(hào)外運(yùn)算符和操作數(shù)進(jìn)行計(jì)算 運(yùn)算符號(hào)的優(yōu)先級(jí) 單目運(yùn)算符 算術(shù)運(yùn)算 位移運(yùn)算 關(guān)系運(yùn)算 按位邏輯運(yùn)算 邏輯運(yùn)算 條件運(yùn)算 賦值運(yùn)算 升級(jí)和類型轉(zhuǎn)換 賦值和表達(dá)式可能引起計(jì)算的數(shù)據(jù)類型與保存結(jié)果的存儲(chǔ)位置之間的不匹配 右邊的數(shù)據(jù)類型小于左邊的數(shù)據(jù)類型 bytenum1 53 bytenum2 47 longnum3 num3 num1 num2 右邊的數(shù)據(jù)類型大于左邊的數(shù)據(jù)類型 intnum1 53 intnum2 47 bytenum3 num3 num1 num2 右邊的數(shù)據(jù)類型和數(shù)據(jù)大于左邊的數(shù)據(jù)類型 intnum1 53 intnum2 47 bytenum3 num3 num1 num2 注意 Java是強(qiáng)類型語言 因此 在進(jìn)行賦值操作時(shí)要對(duì)類型進(jìn)行檢查 當(dāng)將占位數(shù)少的類型賦值給占位數(shù)多的類型時(shí) Java自動(dòng)使用隱式類型轉(zhuǎn)換 升級(jí) 當(dāng)將占位數(shù)多的類型賦值給占位數(shù)少的類型時(shí) 需要由用戶使用顯式的強(qiáng)制類型轉(zhuǎn)換 其一般形式為 類型名 表達(dá)式 類型轉(zhuǎn)換 短類型 長類型 自動(dòng)升級(jí)長類型 短類型 強(qiáng)制轉(zhuǎn)換 自動(dòng)升級(jí)規(guī)則 1 byte或short opint int2 byte或short或int oplong long3 byte或short或int或long opfloat float4 byte或short或int或long或float opdouble double5 charopint int其中 箭頭左邊表示參與運(yùn)算的數(shù)據(jù)類型op為運(yùn)算符 如加 減 乘等 右邊表示運(yùn)算結(jié)果的數(shù)據(jù)類型 如 3 4 5 因?yàn)? 5是float型 所以3先被轉(zhuǎn)換為float型 然后再于4 5相加 其結(jié)果也為float型 例 自動(dòng)升級(jí)實(shí)例 publicclassPromotion publicstaticvoidmain Stringargs byteb 10 charc a inti 90 floatf 3 5f doubled 1 234 floatf1 f1 f b inti1 i1 c i doubled1 d1 f1 i1 d 查看結(jié)果 Test java 查看結(jié)果 Promotion java 強(qiáng)制類型轉(zhuǎn)換 類型轉(zhuǎn)換可縮小值的范圍例 inta longb b a a int b 把long型變量b強(qiáng)制轉(zhuǎn)換為int型 intx 365 bytey byte x 把int型變量i強(qiáng)制轉(zhuǎn)換為byte型 強(qiáng)制轉(zhuǎn)換后丟失一部分?jǐn)?shù)據(jù) 使得y的值為100 一般使用強(qiáng)制類型轉(zhuǎn)換可能會(huì)導(dǎo)致數(shù)值溢出或精度的下降 應(yīng)盡量避免 浮點(diǎn)類型轉(zhuǎn)換為整數(shù)類型將使所有小數(shù)部分丟失 publicclassAge publicstaticvoidmain Stringargs intageYears intageDays longageSeconds ageYears Integer parseInt args 0 ageDays ageYears 365 ageSeconds ageYears 365 24L 60 60 System out print Youare ageDays daysold System out print Youare ageSeconds secondsold 查看結(jié)果 Age java 變量類型轉(zhuǎn)換 短類型 長類型 默認(rèn)長類型 短類型 強(qiáng)制例 inta longb b a a int b 不同類型數(shù)據(jù)間的優(yōu)先關(guān)系如下 低 高byte short char int long float double 高級(jí)數(shù)據(jù)類型要轉(zhuǎn)換成低級(jí)數(shù)據(jù)類型 需要用到強(qiáng)制類型轉(zhuǎn)換 其一般形式為 類型名 表達(dá)式 如 inti byteb i 356 b byte i 強(qiáng)制轉(zhuǎn)換后丟失一部分?jǐn)?shù)據(jù) 使得b的值為100 一般使用強(qiáng)制類型轉(zhuǎn)換可能會(huì)導(dǎo)致數(shù)值溢出或精度的下降 應(yīng)盡量避免- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 面向?qū)ο蟪绦蛟O(shè)計(jì) 面向 對(duì)象 程序設(shè)計(jì) 第二 教學(xué)
鏈接地址:http://www.3dchina-expo.com/p-6130896.html