《Java語法基礎》PPT課件.ppt

上傳人:xin****828 文檔編號:14604397 上傳時間:2020-07-25 格式:PPT 頁數:62 大?。?78KB
收藏 版權申訴 舉報 下載
《Java語法基礎》PPT課件.ppt_第1頁
第1頁 / 共62頁
《Java語法基礎》PPT課件.ppt_第2頁
第2頁 / 共62頁
《Java語法基礎》PPT課件.ppt_第3頁
第3頁 / 共62頁

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

14.9 積分

下載資源

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

資源描述:

《《Java語法基礎》PPT課件.ppt》由會員分享,可在線閱讀,更多相關《《Java語法基礎》PPT課件.ppt(62頁珍藏版)》請在裝配圖網上搜索。

1、第3章 Java語法基礎,(時間:3次課,6學時),第3章 Java語法基礎,教學提示:任何復雜的軟件系統(tǒng)都是采用某種語言的基本特性構建起來的。 本章主要介紹:Java語言的基礎知識,包括Java語言的基本元素、Java語言的流程控制。,第3章 Java語法基礎,3.1 標識符、關鍵字、數據類型 3.2 變量、聲明和賦值 3.3 變量的初始化 3.4 類型轉換與強制類型轉換 3.5 表達式和流程控制 3.6 數組 3.7 課后練習,3.1 標識符、關鍵字、數據類型,3.1.1 標識符 3.1.2 Java關鍵字 3.1.3 基本Java數據類型,,3.1 標識符、關鍵字、數據類型,在前兩章中已

2、經介紹了幾個Java程序,本節(jié)將介紹正式的Java程序構成的基本要素。,3.1.1 標識符,在Java語言中,標識符是變量、類或方法的名稱,例如: int idCounter;//idCounter 就是一個整型變量的標識符 一個標識符可以由大寫或小寫的字母、數字、下劃線(_)、美元符號($)按任意順序組合而成,但不可以以數字開頭。這是因為如果允許以數字開頭就會和數字常量發(fā)生混淆。另外,標識符是大小寫敏感的,例如idCounter和IdCounter不是同一個標識符。,3.1.2 Java關鍵字,關鍵字是對Java編譯器有特殊含義的字符串,是編譯器和程序員的一個約定,程序員利用關鍵字來告訴編譯

3、器其聲明的變量類型、類、方法特性等信息。目前的Java語言共定義了如表3-1所示48個關鍵字,具體每個關鍵字的意義和用法將在本書之中逐步介紹。,3.1.2 Java關鍵字,表3-1 Java關鍵字,3.1.3 基本Java數據類型,Java定義了8個簡單(或基本)的數據類型:字節(jié)型(byte),短整型(short),整型(int),長整型(long),字符型(char),浮點型(float),雙精度型(double),布爾型(boolean),這些類型可分為4組。 整數:該組包括字節(jié)型(byte),短整型(short),整型(int),長整型(long),它們是有符號整數。 浮點型數:該組包括

4、單精度浮點型(float)和雙精度浮點型(double),它們代表有小數精度要求的數字。 字符:該組包括字符型(char),它代表字符集的符號,例如字母和數字。 布爾型:該組包括布爾型(boolean),它是一種特殊的類型,表示真/假值。,3.1.3 基本Java數據類型,(1) 整數byte,short,int,long Java定義了4個整數類型:字節(jié)型(byte)、短整型(short)、整型(int)、長整型(long)。這些都是有符號的值,數值為正數或是負數。Java 不支持只能是正的無符號的整數。許多其他計算機語言,包括C/C++,支持有符號或無符號的整數。然而,無符號整數是不必要的

5、。具體地說,無符號概念主要被用來指定高位狀態(tài),它定義了當int表示一個數字時的符號。,3.1.3 基本Java數據類型,(2) 浮點型數float,double 浮點數字也就是我們所熟知的實數。在Java中表示這些實數的方法是采用兩類浮點數據類型(見表3-3),一類是單精度浮點類型(float),一類是雙精度浮點類型(double),Java實現浮點數采用的是標準浮點型(IEEE-754)和運算符集,并且是獨立于平臺的。,3.1.3 基本Java數據類型,(3) 字符char 在Java中,存儲字符的數據類型是char。 Java的char與C或C++中的char不同。在C/C++中,char

