Java語言程序設(shè)計-v3-02_第1頁
Java語言程序設(shè)計-v3-02_第2頁
Java語言程序設(shè)計-v3-02_第3頁
Java語言程序設(shè)計-v3-02_第4頁
Java語言程序設(shè)計-v3-02_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章Java數(shù)據(jù)類型遼寧機電職業(yè)技術(shù)學(xué)院信息工程系軟件教研室遲勇回顧什么是JDK,JRE和JVM?說說你對GoogleAndroid的了解?簡述一下Java應(yīng)用程序的開發(fā)步驟?本章學(xué)習(xí)任務(wù)變量作用域?qū)嵗A康姆诸惻c使用實例數(shù)據(jù)類型的轉(zhuǎn)換與包裝類的實例本章技能目標(biāo)掌握Java數(shù)據(jù)類型的分類了解變量與常量定義、區(qū)別學(xué)會數(shù)據(jù)類型的轉(zhuǎn)換規(guī)則了解包裝類的作用并應(yīng)用它預(yù)習(xí)檢查(1)--預(yù)習(xí)新單詞單詞釋義單詞釋義primitivereferenceidentifierReservedWordWrapperClassKeyWord預(yù)習(xí)檢查(2)Java有哪些數(shù)據(jù)類型變量與常量的區(qū)別數(shù)據(jù)類型的轉(zhuǎn)換規(guī)則有哪些Java數(shù)據(jù)類型-內(nèi)容目錄Java語言的數(shù)據(jù)類型變量與常量

數(shù)據(jù)類型的轉(zhuǎn)換包裝類C語言風(fēng)格化的輸出表2-1 Java語言的數(shù)據(jù)類型基本類型(primitive)布爾類型(boolean)字符類型(char)整數(shù)類型字節(jié)型(byte)短整型(short)整型

(int)長整型(long)浮點類型浮點型(float)雙精度型(double)引用類型(reference)類(class)接口(interface)數(shù)組(array)2.1Java數(shù)據(jù)類型的分類Java語言的數(shù)據(jù)類型分為:基本類型(primitive)和引用類型(reference)兩大類其中基本數(shù)據(jù)類型包括8種,數(shù)據(jù)不能修改;引用類型包括3種,它可以由簡單的數(shù)據(jù)類型組合而成(如數(shù)組),可以根據(jù)需要自行定義(如繼承類和接口)。如表2-1所示各種數(shù)據(jù)類型的取值范圍和所占用的內(nèi)存空間。如表2-2所示表2-2 數(shù)據(jù)類型的取值范圍數(shù)據(jù)類型所占空間(字節(jié))取值范圍布爾型(boolean)1false或true字節(jié)型(byte)1-128~+127字符型(char)2`\u0000`~`\uFFFF`短整型(short)2-27~+(27-1)整型(int)4-231~+(231-1)長整型(long)8-263~+(263-1)浮點型(float)4-3.4e38~+3.4e38雙精度型(double)8-1.7e308~+1.7e308注意:關(guān)于Java中的數(shù)據(jù)類型1Java中字符串不再是字符數(shù)組,而是對象,String和StringBuffer都可以用來表示字符串;2JDK1.5之前,Java不支持C++中的指針,結(jié)構(gòu)體,聯(lián)合和枚舉等類型3Java中所有的數(shù)據(jù)類型長度都是確定的,與平臺無關(guān),這與C語言不同,因此Java中沒有sizeof操作符Java數(shù)據(jù)類型-內(nèi)容目錄Java語言的數(shù)據(jù)類型變量與常量

數(shù)據(jù)類型的轉(zhuǎn)換包裝類C語言風(fēng)格化的輸出2.2變量和常量變量是在程序執(zhí)行期間可根據(jù)需要經(jīng)常變化的值,是指定給變量、方法和類的名稱,以便編譯器可唯一標(biāo)識它們。變量具有3個特性:名稱:標(biāo)識符初始值:為其賦值或者是保留缺省值作用域:在不同程序塊中的可用性及生命周期常量是程序執(zhí)行期間不能被修改的值,常量分為常數(shù)和常變量(一般把“常數(shù)”稱為“常量”),常變量需要先定義,賦值后使用。常數(shù):如true,false,10,3.14159,‘a(chǎn)’,“tom”等常變量:(如定義常變量圓周率PI)finaldoublePI=3.14159;遼寧機電職業(yè)技術(shù)學(xué)院下面會學(xué)到:2.2.1標(biāo)識符(identifier)2.2.2Java關(guān)鍵字2.2.3變量2.2.4常量2.2.5綜合示例2.2.1標(biāo)識符(identifier)(一)標(biāo)識符是對變量、方法、類和對象的命名標(biāo)志,在Java中,標(biāo)識符的命名規(guī)則如下:

