《Java語(yǔ)法基礎(chǔ)》PPT課件.ppt
《《Java語(yǔ)法基礎(chǔ)》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《Java語(yǔ)法基礎(chǔ)》PPT課件.ppt(62頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第3章 Java語(yǔ)法基礎(chǔ),(時(shí)間:3次課,6學(xué)時(shí)),第3章 Java語(yǔ)法基礎(chǔ),教學(xué)提示:任何復(fù)雜的軟件系統(tǒng)都是采用某種語(yǔ)言的基本特性構(gòu)建起來的。 本章主要介紹:Java語(yǔ)言的基礎(chǔ)知識(shí),包括Java語(yǔ)言的基本元素、Java語(yǔ)言的流程控制。,第3章 Java語(yǔ)法基礎(chǔ),3.1 標(biāo)識(shí)符、關(guān)鍵字、數(shù)據(jù)類型 3.2 變量、聲明和賦值 3.3 變量的初始化 3.4 類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換 3.5 表達(dá)式和流程控制 3.6 數(shù)組 3.7 課后練習(xí),3.1 標(biāo)識(shí)符、關(guān)鍵字、數(shù)據(jù)類型,3.1.1 標(biāo)識(shí)符 3.1.2 Java關(guān)鍵字 3.1.3 基本Java數(shù)據(jù)類型,,3.1 標(biāo)識(shí)符、關(guān)鍵字、數(shù)據(jù)類型,在前兩章中已
2、經(jīng)介紹了幾個(gè)Java程序,本節(jié)將介紹正式的Java程序構(gòu)成的基本要素。,3.1.1 標(biāo)識(shí)符,在Java語(yǔ)言中,標(biāo)識(shí)符是變量、類或方法的名稱,例如: int idCounter;//idCounter 就是一個(gè)整型變量的標(biāo)識(shí)符 一個(gè)標(biāo)識(shí)符可以由大寫或小寫的字母、數(shù)字、下劃線(_)、美元符號(hào)($)按任意順序組合而成,但不可以以數(shù)字開頭。這是因?yàn)槿绻试S以數(shù)字開頭就會(huì)和數(shù)字常量發(fā)生混淆。另外,標(biāo)識(shí)符是大小寫敏感的,例如idCounter和IdCounter不是同一個(gè)標(biāo)識(shí)符。,3.1.2 Java關(guān)鍵字,關(guān)鍵字是對(duì)Java編譯器有特殊含義的字符串,是編譯器和程序員的一個(gè)約定,程序員利用關(guān)鍵字來告訴編譯
3、器其聲明的變量類型、類、方法特性等信息。目前的Java語(yǔ)言共定義了如表3-1所示48個(gè)關(guān)鍵字,具體每個(gè)關(guān)鍵字的意義和用法將在本書之中逐步介紹。,3.1.2 Java關(guān)鍵字,表3-1 Java關(guān)鍵字,3.1.3 基本Java數(shù)據(jù)類型,Java定義了8個(gè)簡(jiǎn)單(或基本)的數(shù)據(jù)類型:字節(jié)型(byte),短整型(short),整型(int),長(zhǎng)整型(long),字符型(char),浮點(diǎn)型(float),雙精度型(double),布爾型(boolean),這些類型可分為4組。 整數(shù):該組包括字節(jié)型(byte),短整型(short),整型(int),長(zhǎng)整型(long),它們是有符號(hào)整數(shù)。 浮點(diǎn)型數(shù):該組包括
4、單精度浮點(diǎn)型(float)和雙精度浮點(diǎn)型(double),它們代表有小數(shù)精度要求的數(shù)字。 字符:該組包括字符型(char),它代表字符集的符號(hào),例如字母和數(shù)字。 布爾型:該組包括布爾型(boolean),它是一種特殊的類型,表示真/假值。,3.1.3 基本Java數(shù)據(jù)類型,(1) 整數(shù)byte,short,int,long Java定義了4個(gè)整數(shù)類型:字節(jié)型(byte)、短整型(short)、整型(int)、長(zhǎng)整型(long)。這些都是有符號(hào)的值,數(shù)值為正數(shù)或是負(fù)數(shù)。Java 不支持只能是正的無符號(hào)的整數(shù)。許多其他計(jì)算機(jī)語(yǔ)言,包括C/C++,支持有符號(hào)或無符號(hào)的整數(shù)。然而,無符號(hào)整數(shù)是不必要的
5、。具體地說,無符號(hào)概念主要被用來指定高位狀態(tài),它定義了當(dāng)int表示一個(gè)數(shù)字時(shí)的符號(hào)。,3.1.3 基本Java數(shù)據(jù)類型,(2) 浮點(diǎn)型數(shù)float,double 浮點(diǎn)數(shù)字也就是我們所熟知的實(shí)數(shù)。在Java中表示這些實(shí)數(shù)的方法是采用兩類浮點(diǎn)數(shù)據(jù)類型(見表3-3),一類是單精度浮點(diǎn)類型(float),一類是雙精度浮點(diǎn)類型(double),Java實(shí)現(xiàn)浮點(diǎn)數(shù)采用的是標(biāo)準(zhǔn)浮點(diǎn)型(IEEE-754)和運(yùn)算符集,并且是獨(dú)立于平臺(tái)的。,3.1.3 基本Java數(shù)據(jù)類型,(3) 字符char 在Java中,存儲(chǔ)字符的數(shù)據(jù)類型是char。 Java的char與C或C++中的char不同。在C/C++中,char
6、的寬度是8位,但Java的情況不同。Java使用Unicode碼代表字符。Unicode定義的國(guó)際化的字符集能表示迄今為止人類語(yǔ)言的所有字符集。它是幾十個(gè)字符集的統(tǒng)一,因此它要求16位。這樣,Java中的char類型是16位的,其范圍是065536。人們熟知的標(biāo)準(zhǔn)字符集ASCII 碼的范圍仍然是0127,擴(kuò)展的位字符集ISO-Latin-1的范圍是0255。既然Java被設(shè)計(jì)為允許其開發(fā)的Applet(小應(yīng)用程序)在世界范圍內(nèi)使用,因此使用Unicode碼代表字符是說得通的。當(dāng)然,Unicode的使用對(duì)于英語(yǔ)、德語(yǔ)、西班牙語(yǔ)或法語(yǔ)的語(yǔ)言是有點(diǎn)低效,因?yàn)樗鼈兊淖址苋菀椎乇话?位以內(nèi)。但是為
7、了全球的可移植性,這一點(diǎn)代價(jià)是必須的。,3.1.3 基本Java數(shù)據(jù)類型,(4) 布爾型boolean 在Java中定義了一種基本數(shù)據(jù)類型boolean來表示邏輯值,它只有兩個(gè)文字值即true和false,以下是一個(gè)有關(guān)boolean類型變量的聲明和初始化: boolean isClosed = false; //定義一個(gè)boolean型變量isClosed并把其初始化成false 需要特別指出的是在整數(shù)類型和boolean類型之間無轉(zhuǎn)換計(jì)算。有些語(yǔ)言(特別值得強(qiáng)調(diào)的是C和C++)允許將數(shù)字值轉(zhuǎn)換成邏輯值,這在Java編程語(yǔ)言中是不允許的;boolean類型只允許使用boolean值,即只允許
8、使用true和false。,3.2 變量、聲明和賦值,3.2.1 變量的聲明 3.2.2 變量的作用域,,3.2 變量、聲明和賦值,變量是Java程序中的一個(gè)基本存儲(chǔ)單元,變量由一個(gè)標(biāo)識(shí)符、類型和一個(gè)可選初始值組合定義而成。此外,所有變量都有一個(gè)作用域,來定義變量的可見性和生存期。,3.2.1 變量的聲明,在Java中,所有的變量必須先聲明后使用。聲明的方法是: Datatype identifier =value ,identifier =value ; 其中Datatype是基本數(shù)據(jù)類型之一,或者是類、接口的名字(將在以后章節(jié)介紹)。標(biāo)識(shí)符是變量的名字,可以通過“=”的方式指定一個(gè)值來初始
9、化變量,聲明多個(gè)相同數(shù)據(jù)類型的變量時(shí)可以用“,”號(hào)隔開。,3.2.2 變量的作用域,本節(jié)介紹變量在Java中的作用域,可以通俗地說成變量的作用范圍。 在方法內(nèi)定義的變量被稱為局部(local)變量,有時(shí)也被稱為自動(dòng)(automatic)、臨時(shí)(temporary)或棧(stack)變量。 (1) 在介紹局部變量的作用域前先來介紹什么是語(yǔ)句、程序塊。語(yǔ)句就是一行以分號(hào)“;”結(jié)束的代碼。 (2) Java允許局部變量在任意程序塊的任意位置中被聲明,而在一個(gè)作用域中定義的 局部變量,對(duì)于該作用域外的程序是不可見的,即不可以被訪問,這個(gè)作用域規(guī)則為封裝提供了基礎(chǔ)。,3.2.2 變量的作用域,(3) 變
10、量可以在程序塊內(nèi)的任何地方被聲明,但是只有在它們被聲明以后才是合法有效的。 (4) 局部變量是在一個(gè)作用域被創(chuàng)建,當(dāng)程序執(zhí)行離開該作用域后被撤銷,它的生存期就是程序執(zhí)行其所在作用域的時(shí)間范圍。 (5) 盡管程序塊能被嵌套,但不能將內(nèi)部作用域聲明的變量與其外部作用域聲明的變量重名。,3.3 變量的初始化,在前面的講解中,當(dāng)聲明一個(gè)Java基本數(shù)據(jù)類型時(shí),會(huì)在內(nèi)存中分配對(duì)應(yīng)的空間,而對(duì)一個(gè)非基本數(shù)據(jù)類型,如前面提到的String,或自己定義的類型時(shí),聲明這些變量時(shí)并沒有分配與之類型大小對(duì)應(yīng)的空間,而只是引用。 在Java程序中,任何變量都必須經(jīng)初始化后才能被使用。當(dāng)一個(gè)對(duì)象被創(chuàng)建時(shí),實(shí)例變量在分配
11、存儲(chǔ)器的同時(shí)被下列值初始化,這一點(diǎn)與局部變量不同。,,3.4 類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換,3.4.1 Java的自動(dòng)轉(zhuǎn)換 3.4.2 不兼容類型的強(qiáng)制轉(zhuǎn)換 3.4.3 表達(dá)式中類型的自動(dòng)提升,,3.4 類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換,程序中經(jīng)常把一種類型的值賦給另外類型的一個(gè)變量。如果這兩種類型是兼容的,那么Java將自動(dòng)進(jìn)行轉(zhuǎn)換。例如,把int類型的值賦給long類型的變量,總是可行的。然而,不是所有的類型都是兼容的,因此,不是所有的類型轉(zhuǎn)換都是可以隱式實(shí)現(xiàn)的。例如,沒有將double類型轉(zhuǎn)換為byte類型的定義。在Java中不兼容的類型之間的轉(zhuǎn)換仍然是可能的,必須使用強(qiáng)制類型轉(zhuǎn)換來完成兩個(gè)不兼容的類型
12、之間的顯式變換。接下來介紹自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。,3.4.1 Java的自動(dòng)轉(zhuǎn)換,如果下列兩個(gè)條件都能滿足,那么將一種類型的數(shù)據(jù)賦給另外一種類型變量時(shí),將執(zhí)行自動(dòng)類型轉(zhuǎn)換(automatic type conversion): 這兩種類型是兼容的。 目的類型數(shù)的范圍比來源類型的大。 當(dāng)以上兩個(gè)條件都滿足時(shí),發(fā)生拓寬轉(zhuǎn)換(widening conversion)。,3.4.2 不兼容類型的強(qiáng)制轉(zhuǎn)換,為了完成兩種不兼容類型之間的轉(zhuǎn)換,必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換。所謂強(qiáng)制類型轉(zhuǎn)換只不過是一種顯式的類型變換。它的通用格式如下: (target-type)value 其中,目標(biāo)類型(target-typ
13、e)指定了要將指定值轉(zhuǎn)換成的類型。 當(dāng)把浮點(diǎn)值賦給整數(shù)類型時(shí)將發(fā)生一種不同的類型轉(zhuǎn)換:截?cái)?truncation)。整數(shù)沒有小數(shù)部分,當(dāng)把浮點(diǎn)值賦給整數(shù)類型時(shí),其小數(shù)部分會(huì)被舍去。,3.4.3 表達(dá)式中類型的自動(dòng)提升,除了賦值,還有另外一種類型變換:在表達(dá)式中,對(duì)中間值的精確要求有時(shí)超過任何一個(gè)操作數(shù)的范圍。 除了將byte類型和short類型提升到int類型以外,Java定義了若干適用于表達(dá)式的類型提升規(guī)則(type promotion rules)。 所有的byte類型和short類型的值被提升到int類型。 如果一個(gè)操作數(shù)是long類型,整個(gè)表達(dá)式將被提升到long類型;如果一個(gè)操作數(shù)是
14、float類型,整個(gè)表達(dá)式將被提升到float類型;如果有一個(gè)操作數(shù)是double類型,計(jì)算結(jié)果就是double類型。,3.5 表達(dá)式和流程控制,3.5.1 運(yùn)算符 3.5.2 運(yùn)算符優(yōu)先級(jí) 3.5.3 流程控制 3.5.4 特殊循環(huán)控制,,3.5 表達(dá)式和流程控制,在學(xué)習(xí)完數(shù)據(jù)類型后,下面就將介紹如何利用這些數(shù)據(jù)類型進(jìn)行各種邏輯操作,就是如何控制程序的執(zhí)行流程,使得程序完成編程需要的行為,首先介紹Java中的運(yùn)算符。,3.5.1 運(yùn)算符,Java提供了豐富的運(yùn)算符環(huán)境。Java有4大類運(yùn)算符:算術(shù)運(yùn)算、位運(yùn)算、關(guān)系運(yùn)算和邏輯運(yùn)算。Java還定義了一些附加的運(yùn)算符用于處理特殊情況。本節(jié)將描述J
15、ava所有的運(yùn)算符,比較運(yùn)算符instanceof將在以后的章節(jié)討論。Java語(yǔ)言中的運(yùn)算符在風(fēng)格和功能上都與C和C++極為相似。下面將分別介紹。,3.5.1 運(yùn)算符,1. 算術(shù)運(yùn)算符 算術(shù)運(yùn)算符用來進(jìn)行整型或浮點(diǎn)數(shù)據(jù)的算術(shù)運(yùn)算,算術(shù)運(yùn)算符用在數(shù)學(xué)表達(dá)式中,其用法和功能與代數(shù)學(xué)(或其他計(jì)算機(jī)語(yǔ)言)中一樣,Java定義的算術(shù)運(yùn)算符見表3-5。,3.5.1 運(yùn)算符,表3-5 Java算術(shù)運(yùn)算符,3.5.1 運(yùn)算符,2. 關(guān)系運(yùn)算符 關(guān)系運(yùn)算符是比較兩個(gè)表達(dá)式大小關(guān)系的運(yùn)算,它的結(jié)果是真(true)或假(false),關(guān)系運(yùn)算符有6種,如表3-6所示。,3.5.1 運(yùn)算符,表3-6 關(guān)系運(yùn)算符,3.
16、5.1 運(yùn)算符,3. 邏輯運(yùn)算符 邏輯運(yùn)算符(見表3-7)是對(duì)布爾型(boolean)變量進(jìn)行運(yùn)算,其結(jié)果也是布爾型(boolean)。,3.5.1 運(yùn)算符,表3-7 邏輯運(yùn)算符,3.5.1 運(yùn)算符,4. 位運(yùn)算 位運(yùn)算是以二進(jìn)制位(bit)進(jìn)行計(jì)算,操作數(shù)和結(jié)果都是整數(shù)類型,包括long、int、short、char、byte。位邏輯運(yùn)算符有“與(AND)”、“或(OR)”、“異或(XOR)”、“非(NOT)”,分別用“ int i = x<0?y:z; 此處由于x<0成立,所以i取y的值為2。,3.5.1 運(yùn)算符,6. 用加號(hào)(+)進(jìn)行串連接 【例3.27】運(yùn)算符+能夠進(jìn)行String對(duì)象
17、的連接并生成一個(gè)新的String,程序如下。 String salutation = Dr. ; String name = Jack + Arthur; String title = salutation + name; 最后一行的結(jié)果如下。 Dr. Jack Arthur 如果+運(yùn)算符中有一個(gè)自變量為String對(duì)象,則其他自變量將被轉(zhuǎn)換成String。所有對(duì)象都可被自動(dòng)轉(zhuǎn)換成String,不是串的對(duì)象是通過使用toString()成員函數(shù)而轉(zhuǎn)換成串的。,3.5.2 運(yùn)算符優(yōu)先級(jí),運(yùn)算符優(yōu)先級(jí)就是多個(gè)運(yùn)算符聯(lián)合操作時(shí)各個(gè)運(yùn)算符執(zhí)行的順序。表3-10顯示了Java 運(yùn)算符從最高到最低的優(yōu)先級(jí)
18、。表中的符號(hào)從最上方到最下方優(yōu)先級(jí)依次降低。,3.5.2 運(yùn)算符優(yōu)先級(jí),表3-10 Java運(yùn)算符優(yōu)先級(jí)表,3.5.3 流程控制,結(jié)構(gòu)化的程序設(shè)計(jì)中的流程控制有3種,即順序、選擇和循環(huán)。這三種結(jié)構(gòu)的組合可以實(shí)現(xiàn)任何復(fù)雜的流程控制,在Java中也同樣如此。利用這三種結(jié)構(gòu)寫出的程序具有模塊化好,可讀性強(qiáng),結(jié)構(gòu)清晰的特點(diǎn)。順序結(jié)構(gòu)顧名思義很容易理解,所以下面只介紹后兩種結(jié)構(gòu)。,3.5.3 流程控制,1. 選擇控制結(jié)構(gòu) 選擇控制結(jié)構(gòu)是在兩種或兩種以上的路徑上選擇一種來執(zhí)行,通常在選擇前,先做一個(gè)判斷,根據(jù)結(jié)果進(jìn)行選擇,Java中選擇控制結(jié)構(gòu)由ifelse,switch來引導(dǎo)。,3.5.3 流程控制,(
19、1) ifelse語(yǔ)句 基本語(yǔ)法: if (布爾表達(dá)式) 語(yǔ)句或程序塊; // 邏輯塊 else 語(yǔ)句或程序塊;//邏輯塊 如果一個(gè)邏輯塊是單個(gè)語(yǔ)句,可以不要“”和“”。,3.5.3 流程控制,(2) switch語(yǔ)句 基本語(yǔ)法: switch (expr1) case expr2: statements; break; case expr3: statements; break; default: statements; break; 當(dāng)switch中的變量或表達(dá)式expr1的值不能與任何case值相匹配時(shí),可選缺省符(default)指出了應(yīng)該執(zhí)行的程序代碼。如果沒有bre
20、ak語(yǔ)句作為某一個(gè)case代碼段的結(jié)束句,則程序的執(zhí)行將繼續(xù)到下一個(gè)case,而不檢查case表達(dá)式的值。,3.5.3 流程控制,2. 循環(huán)結(jié)構(gòu) 循環(huán)語(yǔ)句使語(yǔ)句或塊的執(zhí)行得以重復(fù)進(jìn)行。Java編程語(yǔ)言支持三種循環(huán)構(gòu)造類型:for、while和do-while循環(huán)。for和while循環(huán)是在執(zhí)行循環(huán)體之前測(cè)試循環(huán)條件,而do-while循環(huán)是在執(zhí)行完循環(huán)體之后測(cè)試循環(huán)條件。這就意味著for和while循環(huán)可能連一次循環(huán)體都未執(zhí)行,而do-while循環(huán)將至少執(zhí)行一次循環(huán)體。,3.5.3 流程控制,(1) for循環(huán) 在前面的例程中曾使用過for循環(huán)的簡(jiǎn)單格式??梢钥吹剑琭or循環(huán)是一個(gè)功能強(qiáng)大且
21、形式靈活的結(jié)構(gòu)。下面是for循環(huán)的通用格式: for(initialization; condition; iteration) //循環(huán)體 如果只有一條語(yǔ)句需要重復(fù),大括號(hào)就沒有必要。,3.5.3 流程控制,for循環(huán)的執(zhí)行過程如下 當(dāng)循環(huán)啟動(dòng)時(shí),先執(zhí)行其初始化部分。通常,這是設(shè)置循環(huán)控制變量值的一個(gè)表達(dá)式,作為控制循環(huán)的計(jì)數(shù)器。重要的是要理解初始化表達(dá)式僅被執(zhí)行一次。 計(jì)算條件condition的值。條件condition必須是布爾表達(dá)式。它通常將循環(huán)控制變量與目標(biāo)值相比較。如果這個(gè)表達(dá)式為真,則執(zhí)行循環(huán)體;如果為假,則循環(huán)終止。 執(zhí)行循環(huán)體的反復(fù)部分。這部分通常是增加或減少循環(huán)控制變量
22、的一個(gè)表達(dá)式。 重復(fù)循環(huán),首先計(jì)算條件表達(dá)式的值,然后執(zhí)行循環(huán)體,接著執(zhí)行反復(fù)表達(dá)式。這個(gè)過程不斷重復(fù),直到控制表達(dá)式變?yōu)榧佟?3.5.3 流程控制,(2) while循環(huán) 基本語(yǔ)法: while (布爾表達(dá)式) 語(yǔ)句或塊 //循環(huán)體 //end while,3.5.3 流程控制,(3) do-while循環(huán) 如果while循環(huán)一開始條件表達(dá)式就是假的,那么循環(huán)體就根本不被執(zhí)行。然而,有時(shí)需要在開始時(shí)條件表達(dá)式既使是假的情況下,while循環(huán)至少也要執(zhí)行一次。換句話說,有時(shí)需要在一次循環(huán)結(jié)束后再測(cè)試中止表達(dá)式,而不是在循環(huán)開始時(shí)。Java就提供了這樣的循環(huán):do-while循環(huán)。do-w
23、hile循環(huán)總是執(zhí)行它的循環(huán)體至少一次,因?yàn)樗臈l件表達(dá)式在循環(huán)的結(jié)尾。 其基本語(yǔ)法: do 語(yǔ)句或塊;//循環(huán)體 while (布爾測(cè)試),3.5.4 特殊循環(huán)控制,本節(jié)介紹關(guān)鍵字break和continue的用法。,3.5.4 特殊循環(huán)控制,1. break break關(guān)鍵字有三種使用方法: switch中用到的(已介紹),用來中止一個(gè)語(yǔ)句序列。 break可以作為一種“更加理想”的goto語(yǔ)句來使用。 break可以用來退出一個(gè)循環(huán)。,3.5.4 特殊循環(huán)控制,2. continue關(guān)鍵字 continue被用來略過并跳到循環(huán)體的結(jié)尾,來強(qiáng)迫循環(huán)提早反復(fù)。也就是,如果想循環(huán)繼續(xù),但是要
24、忽略本次重復(fù)剩余的循環(huán)體語(yǔ)句時(shí),就應(yīng)采用continue。在for循環(huán)中,循環(huán)表達(dá)式被反復(fù)求值,然后執(zhí)行條件表達(dá)式,循環(huán)繼續(xù)執(zhí)行,在while和do-while循環(huán)中,continue使控制流直接轉(zhuǎn)到控制循環(huán)的條件表達(dá)式,循環(huán)繼續(xù)執(zhí)行。,3.6 數(shù) 組,3.6.1 數(shù)組的聲明 3.6.2 數(shù)組的創(chuàng)建和引用 3.6.3 數(shù)組的初始化 3.6.4 多維數(shù)組 3.6.5 復(fù)制數(shù)組,,3.6 數(shù) 組,在Java中數(shù)組是相同類型的對(duì)象的集合,并通過一個(gè)名稱(就是數(shù)組名)來引用這個(gè)集合??梢月暶魅魏晤愋偷臄?shù)組,無論是Java基本數(shù)據(jù)類型,還是類類型。,3.6.1 數(shù)組的聲明,數(shù)組聲明有以下兩種格式 typ
25、e identifier; type identifier; 兩種格式并存,可選擇任一種習(xí)慣的方式。這里的聲明沒有指出數(shù)組的實(shí)際大小,如果需要指出,可以把大小寫到中即可。,3.6.2 數(shù)組的創(chuàng)建和引用,正如前面所述,聲明數(shù)組只是創(chuàng)建了一個(gè)引用,可以像創(chuàng)建對(duì)象一樣,使用關(guān)鍵字new 創(chuàng)建一個(gè)數(shù)組。其一般形式如下。 array_var = new typesize; 一旦分配了一個(gè)數(shù)組,可以在方括號(hào)內(nèi)指定它的下標(biāo)來訪問數(shù)組中特定的元素。所有的數(shù)組下標(biāo)從零開始。,3.6.2 數(shù)組的創(chuàng)建和引用,數(shù)組可以在聲明時(shí)被初始化,這個(gè)過程和簡(jiǎn)單類型初始化的過程一樣。數(shù)組的初始化(array initialize
26、r)就是包括在花括號(hào)之內(nèi)用逗號(hào)分開的表達(dá)式的列表。逗號(hào)分開了數(shù)組元素的值。Java會(huì)自動(dòng)地分配一個(gè)足夠大的空間來保存你指定的初始化元素的個(gè)數(shù),而不必使用運(yùn)算符new。,3.6.3 數(shù)組的初始化,由前面的例子可知,當(dāng)創(chuàng)建一個(gè)數(shù)組時(shí),每個(gè)元素都被初始化。在上述實(shí)例中的int數(shù)組mouth_days中,每個(gè)值都被初始化為0;而數(shù)組days的每個(gè)元素都被初始化為null,表明它還未引用一個(gè)MDate對(duì)象。在經(jīng)過賦值days= new MDate()之后,數(shù)組的第一個(gè)元素引用為實(shí)際MDate對(duì)象。 Java編程語(yǔ)言允許使用下列語(yǔ)句快速創(chuàng)建數(shù)組。 String names=Gorge,Bush,Salon
27、; 其結(jié)果與下列代碼等同。,3.6.4 多維數(shù)組,Java編程語(yǔ)言不提供多維數(shù)組,但是一個(gè)數(shù)組可被聲明為具有任何基礎(chǔ)類型,所以可以創(chuàng)建數(shù)組的數(shù)組(和數(shù)組的數(shù)組的數(shù)組,等等)。創(chuàng)建一個(gè)二維數(shù)組的語(yǔ)句如下。 int a = new int 2; a0 = new int5; a1 = new int4; 首次調(diào)用new而創(chuàng)建的對(duì)象是一個(gè)數(shù)組,它包含兩個(gè)元素,每個(gè)元素的類型為整型數(shù)組(array of int),并且初始時(shí)這兩個(gè)元素都為null,然后對(duì)這兩個(gè)元素(其實(shí)這兩個(gè)元素就是兩個(gè)引用)進(jìn)行初始化。,3.6.5 復(fù)制數(shù)組,數(shù)組一旦創(chuàng)建后,其大小就不可被調(diào)整了。前面提到數(shù)組變量其實(shí)是一個(gè)引用,所以
28、可利用該引用變量來引用一個(gè)全新的數(shù)組: int MyArray = new int6; MyArray = new int10; 語(yǔ)句中,第一個(gè)數(shù)組被丟失,但是如果數(shù)組的引用變量存在,還可以調(diào)用該數(shù)組。 為了便于數(shù)組的操作,在Java中提供了一種復(fù)制數(shù)組的方法,就是類System中的arraycopy()方法。,,3.7 課 后 練 習(xí),1. 填空題 (1)Java中有 種基本數(shù)據(jù)類型。 (2)Java的算術(shù)運(yùn)算符是雙目的有 。 2. 選擇題 (1)現(xiàn)有語(yǔ)句String s=Example;則下面哪些語(yǔ)句是合法語(yǔ)句?( ) A. s=3 B. s3=x C. int i=s.len
29、gth(); D. String t=For+s; (2)下面哪些是Java保留字?( ) A. run B. default C. implement D. import 3. 判斷題 (1)()的運(yùn)算優(yōu)先級(jí)最高。( ) (2)switch語(yǔ)句不能像if語(yǔ)句那樣嵌套。( ),3.7 課后練習(xí),4. 簡(jiǎn)答題 (1)判斷下列標(biāo)識(shí)符,哪些是合法的,哪些是非法的。 SessionIdCounter _myCup m_static this 3upt $startTime sip_msg u+tu (dt_end) superStar (2)Java中有哪幾種流程控制語(yǔ)句? 5. 操作題 (1)創(chuàng)建一個(gè)類和相應(yīng)的對(duì)象,完成下面的任務(wù)。 在類中編寫一個(gè)類方法,然后為類型MyPoint聲明兩個(gè)變量,將變量稱為start和end;用new MyPoint()創(chuàng)建對(duì)象并分別將引用值賦予變量start和end; 將值10賦予對(duì)象start的成員x和y; 將值20賦予對(duì)象end的x值,將值20賦予對(duì)象end的y值。 分別打印MyPoint對(duì)象(start和end)的成員值(x和y)。打印可參考如下語(yǔ)句: System.out.println(Start MyPoint = x:+start.x + y + start.y);,Q & A?Thanks!,,
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年二年級(jí)數(shù)學(xué)上冊(cè)9總復(fù)習(xí)專題二圖形與幾何作業(yè)課件新人教版
- 2023年二年級(jí)數(shù)學(xué)上冊(cè)6表內(nèi)乘法二第4節(jié)9的乘法口訣作業(yè)課件新人教版
- 2023年二年級(jí)數(shù)學(xué)上冊(cè)4表內(nèi)乘法一22~6的乘法口訣第2節(jié)234的乘法口訣作業(yè)課件新人教版
- 2023年二年級(jí)數(shù)學(xué)上冊(cè)2100以內(nèi)的加法和減法二3連加連減和加減混合第4課時(shí)解決問題作業(yè)課件新人教版
- 2023年二年級(jí)數(shù)學(xué)上冊(cè)1長(zhǎng)度單位單元復(fù)習(xí)提升作業(yè)課件新人教版
- 2023年三年級(jí)數(shù)學(xué)下冊(cè)第四單元綠色生態(tài)園__解決問題信息窗1用連乘連除兩步運(yùn)算解決問題作業(yè)課件青島版六三制
- 2023年三年級(jí)數(shù)學(xué)下冊(cè)第六單元認(rèn)識(shí)分?jǐn)?shù)第4課時(shí)分一分二2作業(yè)課件北師大版
- 2023年三年級(jí)數(shù)學(xué)下冊(cè)第二單元長(zhǎng)方形和正方形的面積第4課時(shí)長(zhǎng)方形和正方形面積的計(jì)算1作業(yè)課件西師大版
- 2023年三年級(jí)數(shù)學(xué)下冊(cè)第三單元三位數(shù)除以一位數(shù)的除法第4課時(shí)筆算除法1作業(yè)課件西師大版
- 2023年三年級(jí)數(shù)學(xué)下冊(cè)第一單元除法練習(xí)二作業(yè)課件北師大版
- 2023年三年級(jí)數(shù)學(xué)下冊(cè)第一_五單元階段性綜合復(fù)習(xí)作業(yè)課件蘇教版
- 2023年三年級(jí)數(shù)學(xué)下冊(cè)第6單元年月日第1課時(shí)年月日1作業(yè)課件新人教版
- 2023年三年級(jí)數(shù)學(xué)下冊(cè)第4單元兩位數(shù)乘兩位數(shù)拓展提升四作業(yè)課件新人教版
- 2023年三年級(jí)數(shù)學(xué)下冊(cè)第4單元兩位數(shù)乘兩位數(shù)1口算乘法第2課時(shí)口算乘法2作業(yè)課件新人教版
- 2023年三年級(jí)數(shù)學(xué)下冊(cè)第2單元除數(shù)是一位數(shù)的除法2筆算除法第4課時(shí)商中間有0的除法作業(yè)課件新人教版