6、的寬度是8位,但Java的情況不同。Java使用Unicode碼代表字符。Unicode定義的國際化的字符集能表示迄今為止人類語言的所有字符集。它是幾十個字符集的統(tǒng)一,因此它要求16位。這樣,Java中的char類型是16位的,其范圍是065536。人們熟知的標準字符集ASCII 碼的范圍仍然是0127,擴展的位字符集ISO-Latin-1的范圍是0255。既然Java被設計為允許其開發(fā)的Applet(小應用程序)在世界范圍內使用,因此使用Unicode碼代表字符是說得通的。當然,Unicode的使用對于英語、德語、西班牙語或法語的語言是有點低效,因為它們的字符能容易地被包含在8位以內。但是為

7、了全球的可移植性,這一點代價是必須的。,3.1.3 基本Java數據類型,(4) 布爾型boolean 在Java中定義了一種基本數據類型boolean來表示邏輯值,它只有兩個文字值即true和false,以下是一個有關boolean類型變量的聲明和初始化: boolean isClosed = false; //定義一個boolean型變量isClosed并把其初始化成false 需要特別指出的是在整數類型和boolean類型之間無轉換計算。有些語言(特別值得強調的是C和C++)允許將數字值轉換成邏輯值,這在Java編程語言中是不允許的;boolean類型只允許使用boolean值,即只允許

8、使用true和false。,3.2 變量、聲明和賦值,3.2.1 變量的聲明 3.2.2 變量的作用域,,3.2 變量、聲明和賦值,變量是Java程序中的一個基本存儲單元,變量由一個標識符、類型和一個可選初始值組合定義而成。此外,所有變量都有一個作用域,來定義變量的可見性和生存期。,3.2.1 變量的聲明,在Java中,所有的變量必須先聲明后使用。聲明的方法是: Datatype identifier =value ,identifier =value ; 其中Datatype是基本數據類型之一,或者是類、接口的名字(將在以后章節(jié)介紹)。標識符是變量的名字,可以通過“=”的方式指定一個值來初始

9、化變量,聲明多個相同數據類型的變量時可以用“,”號隔開。,3.2.2 變量的作用域,本節(jié)介紹變量在Java中的作用域,可以通俗地說成變量的作用范圍。 在方法內定義的變量被稱為局部(local)變量,有時也被稱為自動(automatic)、臨時(temporary)或棧(stack)變量。 (1) 在介紹局部變量的作用域前先來介紹什么是語句、程序塊。語句就是一行以分號“;”結束的代碼。 (2) Java允許局部變量在任意程序塊的任意位置中被聲明,而在一個作用域中定義的 局部變量,對于該作用域外的程序是不可見的,即不可以被訪問,這個作用域規(guī)則為封裝提供了基礎。,3.2.2 變量的作用域,(3) 變

10、量可以在程序塊內的任何地方被聲明,但是只有在它們被聲明以后才是合法有效的。 (4) 局部變量是在一個作用域被創(chuàng)建,當程序執(zhí)行離開該作用域后被撤銷,它的生存期就是程序執(zhí)行其所在作用域的時間范圍。 (5) 盡管程序塊能被嵌套,但不能將內部作用域聲明的變量與其外部作用域聲明的變量重名。,3.3 變量的初始化,在前面的講解中,當聲明一個Java基本數據類型時,會在內存中分配對應的空間,而對一個非基本數據類型,如前面提到的String,或自己定義的類型時,聲明這些變量時并沒有分配與之類型大小對應的空間,而只是引用。 在Java程序中,任何變量都必須經初始化后才能被使用。當一個對象被創(chuàng)建時,實例變量在分配

11、存儲器的同時被下列值初始化,這一點與局部變量不同。,,3.4 類型轉換與強制類型轉換,3.4.1 Java的自動轉換 3.4.2 不兼容類型的強制轉換 3.4.3 表達式中類型的自動提升,,3.4 類型轉換與強制類型轉換,程序中經常把一種類型的值賦給另外類型的一個變量。如果這兩種類型是兼容的,那么Java將自動進行轉換。例如,把int類型的值賦給long類型的變量,總是可行的。然而,不是所有的類型都是兼容的,因此,不是所有的類型轉換都是可以隱式實現的。例如,沒有將double類型轉換為byte類型的定義。在Java中不兼容的類型之間的轉換仍然是可能的,必須使用強制類型轉換來完成兩個不兼容的類型