(1)標(biāo)識符中的字符只能是字母、數(shù)字、下劃線(_)或美元符($)組成,且不能是關(guān)鍵字; (2)首字符不能是數(shù)字; (3)標(biāo)識符大小寫敏感; (4)沒有長度限制

遼寧機電職業(yè)技術(shù)學(xué)院2.2.1標(biāo)識符(identifier)(二)Java中采用的是Unicode字符集,而不是windows系統(tǒng)中的ASCII字符集,Unicode字符集中每個字符用16位表示,整個字符集共有65536個字符,包含了漢字、日文、朝鮮文等多國文字符號。下面舉例說明Java語言中的標(biāo)識符的使用規(guī)則。合法的標(biāo)識符:

chara_3; float_var3; double$money;不合法的標(biāo)識符:

int3a; (數(shù)字不能開頭) chara-3; (“_”下劃線可以,但“-”橫線不可以做標(biāo)識符字符) Stringname&;(有非法字符) intint; (不能是關(guān)鍵字)2.2.2Java關(guān)鍵字

Java語言本身保留了一些特殊的標(biāo)識符,稱為保留字(ReservedWord)或關(guān)鍵字(KeyWord),關(guān)鍵字有著特定的語法含義,它們不允許作為程序中定義的類、方法或變量的標(biāo)識符。Java中的關(guān)鍵字都以小寫字母表示。

表2-3列出了Java語言中使用的關(guān)鍵字。DesignedByChiyong?2008遼寧機電職業(yè)技術(shù)學(xué)院表2-3Java關(guān)鍵字原始數(shù)據(jù)類型分支關(guān)鍵字異常處理字面值常量byteshortintlongfloatdoublecharboolean

ifelseswitchcasedefaultbreaktrycatchfinallythrowthrowsfalsetruenull方法相關(guān)關(guān)鍵字returnvoid循環(huán)關(guān)鍵字方法、變量和類修飾符對象相關(guān)關(guān)鍵字包相關(guān)關(guān)鍵字dowhileforbreakcontinueprivatepublicprotectedfinalstaticabstractsynchronizedvolatilestrictfpnewextendsimplementsclassinstanceofthissuperpackageimport

遼寧機電職業(yè)技術(shù)學(xué)院注意:關(guān)于Java中的關(guān)鍵字1)Java中true、false、null都是小寫的,這與C/C++不同。

2)Java中一些從其他語言繼承下來的關(guān)鍵字在Java雖然存在,但已經(jīng)不再使用(如const,goto等),我們也稱它們?yōu)楸A糇?,但不在表中列出?/p>

2.2.3變量

變量定義格式如下:

[<訪問修飾符>][<存儲修飾符>]<數(shù)據(jù)類型><變量名>[=初始值]; 其中方括號表示可選項,尖括號表示必選項,<變量名>要符合前面提到的標(biāo)識符命名規(guī)則。 舉例:publicstaticfinalintNUM=10;

說明:public屬于訪問修飾符,static和final都屬于存儲修飾符

變量的作用域與初值變量的可分為:全局變量,局部變量 變量的分類取決于作用域,全局變量指具有類塊作用域的類成員變量,局部變量指具有方法塊作用域的變量。局部變量沒有訪問修飾符,且局部變量必須初始化或賦值,否則不能使用;而全局變量有初始值,初始值為該變量數(shù)據(jù)類型的默認值,見表2-4。表2-4類成員變量的默認值類成員變量的數(shù)據(jù)類型默認值布爾類型(boolean)false整型(Integer)0浮點型(Float)0.0字符型(character)‘\u0000’局部變量與全局變量示例(一)行號Var.java程序代碼1publicclassVar

{staticinta;//類的成員變量,是全局變量,作用域在類Var的花括號之間

publicstaticvoidmain(String[]args){

inta=10;//局部變量,作用域在main()方法的花括號之間

System.out.println("a="+a);//輸出a的值

}}23456789 關(guān)于類成員變量及其作用域的概念,會在后面“面向?qū)ο筇匦浴钡恼鹿?jié)中詳述,這里先舉個簡單的例子說明類成員變量的默認值的意義。 例2-1:變量的作用域

