《面向?qū)ο蟪绦蛟O(shè)計(jì)》第二章教學(xué).ppt

上傳人:za****8 文檔編號(hào):14473918 上傳時(shí)間:2020-07-21 格式:PPT 頁(yè)數(shù):51 大?。?67KB
收藏 版權(quán)申訴 舉報(bào) 下載
《面向?qū)ο蟪绦蛟O(shè)計(jì)》第二章教學(xué).ppt_第1頁(yè)
第1頁(yè) / 共51頁(yè)
《面向?qū)ο蟪绦蛟O(shè)計(jì)》第二章教學(xué).ppt_第2頁(yè)
第2頁(yè) / 共51頁(yè)
《面向?qū)ο蟪绦蛟O(shè)計(jì)》第二章教學(xué).ppt_第3頁(yè)
第3頁(yè) / 共51頁(yè)

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《《面向?qū)ο蟪绦蛟O(shè)計(jì)》第二章教學(xué).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《面向?qū)ο蟪绦蛟O(shè)計(jì)》第二章教學(xué).ppt(51頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、第二章 Java基礎(chǔ),學(xué)習(xí)目標(biāo): 掌握標(biāo)識(shí)符和關(guān)鍵字 熟練使用各種數(shù)據(jù)類(lèi)型的定義、表示和引用 掌握算術(shù)、邏輯和布爾運(yùn)算符 自動(dòng)類(lèi)型轉(zhuǎn)換和強(qiáng)制類(lèi)型轉(zhuǎn)換,2.1 標(biāo)識(shí)符Java保留字,標(biāo)識(shí)符的命名規(guī)則,一定要牢記啊,類(lèi)名首字母大寫(xiě); 符號(hào)常量名全部字母大寫(xiě); 變量名、對(duì)象名、方法名、包名等標(biāo)識(shí)符全部采用小寫(xiě)字母;如果標(biāo)識(shí)符由多個(gè)單詞構(gòu)成,則首字母小寫(xiě),其后單詞的首字母大寫(xiě),其余字母小寫(xiě);,合法的標(biāo)識(shí)符 identifier userName User_Name_sysval $change A98_23 _abc 非法的標(biāo)識(shí)符 2mailroom# class A- 4 3_1the,Java

2、保留字(又稱(chēng)關(guān)鍵字),關(guān)鍵字不能作為標(biāo)識(shí)符; 關(guān)鍵字是具有專(zhuān)門(mén)的意義和用途,不能當(dāng)作一般的標(biāo)識(shí)符使用,這些標(biāo)識(shí)符稱(chēng)為保留字(reserved word),下面列出了java語(yǔ)言中的所有保留字: abstract do implements protected throws boolean double import public transient break else instanceof return true this throw byte extends int short try synchronized case false interface static void contin

3、ue catch final long strictpf volatile goto default char finally native super while package class float new switch const for null if private java中的關(guān)鍵字均用小寫(xiě)字母表示。,數(shù)據(jù)類(lèi)型與常量、變量,數(shù)據(jù)是計(jì)算機(jī)程序處理的對(duì)象,數(shù)據(jù)的類(lèi)型決定了數(shù)據(jù)的表示方式、取值范圍以及可進(jìn)行的操作。 基本類(lèi)型包括: 整型 byte,short,int和long 浮點(diǎn)型 float和double 字符型 char 邏輯型boolean 引用類(lèi)型(需要用戶自己定義) 數(shù)組

4、接口 類(lèi),基本數(shù)據(jù)類(lèi)型,存儲(chǔ)沒(méi)有小數(shù)部分的數(shù)據(jù)類(lèi)型Java各整數(shù)類(lèi)型有固定的表數(shù)范圍和字段長(zhǎng)度,而不受具體操作系統(tǒng)的影響,以保證Java程序的可移植性,1、整型,數(shù)值20在內(nèi)存中的存儲(chǔ)形式,00010100 byte(1字節(jié)) 00000000 00010100 short (2字節(jié))高位置0 00000000 00000000 00000000 00010100 int (4字節(jié)) 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00010100 Long (8字節(jié)),2、浮點(diǎn)型,浮點(diǎn)型是帶有小數(shù)部分的數(shù)據(jù)類(lèi)型,包

5、括兩種不同的數(shù)據(jù)類(lèi)型:float和double。 float類(lèi)型的變量占用4個(gè)字節(jié)(32位), double類(lèi)型的數(shù)據(jù)則需要8個(gè)字節(jié)(64位)內(nèi)存。 在許多程序中,就其表示的數(shù)值范圍而言,使用float類(lèi)型來(lái)存儲(chǔ)浮點(diǎn)數(shù)已經(jīng)足夠了。,浮點(diǎn)數(shù)據(jù)有兩種表示形式 十進(jìn)制數(shù)形式,必須含有小數(shù)點(diǎn),例如: 3.14 314.0 .314 科學(xué)記數(shù)法形式,如 3.14e2 3.14E-12 Java浮點(diǎn)數(shù)據(jù)默認(rèn)為double型,如要聲明一個(gè)常量為float型,則需在數(shù)字后面加f或F,如: double d = 3.14; float f = 3.14f;,3、布爾型(boolean),布爾數(shù)據(jù)類(lèi)型用于表

6、達(dá)兩個(gè)邏輯狀態(tài)之一的值:true(真)或false(假)。 布爾型數(shù)據(jù)只有兩個(gè)值true和false,且它們不對(duì)應(yīng)于任何整數(shù)值。 布爾型變量的定義如: boolean b=true;,4、字符型(char),字符型數(shù)據(jù)類(lèi)型用于存放單個(gè)字符,每個(gè)字符占用2個(gè)字節(jié)(16位)的存儲(chǔ)空間。 將一個(gè)字符放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的Unicode代碼放到存儲(chǔ)單元中。 char c1=t; char c2=3; char基于Unicode編碼,u前綴標(biāo)志著這是一個(gè)Unicode值 例如,u0061代表字符a。,新術(shù)語(yǔ),在Java技術(shù)中: 變量=屬性 方法

7、=操作 類(lèi)仍然稱(chēng)作類(lèi),所謂類(lèi)就是一類(lèi)屬性(變量)和操作(方法)的描述。其中,屬性可用一系列的變量表達(dá),而操作用一系列方法表示。 一類(lèi)人員Person: 抽象出下列屬性:名字、年齡、身高、婚否、性別,分別用變量name、age、height、marriage、sex表示(見(jiàn)名知義), 吃飯,講話,走路等行為可表示為相應(yīng)的方法eat() , speak() ,walk()等。,用Java語(yǔ)言描述Person類(lèi)如下:,class Person //以下5個(gè)是變量 String name; int age; double height; boolean marriage; char sex; spe

8、ak () //方法 eat () //方法 ,對(duì)Person類(lèi)中某一特定的人,上述變量就有特定的值,如name(張三),age(20),height(1.76),marriage(false),sex(m)。,變量 (屬性),變量是用來(lái)存放指定類(lèi)型的數(shù)據(jù),其值在程序運(yùn)行過(guò)程中是可變的。 在使用Java中的每個(gè)變量之前,都必須對(duì)它進(jìn)行聲明。 變量的聲明形式如下: 修飾符類(lèi)型標(biāo)識(shí)符號(hào) 變量名常量; 變量聲明包括指明變量的數(shù)據(jù)類(lèi)型、變量名和作用域 其中數(shù)據(jù)類(lèi)型說(shuō)明了這個(gè)變量能存放什么樣的數(shù)據(jù)。變量名是用來(lái)標(biāo)識(shí)該變量的,我們存取變量的內(nèi)容(變量的值)都是通過(guò)變量名來(lái)實(shí)現(xiàn)的。,變量名,在

9、Java中用標(biāo)識(shí)符來(lái)表示變量名。象Person這個(gè)類(lèi),我們使用了name、age、tall、marriage、sex這幾個(gè)標(biāo)識(shí)符,分別定義了五個(gè)變量。 程序員應(yīng)該為變量取有意義的名稱(chēng),以利于程序的閱讀和理解。(見(jiàn)名知義) 但變量取名時(shí)還有一些限制: 變量名由字母、數(shù)字、下劃線或美元符“$”組成的 變量名不能以數(shù)字作為第一個(gè)字符 區(qū)分大小寫(xiě) 下面是合法的變量名: Month(不同于month),student_name,class1,dollar$,$abc 而下面的變量名都不合法: 3a46,ab,abc-d,#ef.,變量名,變量名中字母大寫(xiě)和小寫(xiě)是有區(qū)別的,name和Name表示兩個(gè)不同的

10、變量名。 Java中約定,變量名以小寫(xiě)字母開(kāi)頭,若一個(gè)變量名由超過(guò)一個(gè)單詞所組成,則第一個(gè)單詞之后的所有單詞都以大寫(xiě)字母開(kāi)頭,以便于理解該變量名。 例如:anIntVar表示一個(gè)整型變量。,變量的初始化,賦予變量一個(gè)初值,稱(chēng)為變量的初始化。可在定義變量的同時(shí)進(jìn)行變量的初始化,如: int anIntVar=1; char aCharVar=A; float aFloatVar=1.23f; boolean aBooleanVar=true;,也可定義變量后再單獨(dú)初始化,如:,int anIntVar; char aCharVar; float aFloatVar; boolean aBoole

11、anVar; anIntVar=1; aCharVar =A; aFloatVar=1.23f; aBooleanVar=true; 兩種方法都完成了定義變量:anIntVar、aCharVar、aFloatVar、aBooleanVar,并分別給它們賦初值:1、A、1.23、true。,變量的作用域,變量的作用域:變量的使用范圍。 假定在某代碼段中能夠使用一特定變量,則此段代碼即是該變量的作用域。,在類(lèi)中聲明的類(lèi)成員變量,可在該類(lèi)的各個(gè)成員方法中使用; 在某個(gè)方法體中或參數(shù)表中聲明的變量,只能在該方法體中使用; 在某個(gè)語(yǔ)句塊中聲明的變量,只能在該語(yǔ)句塊中使用。,變量的作用域,public c

12、lass VariableLifeTime public static void main(String args) int sum=0; int A=10; for(int x=1;x<=5;x++) int y=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,class Person //以下5個(gè)成員變量 String na

13、me; int age; double tall; boolean marriage; char sex;//以下2個(gè)方法 eat(String eatwhat) System.out.println(name+” ate up the “+eatwhat); ,Speak(String saywhat,int time) int i; for(i=0;i

14、可以看出,變量name、age、tall、marriage、sex和變量i的作用域是不同的。變量name、age、tall、marriage、和sex的作用域是整個(gè)類(lèi),在類(lèi)的方法中也可使用它們。 這種變量稱(chēng)之為成員變量。確切地講,成員變量是在類(lèi)當(dāng)中、但不是在其類(lèi)的方法中定義的變量。 而變量i是定義在speak方法中,它的作用域僅限于speak方法中。這類(lèi)定義在某方法中的變量叫做局部變量。 注意:同一作用域中不可有同名的變量。如上面的代碼在speak方法中不能再定義一個(gè)名字為i的變量。,在Java中嵌套的程序塊的內(nèi)層和外層,不允許定義相同的變量名,否則將導(dǎo)致編譯錯(cuò)誤。 public class

15、ScopeError public static void main(String args) int E=999; int E=999; System.out.println(“E=+E); ,常量,常量是指在程序運(yùn)行過(guò)程中其值不變的量。 定義常量的方法有兩種: (1)在定義變量的類(lèi)型前面加final關(guān)鍵字,并同時(shí)進(jìn)行初始化,如下所示: final int aFinalVar=0; final double PI=3.14159; (2)在定義變量的類(lèi)型前面加final關(guān)鍵字,不進(jìn)行初始化。通過(guò)另外的語(yǔ)句進(jìn)行賦值。如下所示: final int aFinalVar; aFinalVar

16、=0;,常量和變量,常量與變量之間最根本的區(qū)別是:常量在經(jīng)過(guò)定義并給它一個(gè)值之后,不能再對(duì)它進(jìn)行修改。而變量則無(wú)此限制。 對(duì)于常量a,進(jìn)行如下的操作是錯(cuò)誤的: final int a=1; . a=2; 而對(duì)于變量a,如下這段代碼則是正確的。 int a=1; a=2;,示例: public class Assign public static void main (String args) int x; int y; //定義x,y兩個(gè)整型變量 float z = 1.234f ; //指定變量z為float型,且賦初值為1.234double w = 1.234 ; //指定變量

17、w為double型,且賦初值為1.234boolean flag = true ; //指定變量flag為boolean型,且賦初值為truechar c ; //定義字符型變量cString str ; //定義字符串變量strString str1 = Hi ; //指定變量str1為String型,且賦初值為Hic = A ; //給字符型變量c賦值A(chǔ)str = bye ; //給字符串變量str賦值byex = 12 ; //給整型變量x賦值為12y = x; //給整型變量y賦值為12,2.3 運(yùn)算符和表達(dá)式,運(yùn)算符分類(lèi) 依據(jù)操作數(shù)的個(gè)數(shù):?jiǎn)文窟\(yùn)算符(一元運(yùn)算符)、雙目運(yùn)算符(二元運(yùn)

18、算符)、多目運(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 用()來(lái)表述想要的結(jié)構(gòu),,2、關(guān)系運(yùn)算符:,,3、 邏輯(布爾)運(yùn)算符:,,邏輯(布爾)運(yùn)算真值表:,條件與(短路與) 條件或(短路或),4、 位運(yùn)算符:,位運(yùn)算是對(duì)整數(shù)類(lèi)型的操作數(shù)按二進(jìn)制的位進(jìn)行運(yùn)算,運(yùn)算的結(jié)果仍然是整數(shù)類(lèi)型值。,位運(yùn)算真值表,位移運(yùn)算符,位移運(yùn)算舉例,運(yùn)算符:將

19、操作數(shù)的二進(jìn)制位右移,低位溢出,高位補(bǔ)充原來(lái)高位的值。 如 int b=60; b=b1;(此時(shí)b的值為30,二進(jìn)制右移一位相當(dāng)于該數(shù)除?)考慮若b=-60,b=b1,b? 運(yùn)算符:將操作數(shù)的二進(jìn)制位右移,低位溢出,高位補(bǔ)0。,5、 賦值運(yùn)算符及條件運(yùn)算符:,賦值運(yùn)算符的形式: 變量名=表達(dá)式; 復(fù)合賦值運(yùn)算符 x+=y x=x+y x/=y x=x/y 條件運(yùn)算符的形式: 表達(dá)式1?表達(dá)式2:表達(dá)式3 舉例 int min,x=4,y=20; min=(x

20、性進(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í)和類(lèi)型轉(zhuǎn)換,賦值和表達(dá)式可能引起計(jì)算的數(shù)據(jù)類(lèi)型與保存結(jié)果的存儲(chǔ)位置之間的不匹配。,右邊的數(shù)據(jù)類(lèi)型小于左邊的數(shù)據(jù)類(lèi)型: byte num1=53; byte num2=47; long num3; num3=num1*num2; 右邊的數(shù)據(jù)類(lèi)型大于左邊的數(shù)據(jù)類(lèi)型: int num1=53; int num2=47; byte num3; num3=num1+num2; 右邊的數(shù)據(jù)類(lèi)型和數(shù)據(jù)大于左邊

21、的數(shù)據(jù)類(lèi)型: int num1=53; int num2=47; byte num3; num3=num1*num2;,注意: Java是強(qiáng)類(lèi)型語(yǔ)言,因此,在進(jìn)行賦值操作時(shí)要對(duì)類(lèi)型進(jìn)行檢查; 當(dāng)將占位數(shù)少的類(lèi)型賦值給占位數(shù)多的類(lèi)型時(shí),Java自動(dòng)使用隱式類(lèi)型轉(zhuǎn)換(升級(jí)); 當(dāng)將占位數(shù)多的類(lèi)型賦值給占位數(shù)少的類(lèi)型時(shí),需要由用戶使用顯式的強(qiáng)制類(lèi)型轉(zhuǎn)換; 其一般形式為: (類(lèi)型名)(表達(dá)式),類(lèi)型轉(zhuǎn)換,短類(lèi)型 長(zhǎng)類(lèi)型 :自動(dòng)升級(jí) 長(zhǎng)類(lèi)型 短類(lèi)型 :強(qiáng)制轉(zhuǎn)換,自動(dòng)升級(jí)規(guī)則,1. (byte或 short) op int int 2. (byte或 short或 int) op long long 3.

22、 (byte或 short或 int或 long) op float float 4. (byte或 short或 int或 long或 float) op double double 5. char op int int 其中,箭頭左邊表示參與運(yùn)算的數(shù)據(jù)類(lèi)型 op為運(yùn)算符(如加、減、乘等) 右邊表示運(yùn)算結(jié)果的數(shù)據(jù)類(lèi)型。 如:3+4.5,因?yàn)?.5是float型,所以3先被轉(zhuǎn)換為float型,然后再于4.5相加,其結(jié)果也為float型。,例: 自動(dòng)升級(jí)實(shí)例,public class Promotion public static void main( String args ) byte b

23、= 10; char c = a; int i = 90; float f = 3.5f; double d = 1.234; float f1; f1 = f * b; int i1; i1 = c+i; double d1; d1 = f1 / i1 d; 查看結(jié)果:Test.java,查看結(jié)果:Promotion.java,強(qiáng)制類(lèi)型轉(zhuǎn)換,類(lèi)型轉(zhuǎn)換可縮小值的范圍 例: int a ; long b ; b = a ; a = ( int ) b ; /*把long型變量b強(qiáng)制轉(zhuǎn)換為int型*/ int x=365; byte y=(byte)x; /*把int型變量i強(qiáng)

24、制轉(zhuǎn)換為byte型*/ // 強(qiáng)制轉(zhuǎn)換后丟失一部分?jǐn)?shù)據(jù),使得y的值為100。 一般使用強(qiáng)制類(lèi)型轉(zhuǎn)換可能會(huì)導(dǎo)致數(shù)值溢出或精度的下降,應(yīng)盡量避免。 浮點(diǎn)類(lèi)型轉(zhuǎn)換為整數(shù)類(lèi)型將使所有小數(shù)部分丟失。,public class Age public static void main(String args ) int ageYears; int ageDays; long ageSeconds; ageYears=Integer.parseInt(args0); ageDays=ageYears*365; ageSeconds=(ageYears*365*24L*60*60); System.out.pr

25、int(“You are”+ageDays+”days old.”); System.out.print(“You are”+ageSeconds+”seconds old.”); 查看結(jié)果:Age.java,變量類(lèi)型轉(zhuǎn)換,短類(lèi)型 長(zhǎng)類(lèi)型:默認(rèn) 長(zhǎng)類(lèi)型 短類(lèi)型:強(qiáng)制 例: int a ; long b ; b = a ; a = ( int ) b ;,不同類(lèi)型數(shù)據(jù)間的優(yōu)先關(guān)系如下:低-------------------------------------------高byte,short,char- int - long - float - double,高級(jí)數(shù)據(jù)類(lèi)型要轉(zhuǎn)換成低級(jí)數(shù)據(jù)類(lèi)型,需要用到強(qiáng)制類(lèi)型轉(zhuǎn)換。 其一般形式為: (類(lèi)型名)(表達(dá)式) 如: int i; byte b; i = 356; b =(byte)i; // 強(qiáng)制轉(zhuǎn)換后丟失一部分?jǐn)?shù)據(jù),使得b的值為100。 一般使用強(qiáng)制類(lèi)型轉(zhuǎn)換可能會(huì)導(dǎo)致數(shù)值溢出或精度的下降,應(yīng)盡量避免。,

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!