12、之間的顯式變換。接下來介紹自動類型轉換和強制類型轉換。,3.4.1 Java的自動轉換,如果下列兩個條件都能滿足,那么將一種類型的數據賦給另外一種類型變量時,將執(zhí)行自動類型轉換(automatic type conversion): 這兩種類型是兼容的。 目的類型數的范圍比來源類型的大。 當以上兩個條件都滿足時,發(fā)生拓寬轉換(widening conversion)。,3.4.2 不兼容類型的強制轉換,為了完成兩種不兼容類型之間的轉換,必須進行強制類型轉換。所謂強制類型轉換只不過是一種顯式的類型變換。它的通用格式如下: (target-type)value 其中,目標類型(target-typ

13、e)指定了要將指定值轉換成的類型。 當把浮點值賦給整數類型時將發(fā)生一種不同的類型轉換:截斷(truncation)。整數沒有小數部分,當把浮點值賦給整數類型時,其小數部分會被舍去。,3.4.3 表達式中類型的自動提升,除了賦值,還有另外一種類型變換:在表達式中,對中間值的精確要求有時超過任何一個操作數的范圍。 除了將byte類型和short類型提升到int類型以外,Java定義了若干適用于表達式的類型提升規(guī)則(type promotion rules)。 所有的byte類型和short類型的值被提升到int類型。 如果一個操作數是long類型,整個表達式將被提升到long類型;如果一個操作數是

14、float類型,整個表達式將被提升到float類型;如果有一個操作數是double類型,計算結果就是double類型。,3.5 表達式和流程控制,3.5.1 運算符 3.5.2 運算符優(yōu)先級 3.5.3 流程控制 3.5.4 特殊循環(huán)控制,,3.5 表達式和流程控制,在學習完數據類型后,下面就將介紹如何利用這些數據類型進行各種邏輯操作,就是如何控制程序的執(zhí)行流程,使得程序完成編程需要的行為,首先介紹Java中的運算符。,3.5.1 運算符,Java提供了豐富的運算符環(huán)境。Java有4大類運算符:算術運算、位運算、關系運算和邏輯運算。Java還定義了一些附加的運算符用于處理特殊情況。本節(jié)將描述J

15、ava所有的運算符,比較運算符instanceof將在以后的章節(jié)討論。Java語言中的運算符在風格和功能上都與C和C++極為相似。下面將分別介紹。,3.5.1 運算符,1. 算術運算符 算術運算符用來進行整型或浮點數據的算術運算,算術運算符用在數學表達式中,其用法和功能與代數學(或其他計算機語言)中一樣,Java定義的算術運算符見表3-5。,3.5.1 運算符,表3-5 Java算術運算符,3.5.1 運算符,2. 關系運算符 關系運算符是比較兩個表達式大小關系的運算,它的結果是真(true)或假(false),關系運算符有6種,如表3-6所示。,3.5.1 運算符,表3-6 關系運算符,3.

16、5.1 運算符,3. 邏輯運算符 邏輯運算符(見表3-7)是對布爾型(boolean)變量進行運算,其結果也是布爾型(boolean)。,3.5.1 運算符,表3-7 邏輯運算符,3.5.1 運算符,4. 位運算 位運算是以二進制位(bit)進行計算,操作數和結果都是整數類型,包括long、int、short、char、byte。位邏輯運算符有“與(AND)”、“或(OR)”、“異或(XOR)”、“非(NOT)”,分別用“ int i = x<0?y:z; 此處由于x<0成立,所以i取y的值為2。,3.5.1 運算符,6. 用加號(+)進行串連接 【例3.27】運算符+能夠進行String對象

17、的連接并生成一個新的String,程序如下。 String salutation = Dr. ; String name = Jack + Arthur; String title = salutation + name; 最后一行的結果如下。 Dr. Jack Arthur 如果+運算符中有一個自變量為String對象,則其他自變量將被轉換成String。所有對象都可被自動轉換成String,不是串的對象是通過使用toString()成員函數而轉換成串的。,3.5.2 運算符優(yōu)先級,運算符優(yōu)先級就是多個運算符聯(lián)合操作時各個運算符執(zhí)行的順序。表3-10顯示了Java 運算符從最高到最低的優(yōu)先級