遼寧機電職業(yè)技術(shù)學(xué)院局部變量與全局變量示例(二)【運行結(jié)果】a=10;【代碼說明】很簡單,因為當(dāng)作用域重合時,局部變量覆蓋全局變量。試一試:如果第6行中的a不設(shè)初始值會怎樣?答案是:編譯時會有錯誤提示“variableamightnothavebeeninitialized”(變量沒有初始化)如果去掉第6行的代碼又會輸出什么?答案是:a=0,因為這是輸出類成員變量,而類成員變量有默認值。

遼寧機電職業(yè)技術(shù)學(xué)院2.2.4常量Java中的常量分為常數(shù)和常變量,通常我們所說的常量一般特指常數(shù)(或“字面量”)。常變量由final關(guān)鍵字來修飾。一、整型常量二、浮點(實型)常量三、字符型常量四、布爾型常量一、整型常量整型(泛整型)常量包括byte,short,int,long型四種,其中l(wèi)ong型常量可以后加字母l或L,如789L。Java的整型常量按進制分有三種形式,示例如下:1)十進制:123,-456,02)八進制:以數(shù)字0開頭,如0123表示十進制數(shù)83 下面的形式是錯誤的:079,因為9不在八進制的基數(shù)范圍內(nèi)。3)十六進制:以數(shù)字0和字母x(或X)開頭,如0x1F2D表示十進制數(shù)7981

二進制與十進制的轉(zhuǎn)換規(guī)則(一)1)將二進制數(shù)(11011.101)2轉(zhuǎn)換為十進制數(shù)轉(zhuǎn)換規(guī)則:逐位乘以2的指數(shù)冪,乘積相加即可

(11011.101)2=1×24+1×23+0×22+1×21+1×20+1×2-1+0×2-2+1×2-3=16+8+2+1+0.5+0.125=(27.625)102)十進制轉(zhuǎn)換為二進制轉(zhuǎn)換規(guī)則:整數(shù)部分“除2取余法反讀法”二進制與十進制的轉(zhuǎn)換規(guī)則(二)int型long型最大值Integer.MAX_VALUELong.MAX_VALUE最小值Integer.MIN_VALUE

Long.MIN_VALUE

例:將十進制數(shù)(29)10轉(zhuǎn)換為二進制數(shù)

Java在簡單數(shù)據(jù)類型對應(yīng)的包裝類中提供了四個常值變量用來表示整型的最大和最小值,如表2-5所示(“包裝類”的概念請參看本章的第四節(jié))。222222914731010111余數(shù)表2-5 Java包裝類中整型常量的最大和最小值的靜態(tài)常量表示二、浮點型(實型)常量

Java的實型常量有float和double兩類,表示形式也有兩種,其中默認實型常數(shù)為double型值,即3.14相當(dāng)于3.14d或3.14D,如果要表示float型值,要在數(shù)字后加f或F,如23.4F。1)十進制數(shù)表示形式:314.152)科學(xué)計數(shù)法表示形式:3.1415e2,其中e或E之前必須有數(shù)字,后面的指數(shù)必須為整數(shù)。

Java在簡單數(shù)據(jù)類型的包裝類中也提供了幾個常值變量用來表示實型的最大和最小值,如表2-6所示。

Float.NaN為Not-a-Number的縮寫,表示非數(shù)字值。floatdouble最大值Float.MAX_VALUEDouble.MAX_VALUE最小值Float.MIN_VALUEDouble.MIN_VALUE正無窮大Float.POSITIVE_INFINITY

Double.POSITIVE_INFINITY負無窮大Float.NEGATIVE_INFINITYDouble.NEGATIVE_INFINITY0d/0dFloat.NaN

Double.NaN

表2-6 Java包裝類中實型常量的靜態(tài)常量表示三、字符型常量Java中的字符為雙字節(jié)字符,用16位無符號數(shù)表示,如0x0061表示‘a(chǎn)’。字符常量都是用單引號括起來單個字符,而不是使用雙引號。某些不能使用引號括起來直接表示的字符,可以使用轉(zhuǎn)義字符‘\’或“\”來實現(xiàn),如用“\’”來代表單引號(’)本身。此外,還可以后跟一至三個八進制數(shù)或加u再跟四個十六進制數(shù)來表示一個字符常量,如“\141”和“\u0061”都代表字符‘a(chǎn)’,如表2-7所示。

轉(zhuǎn)義字符描述\ddd

1到3位八進制數(shù)表示的字符\uxxxx4位十六進制數(shù)表示的字符\’單引號\”雙引號\\反斜杠\r回車\n換行\(zhòng)b退格\t制表位表2-7 Java的轉(zhuǎn)義字符四、布爾型常量

布爾型數(shù)據(jù)只有兩個值true和false。

注意:Java中的布爾值和數(shù)字之間不能相互轉(zhuǎn)換,即布爾值不對應(yīng)零或非零。

常、變量代碼書寫規(guī)范Sun為Java制定了代碼編寫規(guī)范,對常、變量代碼書寫有明確的要求,如:1)除了局部變量名外,所有實例變量(包括類變量,類常量),均采用大小寫混合的方式,第一個單詞的首字母小寫,其后單詞的首字母大寫。變量名應(yīng)簡短且富于描述。變量名的選用應(yīng)該易于記憶,即能夠指出其用途。2)盡量避免單個字符的變量名(如a,b,i等等),除非是一次性的臨時變量;3)實例變量前面需要一個下劃線,以示與其它變量相區(qū)別4)常量的聲明,應(yīng)該全部大寫,單詞間用下劃線隔開,等等。2.2.5綜合示例(1-1)VarDemo.java程序代碼publicclassVarDemo{publicstaticvoidmain(String[]args){

System.out.println("***變量賦值與顯示***");boolean

bool=true;byteb=2;shorts=3;charch='a';int

i=4;longl=5;floatf=3.14f;doubled=3.14;

System.out.println("bool="+bool);

System.out.println("b="+b);

System.out.println("s="+s);

System.out.println("ch="+ch);例2-2:常量與變量2.2.5綜合示例(1-2)

System.out.println("i="+i);

System.out.println("l="+l);

System.out.println("f="+f);

System.out.println("d="+d);

System.out.println("***字符常量顯示***");

System.out.println("短整型常量:"+067);

System.out.println("長整型常量:"+0x3a4FL);

System.out.println("八進制字符常量:"+'\141');

System.out.println("十六進制字符常量:"+'\u0061');

System.out.println("浮點型常量:"+3.14F);

System.out.println("雙精度常量:"+3.14);

System.out.println("***非數(shù)字常量顯示***");

System.out.println("非數(shù)字常量:"+0d/0d);

System.out.println("***常變量賦初值***"); finalfloatf2=9f;

System.out.println("常變量:"+f2);}}

顯示結(jié)果如下:***變量賦值與顯示***bool=trueb=2s=3ch=ai=4l=5f=3.14d=3.14***字符常量顯示***短整型常量:55長整型常量:14927八進制字符常量:a十六進制字符常量:a浮點型常量:3.14雙精度常量:3.14***常變量賦初值***常變量:9.0***非數(shù)字常量顯示***非數(shù)字常量:NaNJava數(shù)據(jù)類型-內(nèi)容目錄Java語言的數(shù)據(jù)類型變量與常量

數(shù)據(jù)類型的轉(zhuǎn)換包裝類C語言風(fēng)格化的輸出2.3數(shù)據(jù)類型的相互轉(zhuǎn)換(3-1)

各種數(shù)據(jù)類型可以混合運算。運算中,不同類型的數(shù)據(jù)要先轉(zhuǎn)化為指定的一種數(shù)據(jù)類型,然后再進行運算。轉(zhuǎn)換的方式分為兩種:自然轉(zhuǎn)換和強制轉(zhuǎn)換。 2.3.1自然轉(zhuǎn)換

轉(zhuǎn)換規(guī)則如表2-8所示:低高byte→short→char→int→long→float→double操作數(shù)1的數(shù)據(jù)類型操作數(shù)2的數(shù)據(jù)類型自然轉(zhuǎn)換后的數(shù)據(jù)類型byte或shortint

int

byte、short或intlonglongbyte、short、int或longfloatfloatbyte、short、int、long或floatdoubledoublecharintint

表2-8 自然轉(zhuǎn)換規(guī)則2.3數(shù)據(jù)類型的相互轉(zhuǎn)換(3-2)解釋:精度不同的兩種類型的數(shù)據(jù)混合運算時,低精度數(shù)據(jù)自動轉(zhuǎn)換為相應(yīng)的高精度數(shù)據(jù)類型。如果操作數(shù)為浮點型,那么只要其中一個為double類型,結(jié)果就是double類型;如果兩個操作數(shù)都為float或其中一個是float類型而另一個是泛整型,結(jié)果就是float類型;如果操作數(shù)為泛整型,只要其中一個是long類型,結(jié)果就是long類型。低于int型的數(shù)據(jù)(如byte,short,char)之間混合運算時,自然轉(zhuǎn)換為int型數(shù)據(jù)類型。