18、。表中的符號從最上方到最下方優(yōu)先級依次降低。,3.5.2 運算符優(yōu)先級,表3-10 Java運算符優(yōu)先級表,3.5.3 流程控制,結構化的程序設計中的流程控制有3種,即順序、選擇和循環(huán)。這三種結構的組合可以實現任何復雜的流程控制,在Java中也同樣如此。利用這三種結構寫出的程序具有模塊化好,可讀性強,結構清晰的特點。順序結構顧名思義很容易理解,所以下面只介紹后兩種結構。,3.5.3 流程控制,1. 選擇控制結構 選擇控制結構是在兩種或兩種以上的路徑上選擇一種來執(zhí)行,通常在選擇前,先做一個判斷,根據結果進行選擇,Java中選擇控制結構由ifelse,switch來引導。,3.5.3 流程控制,(

19、1) ifelse語句 基本語法: if (布爾表達式) 語句或程序塊; // 邏輯塊 else 語句或程序塊;//邏輯塊 如果一個邏輯塊是單個語句,可以不要“”和“”。,3.5.3 流程控制,(2) switch語句 基本語法: switch (expr1) case expr2: statements; break; case expr3: statements; break; default: statements; break; 當switch中的變量或表達式expr1的值不能與任何case值相匹配時,可選缺省符(default)指出了應該執(zhí)行的程序代碼。如果沒有bre

20、ak語句作為某一個case代碼段的結束句,則程序的執(zhí)行將繼續(xù)到下一個case,而不檢查case表達式的值。,3.5.3 流程控制,2. 循環(huán)結構 循環(huán)語句使語句或塊的執(zhí)行得以重復進行。Java編程語言支持三種循環(huán)構造類型:for、while和do-while循環(huán)。for和while循環(huán)是在執(zhí)行循環(huán)體之前測試循環(huán)條件,而do-while循環(huán)是在執(zhí)行完循環(huán)體之后測試循環(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)的簡單格式??梢钥吹剑琭or循環(huán)是一個功能強大且

21、形式靈活的結構。下面是for循環(huán)的通用格式: for(initialization; condition; iteration) //循環(huán)體 如果只有一條語句需要重復,大括號就沒有必要。,3.5.3 流程控制,for循環(huán)的執(zhí)行過程如下 當循環(huán)啟動時,先執(zhí)行其初始化部分。通常,這是設置循環(huán)控制變量值的一個表達式,作為控制循環(huán)的計數器。重要的是要理解初始化表達式僅被執(zhí)行一次。 計算條件condition的值。條件condition必須是布爾表達式。它通常將循環(huán)控制變量與目標值相比較。如果這個表達式為真,則執(zhí)行循環(huán)體;如果為假,則循環(huán)終止。 執(zhí)行循環(huán)體的反復部分。這部分通常是增加或減少循環(huán)控制變量

22、的一個表達式。 重復循環(huán),首先計算條件表達式的值,然后執(zhí)行循環(huán)體,接著執(zhí)行反復表達式。這個過程不斷重復,直到控制表達式變?yōu)榧佟?3.5.3 流程控制,(2) while循環(huán) 基本語法: while (布爾表達式) 語句或塊 //循環(huán)體 //end while,3.5.3 流程控制,(3) do-while循環(huán) 如果while循環(huán)一開始條件表達式就是假的,那么循環(huán)體就根本不被執(zhí)行。然而,有時需要在開始時條件表達式既使是假的情況下,while循環(huán)至少也要執(zhí)行一次。換句話說,有時需要在一次循環(huán)結束后再測試中止表達式,而不是在循環(huán)開始時。Java就提供了這樣的循環(huán):do-while循環(huán)。do-w

23、hile循環(huán)總是執(zhí)行它的循環(huán)體至少一次,因為它的條件表達式在循環(huán)的結尾。 其基本語法: do 語句或塊;//循環(huán)體 while (布爾測試),3.5.4 特殊循環(huán)控制,本節(jié)介紹關鍵字break和continue的用法。,3.5.4 特殊循環(huán)控制,1. break break關鍵字有三種使用方法: switch中用到的(已介紹),用來中止一個語句序列。 break可以作為一種“更加理想”的goto語句來使用。 break可以用來退出一個循環(huán)。,3.5.4 特殊循環(huán)控制,2. continue關鍵字 continue被用來略過并跳到循環(huán)體的結尾,來強迫循環(huán)提早反復。也就是,如果想循環(huán)繼續(xù),但是要