數(shù)據(jù)類型的自然轉(zhuǎn)換示例例2-3:數(shù)據(jù)類型的自然轉(zhuǎn)換TransferType.javapublicclassTransferType{publicstaticvoidmain(String[]args){ byteb=1; shorts=2; charch='a'; longl1=3L; floatf1=1.23F; doubled1=4.56D;

int

i=b+s+ch; longl2=i-l1; floatf2=b+f1; doubled2=d1/s;

System.out.println("i="+i);

System.out.println("l2="+l2);

System.out.println("f2="+f2);

System.out.println("d2="+d2);}}【運行結(jié)果】i=100l2=97f2=2.23d2=2.282.3數(shù)據(jù)類型的相互轉(zhuǎn)換(3-3)

2.3.2強制轉(zhuǎn)換

如果高精度數(shù)據(jù)向低精度數(shù)據(jù)轉(zhuǎn)換,就需要使用強制類型轉(zhuǎn)換運算符“(數(shù)據(jù)類型)”。但強制轉(zhuǎn)換會造成精度丟失,使用時需要注意。

示例:

inta; a=(int)3.64d;//強制轉(zhuǎn)換后,a值為3Java數(shù)據(jù)類型-內(nèi)容目錄Java語言的數(shù)據(jù)類型變量與常量

數(shù)據(jù)類型的轉(zhuǎn)換包裝類C語言風(fēng)格化的輸出2.4包裝類(WrapperClass)

為了改善Java簡單數(shù)據(jù)類型的功能(比如數(shù)字類型與字符串類型之間的相互轉(zhuǎn)換,或者獲得基本數(shù)據(jù)類型的信息),sun為Java類庫引入了包裝類。 在Java中每種簡單數(shù)據(jù)類型都對應(yīng)一種包裝類,如表2-9所示:基本數(shù)據(jù)類型(PrimitiveDataType)封裝類(WrapperClass)booleanBooleanbyteByteshortShortcharCharacterintIntegerlongLongfloatFloatdoubleDouble表2-9 基本數(shù)據(jù)類型與對應(yīng)的包裝類包裝類的應(yīng)用示例(5-1)

例2-4:包裝類的特殊常量FinalVarDemo.javapublicclassFinalVarDemo{publicstaticvoidmain(String[]args){ //輸出int型取值范圍中的最大值

System.out.println("Integer.MAX_VALUE="+Integer.MAX_VALUE); //輸出int型取值范圍中的最小值

System.out.println("Integer.MIN_VALUE="+Integer.MIN_VALUE); //輸出double型取值范圍中的最大值

System.out.println("Double.MAX_VALUE="+Double.MAX_VALUE); //輸出double型取值范圍中的最小值

System.out.println("Double.MIN_VALUE="+Double.MIN_VALUE); //輸出float型正無窮大值,是Infinity 包裝類的應(yīng)用示例(5-2)

System.out.println("Float.POSITIVE_INFINITY="+Float.POSITIVE_INFINITY); //輸出float型負無窮大值,是-Infinity System.out.println("Float.NEGATIVE_INFINITY="+Float.NEGATIVE_INFINITY); //輸出float型非法數(shù)字值,也可以由0f/0f得到

System.out.println("Float.NaN="+Float.NaN); //輸出float型非法數(shù)字值,也可以由0d/0d得到

System.out.println("Double.NaN="+Double.NaN);}}【運行結(jié)果】Integer.MAX_VALUE=2147483647Integer.MIN_VALUE=-2147483648Double.MAX_VALUE=1.7976931348623157E308Double.MIN_VALUE=4.9E-324Float.POSITIVE_INFINITY=InfinityFloat.NEGATIVE_INFINITY=-InfinityFloat.NaN=NaNDouble.NaN=NaN包裝類的應(yīng)用示例(5-3)ArgsDemo.javaclassArgsDemo{publicstaticvoidmain(Stringargs[]){Integernum1=newInteger("3");Integernum2=newInteger("4");

intsum=Value()*Value();//intValue()是Integer類的靜態(tài)方法,用于從包裝類的實例中獲取基

溫馨提示

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

最新文檔

評論

0/150

提交評論