24、忽略本次重復剩余的循環(huán)體語句時,就應采用continue。在for循環(huán)中,循環(huán)表達式被反復求值,然后執(zhí)行條件表達式,循環(huán)繼續(xù)執(zhí)行,在while和do-while循環(huán)中,continue使控制流直接轉到控制循環(huán)的條件表達式,循環(huán)繼續(xù)執(zhí)行。,3.6 數 組,3.6.1 數組的聲明 3.6.2 數組的創(chuàng)建和引用 3.6.3 數組的初始化 3.6.4 多維數組 3.6.5 復制數組,,3.6 數 組,在Java中數組是相同類型的對象的集合,并通過一個名稱(就是數組名)來引用這個集合??梢月暶魅魏晤愋偷臄到M,無論是Java基本數據類型,還是類類型。,3.6.1 數組的聲明,數組聲明有以下兩種格式 typ

25、e identifier; type identifier; 兩種格式并存,可選擇任一種習慣的方式。這里的聲明沒有指出數組的實際大小,如果需要指出,可以把大小寫到中即可。,3.6.2 數組的創(chuàng)建和引用,正如前面所述,聲明數組只是創(chuàng)建了一個引用,可以像創(chuàng)建對象一樣,使用關鍵字new 創(chuàng)建一個數組。其一般形式如下。 array_var = new typesize; 一旦分配了一個數組,可以在方括號內指定它的下標來訪問數組中特定的元素。所有的數組下標從零開始。,3.6.2 數組的創(chuàng)建和引用,數組可以在聲明時被初始化,這個過程和簡單類型初始化的過程一樣。數組的初始化(array initialize

26、r)就是包括在花括號之內用逗號分開的表達式的列表。逗號分開了數組元素的值。Java會自動地分配一個足夠大的空間來保存你指定的初始化元素的個數,而不必使用運算符new。,3.6.3 數組的初始化,由前面的例子可知,當創(chuàng)建一個數組時,每個元素都被初始化。在上述實例中的int數組mouth_days中,每個值都被初始化為0;而數組days的每個元素都被初始化為null,表明它還未引用一個MDate對象。在經過賦值days= new MDate()之后,數組的第一個元素引用為實際MDate對象。 Java編程語言允許使用下列語句快速創(chuàng)建數組。 String names=Gorge,Bush,Salon

27、; 其結果與下列代碼等同。,3.6.4 多維數組,Java編程語言不提供多維數組,但是一個數組可被聲明為具有任何基礎類型,所以可以創(chuàng)建數組的數組(和數組的數組的數組,等等)。創(chuàng)建一個二維數組的語句如下。 int a = new int 2; a0 = new int5; a1 = new int4; 首次調用new而創(chuàng)建的對象是一個數組,它包含兩個元素,每個元素的類型為整型數組(array of int),并且初始時這兩個元素都為null,然后對這兩個元素(其實這兩個元素就是兩個引用)進行初始化。,3.6.5 復制數組,數組一旦創(chuàng)建后,其大小就不可被調整了。前面提到數組變量其實是一個引用,所以

28、可利用該引用變量來引用一個全新的數組: int MyArray = new int6; MyArray = new int10; 語句中,第一個數組被丟失,但是如果數組的引用變量存在,還可以調用該數組。 為了便于數組的操作,在Java中提供了一種復制數組的方法,就是類System中的arraycopy()方法。,,3.7 課 后 練 習,1. 填空題 (1)Java中有 種基本數據類型。 (2)Java的算術運算符是雙目的有 。 2. 選擇題 (1)現有語句String s=Example;則下面哪些語句是合法語句?( ) 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ōu)先級最高。( ) (2)switch語句不能像if語句那樣嵌套。( ),3.7 課后練習,4. 簡答題 (1)判斷下列標識符,哪些是合法的,哪些是非法的。 SessionIdCounter _myCup m_static this 3upt $startTime sip_msg u+tu (dt_end) superStar (2)Java中有哪幾種流程控制語句? 5. 操作題 (1)創(chuàng)建一個類和相應的對象,完成下面的任務。 在類中編寫一個類方法,然后為類型MyPoint聲明兩個變量,將變量稱為start和end;用new MyPoint()創(chuàng)建對象并分別將引用值賦予變量start和end; 將值10賦予對象start的成員x和y; 將值20賦予對象end的x值,將值20賦予對象end的y值。 分別打印MyPoint對象(start和end)的成員值(x和y)。打印可參考如下語句: System.out.println(Start MyPoint = x:+start.x + y + start.y);,Q & A?Thanks!,,

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

相關資源

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

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

備案號:ICP2024067431-1 川公網安備51140202000466號


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