




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章
數據存儲與運算程序設計
教學導航教學目標掌握Java常量與變量的定義及使用熟練掌握Java的數據類型及其轉換方法熟練掌握Java的運算符與表達式熟練掌握Java數組的定義與使用教學重點Java的常量與變量Java的數據類型及其轉換方法Java的運算符與表達式Java數組的定義與使用
身臨其境“京東商城”購物車中選購商品清單樣例如圖2-1所示,選擇的第1本圖書的名稱為“Java程序設計案例教程(慕課版)”,單價為43.10元,購買數量為2,金額小計為86.20元;選擇的第2本圖書的名稱為“Python程序設計案例教程(慕課版)”,單價為55.10元,購買數量為3,金額小計為165.30元。共選擇了兩種圖書,購買數量為5,共計金額為251.50元。因為運費為0元,所以應付總額也為251.50元,如圖2-2所示。在圖2-3所示的“京東商城”高級搜索頁面中能搜索同時滿足3個條件的圖書——書名為“網頁設計與制作實戰”,作者為“陳承歡”,出版社為“人民郵電出版社”。圖2-1“京東商城”購物車中選購商品清單樣例
圖2-3“京東商城”高級搜索頁面圖2-2“京東商城”訂單中的選購商品清單及相應費用
前導知識【知識2-1】認知Java關鍵詞Java將一些單詞賦予特定的含義,用于專門用途,不允許將其當作普通的標識符使用。這些單詞統稱為關鍵詞(Keyword),關鍵詞也稱為保留詞(ReservedWord)。Java的關鍵詞如表2-1所示。
Java使用標識符(Identifier)作為變量、對象的名稱,并提供一系列關鍵詞來實現特殊的功能。表2-1Java的關鍵詞Java中所有的關鍵詞都是小寫;true、false、null雖然不是關鍵詞,但是有其特定含義,也不能作為標識符。
前導知識【知識2-2】認知Java分隔符在Java中,分號(;)、花括號({
})、方括號([])、圓括號((
))、點(.)和空格都具有特殊的分隔作用,統稱為分隔符。分號(;)分號作為語句的結束標識,每條語句必須使用分號作為結尾。花括號({
})花括號用于定義一個代碼塊,一個代碼塊是指“{”和“}”所包含的一段代碼,代碼塊在邏輯上是一個整體。類的定義、方法體必須放在花括號中。方括號([])方括號用于定義數組元素,方括號通常緊跟數組變量名,而方括號中指定了要訪問的數組元素的索引。圓括號((
))圓括號是一個功能豐富的分隔符。例如,定義方法時必須使用圓括號,且包含形參說明;調用方法時必須使用圓括號來傳入實參。點(.)點用作類或對象與其成員(包括屬性、方法和內部類)之間的分隔符,表明某個類或某個實例的指定成員。空格空格用來分隔一條語句的不同部分。注意,不要使用空格把一個變量名分隔成兩個,這將導致程序運行出錯。
前導知識【知識2-3】認知Java普通標識符Java普通標識符是Java程序中定義的變量、方法和類的名稱,其命名規則如下。首字符為大寫字母、小寫字母、下畫線(_)或美元符號($)。除首字符之外的其他字符可以為大寫字母、小寫字母、下畫線(_)、美元符號($)及數字。字母要區分大小寫。不能出現連字符(-)和空格等特殊字符,但可以使用下畫線(_)。不能是Java關鍵詞,但可以包含關鍵詞。
Java的字符編碼采用16位統一碼(Unicode),而不是8位的ASCII。所以普通標識符中可以使用中文、日文等字符。
前導知識【知識2-3】認知Java普通標識符
使用普通標識符命名時,要盡量做到見名知意,具有一定的規律性,便于記憶,以增強源代碼的可讀性。普通標識符命名的一般約定如下。類名或接口名
類名或接口名通常由名詞組成,名稱中每一個單詞的第一個字母大寫,其余字母小寫。方法名
方法名通常第一個單詞為動詞,并且第一個單詞小寫,后續單詞的第一個字母大寫,其余字母小寫。變量名
成員變量通常由名詞組成,局部變量全部小寫,但其他變量的第一個單詞全部小寫,后續單詞的第一個字母大寫,其余字母小寫。常量名
常量名的字母一般為大寫。
前導知識【知識2-4】認知Java注釋
在用Java編寫程序時,添加注釋(Comments)可以增強程序的可讀性。注釋的作用主要體現在3個方面:①說明某段代碼的作用;②說明某個類的用途;③說明某個方法的功能,以及該方法的參數返回值的數據類型和意義。Java提供了3種類型的注釋:單行注釋、多行注釋和文檔注釋。(1)單行注釋單行注釋只有一行,表示從“//”開始到這一行結束的內容都為注釋部分。(2)多行注釋多行注釋表示從“/*”開始到“*/”結束的多行內容為注釋部分。(3)文檔注釋文檔注釋表示從“/**”開始到“*/”結束的所有內容都為注釋部分。文檔注釋的作用體現在可以使用Javadoc工具將注釋內容提取出來,并以HTML文檔格式形成一個Java程序的API文檔。2.1Java的常量與變量2.2Java的數據類型及其轉換2.4Java的運算符與表達式學習要點2.3數組的定義與使用2.1Java的常量與變量2.2Java的數據類型及其轉換2.4Java的運算符與表達式學習要點2.3數組的定義與使用任務2-1-1
計算并輸出單種商品金額【任務描述】
在ApacheNetBeansIDE中創建項目Unit02,在項目Unit02中創建主類Java2_1。
從官網下載最新版本的JDK,然后正確安裝JDK。
(1)(2)選購了1部定價為6799.00元的“華為Mate60”手機,在主類Java2_1的main()方法中編寫Java程序計算其金額,并在屏幕中輸出。
【知識必備】
【知識2-5】熟知Java常量及其類型
常量是程序執行過程中不變的量,Java程序中的常量有4種整型常量布爾型常量0102浮點型常量03字符型常量04任務2-1-1
計算并輸出單種商品金額(1)整型常量010203整型常量是指不包含小數點的數值,通常使用十進制表示,也可以使用八進制或十六進制表示。八進制整數以0開頭,并且后面的數字只能是0~7;十六進制整數以0x或0X開頭,后面可以為0~9、A、B、C、D、E、F(小寫字母a、b、c、d、e、f也可以)。整型常量只有int和long兩種類型,沒有byte和short類型的常量,其默認類型為int,如果使用長整型常量,則在整型常量后加“l”或“L”。當給整型變量賦值時,整型常量值一定要在該整型變量的有效范圍內,否則會出現編譯錯誤,且長整型常量只能賦給長整型變量。任務2-1-1
計算并輸出單種商品金額(2)浮點型常量010203帶有小數點的數值為浮點型常量,浮點型常量按類型可分為float和double類型。Java程序中浮點型常量默認為double類型,如果要使用float類型的浮點型常量,則必須在數值后加“F”或“f”,將默認的double類型轉變為float類型。當給浮點型變量賦值時,默認的double類型常量只能賦給double類型變量,如果將double類型常量賦值給float類型變量,則會出現編譯錯誤。浮點型常量可以使用科學記數法表示,如1234.5可以表示為1.2345e3或者1.2345E3。用科學記數法表示浮點型常量時,e或E的前面一定要有數字,e或E后面的數字一定要為整數。任務2-1-1
計算并輸出單種商品金額(3)字符型常量字符型常量有以下5種表示形式
使用單撇號“'”引起來的單個字符,如'a'。使用0~65535中的任何一個無符號整數,如97。使用轉義字符,其格式為'\x',如'\n'表示換行。使用八進制數的轉義序列,其格式為'\xxx',其中“xxx”是1~3個八進制數,取值范圍為0~0377,如'\141'。使用十六進制的轉義序列表示,其格式為'\uxxxx',其中“xxxx”是4個十六進制數,取值范圍為0~0xFFFF,如'\u0061'。轉義序列含義十六進制字符轉義序列含義十六進制字符\b退格\u0008\r回車\u000d\tTab鍵\u0009\'單引號\u0022\n換行\u000a\"雙引號\u0027\f換頁\u000c\\反斜杠\u005c表2-2
常用的轉義序列及其含義任務2-1-1
計算并輸出單種商品金額(4)布爾型常量布爾型常量只有true和false兩種,整型數據與布爾型常量不能互換。當利用常量來定義如π這樣的數值時,也可以利用常量來定義程序中的界限,如數組的長度等。Java中利用關鍵詞final聲明符號常量,表示這個量只能被賦值一次,一旦被賦值后,其值就不能再在程序的其他地方更改了。任務2-1-1
計算并輸出單種商品金額【知識2-6】熟知Java變量的定義、聲明及賦值變量概述變量是一個被命名的內存空間,變量中存儲的數據在程序執行過程中可以被改變,程序員編寫程序時通過變量識別內存中存儲的數據。變量的主要作用是存儲數據與傳遞數據,具有名稱、數據類型、值、作用域、生存期等特性。
變量的命名直接關系到程序的可讀性,變量的命名除了要遵守一般的命名規則之外,還要含義清楚,便于記憶和閱讀。變量名嚴格區分大小寫,如果兩個變量只是字母的大小寫不同,則也被視為兩個不同的變量。
變量類型限定了變量中所存儲數據的類型,包括占用內存空間的大小和數據存儲方式兩個方面。變量值是指變量所存儲的數據。變量名與變量值是兩個不同的概念,變量名實際上是一個符號地址,在程序中,從變量中取值實際上是通過變量名找到相應的內存地址,從其內存單元中讀取數據。如圖2-4所示,地址值相當于會議室的編號,變量名相當于會議室的名稱,變量值相當于參加會議的人。圖2-4
變量名、變量值與地址值任務2-1-1
計算并輸出單種商品金額【知識2-6】熟知Java變量的定義、聲明及賦值變量的聲明
程序執行過程中,通過變量讀寫內存中的數據,在使用變量之前必須先進行變量的聲明。變量的聲明是為變量與內存單元建立對應關系,即為變量分配內存單元。聲明變量的語法格式如下。數據類型
變量名;聲明一個變量包括定義變量名和變量數據類型,通過定義變量名來區分變量并獲得變量存儲的數據,通過定義變量的數據類型規定存儲在變量中的數據的類型。Java是強類型語言,聲明變量時必須指定數據類型。用一條聲明語句聲明一個變量,示例代碼如下。intnumber;
//聲明一個名為number的整型變量用一條聲明語句聲明多個變量,變量名之間用半角逗號“,”分隔,示例代碼如下。doubleprice,amount;
//聲明兩個數據類型相同的雙精度浮點型變量雖然Java允許一條聲明語句聲明多個變量,但為了提高程序的可讀性,減少錯誤,建議一條聲明語句只聲明一個變量。任務2-1-1
計算并輸出單種商品金額【知識2-6】熟知Java變量的定義、聲明及賦值變量的賦值
變量的實質是內存中用于存儲數據的存儲單元,變量聲明后將數據存儲到系統為變量所分配的內存單元中,也就是通常所說的“變量賦值”。Java的賦值符號為“=”,變量賦值的語法格式如下。變量名=表達式;其中,表達式是由常量、變量和運算符組成的一個算式,類似數學中的公式。注意,單個常數或變量也可以構成表達式。變量賦值的過程是先計算賦值符號“=”右邊的表達式的值,然后將這個值賦給賦值符號“=”左邊的變量。對變量進行賦值時,表達式值的數據類型必須與變量的數據類型相同,如果數據類型不同,則按Java的默認數據轉換規則進行隱式轉換。對于數值類型的賦值,如果表達式值的數據類型能表示的數值范圍正好落在變量的數據類型表示的數值范圍之內,則允許這樣賦值。例如,可以將3600賦給一個double型變量amount,這是由于double類型能表示的范圍覆蓋了int類型能表示的范圍,反之則不允許。如果系統無法自動轉換,則會出現錯誤。任務2-1-1
計算并輸出單種商品金額【知識2-6】熟知Java變量的定義、聲明及賦值變量的賦值變量賦值的要點如下。①變量必須先聲明后使用。②變量定義時根據需要賦初值,這是好的編程習慣。③Java要求所有變量在使用之前根據需要進行合理賦值。④程序中可以給一個變量多次賦值,變量的當前值等于最近一次賦給變量的值。⑤對變量的賦值過程是“覆蓋”過程。所謂“覆蓋”就是在變量地址單元中用新值去替換舊值。⑥讀出變量的值后,該變量中存儲的原值保持不變,相當于從中復制一份。⑦參與表達式運算的所有變量都保持原來的值不變。聲明變量的同時,給變量賦初值的過程稱為變量初始化。Java進行變量初始化的語法格式和示例如下。數據類型
變量名=表達式;intnumber=1;
初始化變量時,“=”兩邊的數據類型必須匹配,否則會出現編譯錯誤。聲明變量時給變量賦初值,提供的初值并不能使變量的值保持不變,它仍是一個變量,變量的值可在任何時候改變。變量初始化的聲明語句“intnumber=1;”實質上相當于兩條語句,分別是“intnumber
;”和“number=1;”,即先聲明一個變量,然后給該變量賦值。2.1Java的常量與變量2.2Java的數據類型及其轉換2.4Java的運算符與表達式學習要點2.3數組的定義與使用任務2-1-2
輸出商品數據【任務描述】在標準項目Unit02中創建主類Java2_1_2,在該類的main()方法中編寫程序實現以下功能:在屏幕中分行輸出商品“華為Mate60”的商品編碼、商品名稱、價格和金額。(詳細數據參考配套資源——商品基本信息表.xlsx。)【知識2-7】熟知Java基本數據類型Java屬于強類型語言,變量在使用之前必須定義數據類型。Java把數據類型分為基本數據類型(PrimitiveType)和引用數據類型(ReferenceType),基本數據類型的內存空間存儲的是數值,而引用數據類型的內存空間存儲的是對象的地址。Java中定義了8種基本數據類型,分別是byte、short、int、long、float、double、char、boolean。Java中的8種基本數據類型在內存中所占的字節數是固定的,不隨操作系統的改變而改變,實現了平臺無關性。任務2-1-2
輸出商品數據整數類型整數類型的數據其字面為整數,在內存中是以二進制補碼的形式存儲的,都是有符號的整數,最高位為符號位,其他位為數值位,區別在于它們在內存中占用字節數的多少。整數類型在內存中占用的字節數及表示數的范圍如表2-4所示。類型字節數最小值最大值byte1-2727-1short2-215215-1int4-231231-1long8-263263-1表2-4
整數類型在內存中占用的字節數及表示數的范圍任務2-1-2
輸出商品數據浮點數類型字符類型浮點數用來表示帶有小數點的數,浮點數是有符號數,它在內存中的表示方式與整數不同,有float和double兩種類型。float稱為單精度浮點數,在內存中占4個字節;double稱為雙精度浮點數,在內存中占8個字節。Java中的字符編碼采用Unicode,而不是ASCII。在Unicode編碼方式中,每個字符在內存中分配2個字節,這樣Unicode向下兼容ASCII,但是字符的表示范圍要遠遠大于ASCII。字符類型是無符號的2個字節的Unicode,可以表示的字符編碼范圍為0~65535,共65536個字符。字符類型用來表示單個字符時,字符類型的類型標識符是char,也稱為char類型。由單引號引起來的一個字符(如'a')就表示一個字符,單引號內的有效字符數量必須有且只有一個,并且不能是單引號或反斜杠(\)。如果要表示單引號和反斜杠(\)等特殊字符,則可使用轉義字符。布爾類型用來表示具有兩種狀態的邏輯值,也稱為boolean類型,其取值只能為true或false,不能為整數類型,并且布爾類型不能與整數類型互換。布爾類型任務2-1-2
輸出商品數據【知識2-8】認知Java基本數據類型的相互轉換自動轉換自動轉換是指當把級別低的數據賦給級別高的變量時,由系統自動完成數據類型的轉換。Java中,byte、short、int、long、float、double和char這7種基本數據類型的高低轉換規則如下。byte→short→int→long→float→double
↑
char強制轉換把類型級別高的數據賦給類型級別低的變量時,必須進行強制轉換。因為把級別高的數據賦給低級別的變量時,數據值的大小或精度可能發生變化,所以這種轉換要明確指出,即進行強制轉換。Java中8種基本數據類型占用的內存空間、表示形式、取值范圍各不相同,這就要求在對不同的數據類型變量進行賦值及運算時進行數據類型的轉換,以保證數據類型的一致性。但是,boolean類型變量的取值只能是true或false,所以基本數據類型值的轉換只能包括byte、short、int、long、float、double和char類型。基本數據類型的轉換分為自動轉換和強制轉換兩種類型。任務2-1-2
輸出商品數據【知識2-9】熟知Java運算符與表達式Java中,字符串是被雙引號引起來的一串字符,如"華為Mate60"。String類型是專門用于處理字符串的引用類型,用String關鍵詞聲明一個對象變量后,可以存儲Unicode編碼的字符串,并可以實現字符串之間的運算。String不是基本的數據類型,而是一個封裝類。(1)直接指定字符串變量聲明的格式如下。String變量名變量聲明時可以賦初值,也可以先聲明后賦值,示例代碼如下。Stringstr1="abc";或者Stringstr1;str1="abc";(2)使用new關鍵詞聲明字符串可以使用new關鍵詞聲明字符串,示例代碼如下。Strings2=newString("abc");(3)使用連接運算符生成新的字符串連接運算符“+”可以將兩個字符串連接成一個新的字符串,示例代碼如下。Strings3="ab"+"c";如果連接運算中一個為字符串,另一個為其他數據類型,則先將其他數據類型隱式轉換成字符串,再連接這兩個字符串。2.1Java的常量與變量2.2Java的數據類型及其轉換2.4Java的運算符與表達式學習要點2.3數組的定義與使用任務2-1-3
計算購買多件商品時的折扣金額【任務描述】商品“華為Mate60”的價格為6799.00元,購買數量為1,折扣率為8%;商品“華為P40Pro5G手機”的價格為2259.00元,購買數量為2,折扣率為8%。編寫Java程序計算購買這兩種商品時的折扣金額。【知識2-9-1】熟知Java算術運算符與算術表達式算術運算符用于完成整數類型和浮點類型數據的運算,包括加(+)、減(-)、乘(*)、除(/)、取余(%)、自加(++)、自減(--)、取正(+)和取負(-)運算。不同的基本數據類型在運算前要轉換成相同的數據類型才能進行算術運算。對于級別低于int類型的整型數據,在運算前至少要先轉換為int類型后才能進行算術運算。Java中加(+)、減(-)、乘(*)、除(/)運算符的用法與數學中的算術運算符的用法一樣。任務2-1-3
計算購買多件商品時的折扣金額Java對運算符“+”進行了重載,除可以進行加法運算外,還可以用于連接兩個字符串,當“+”運算符兩側的操作數有一個是字符串類型的數據時,先將另一個操作數轉換為字符串類型,再將兩個操作數連接成一個字符串。在輸出語句中使用“+”連接兩個字符串,例如,System.out.println("商品金額為:"+amount);(amount=6799.00),輸出的結果為字符串“商品金額為:6799.00”取余(%)運算符用來求兩個操作數相除的余數,例如,7%4的計算結果為3,16%4的計算結果為0。兩個整數和兩個浮點數都可以進行取余運算,如45.4%10的計算結果為5.4。當參與運算的量為負數時,結果的正負與被除數的正負一致。在除法(/)運算符構成的算術表達式中,如果操作數全為整型,則表達式的結果仍為整型,即兩個整型數據相除結果為整型數據,例如,算術表達式3/6的結果為0,而不是0.5。如果操作數為浮點型,那么只要其中有一個操作數為double型,表達式結果就為double型;只有兩個操作數全為float型或者其中一個為float型而另一個為整型時,表達式結果才為float型自加(++)、自減(--)運算符可以放在變量的前面,也可以放在變量的后面,其作用都是使變量加1或減1,但對于自加或自減表達式來說其含義是不同的,例如,當變量x所賦的值為1時,++x和x++運算后,變量x的值都為2,但表達式++x的值為2,表達式x++的值為1。任務2-1-4
判斷商品的庫存數量是否足夠【任務描述】商品“Redmi紅米K60”的訂購數量為10,目前的庫存數量為8,編寫Java程序判斷商品“Redmi紅米K60”的庫存數量是否足夠。【知識2-9-2】熟知Java比較運算符與比較表達式比較運算符用來比較兩個操作數的大小,包括大于(>)、大于或等于(>=)、小于(<)、小于或等于(<=)、等于(==)、不等于(!=)6個運算符。比較運算符的結果是一個布爾值(true或false),它的兩個操作數既可以是基本數據類型,又可以是引用類型。(1)當操作數為整型數據和浮點型數據時,比較的是兩個操作數值的大小。(2)當操作數為布爾類型數據時,只能進行等于和不等于運算,不能進行其他的比較運算。(3)當操作數為引用類型時,比較的是兩個引用是否相同,即比較兩個引用是否指向同一個對象,也只能進行等于和不等于運算。參與比較運算的兩個操作數或表達式可以是整型的,也可以是浮點型的,但是不能在浮點型數據之間進行“等于”的比較,因為浮點型數據存在精度問題,兩個浮點型數據無法達到精確的相等,這種比較就失去了意義。
任務2-1-5
判斷折扣率是否需要調整【任務描述】每年的5月17日為“世界電信日”,這一天銷售手機的最低折扣率擬定為10%,編寫Java程序判斷手機的折扣率是否需要調整。【知識2-9-3】熟知Java邏輯運算符與邏輯表達式邏輯運算包括邏輯與(&&、&)、邏輯或(||、|)、邏輯非(!)、邏輯異或(^),邏輯運算的操作數均為布爾值(true或false),其運算結果也為布爾值。邏輯運算的運算規則如表2-10所示。操作數1操作數2邏輯與邏輯或操作數1的邏輯非邏輯異或truetruetruetruefalsefalsetruefalsefalsetruefalsetruefalsetruefalsetruetruetruefalsefalsefalsefalsetruefalse表2-10
邏輯運算的運算規則任務2-1-5
判斷折扣率是否需要調整【知識2-9-3】熟知Java邏輯運算符與邏輯表達式對于形式為“操作數1邏輯運算符
操作數2”的邏輯運算,邏輯與、邏輯或的運算規則如表2-11所示。邏輯運算符操作數1運算結果是否參與運算操作數1操作數2&&(短路與)true操作數2為true時,運算結果為true,否則運算結果為false參與運算參與運算falsefalse參與運算不參與運算&(非短路與)true操作數2為true時,運算結果為true,否則運算結果為false參與運算參與運算falsefalse參與運算參與運算||(短路或)truetrue參與運算不參與運算false操作數2為true時,運算結果為true,否則運算結果為false參與運算參與運算|(非短路或)truetrue參與運算參與運算false操作數2為true時,運算結果為true,否則運算結果為false參與運算參與運算表2-11
邏輯與、邏輯或的運算規則任務2-1-5
判斷折扣率是否需要調整【知識2-9-4】認知Java位運算符位運算是指對每一個二進制位進行的操作,包括位邏輯運算和移位運算。位運算的操作數只能是基本數據類型中的整型和字符型。位邏輯運算包括按位與(&)、按位或(|)、按位取反(~)、按位異或(^)。操作數在進行位運算時,是指對操作數在內存中的二進制補碼按位進行操作。(1)位邏輯運算①按位與:如果兩個操作數的二進制位同時為1,則按位與的結果為1;否則按位與的結果為0。②按位或:如果兩個操作數的二進制位同時為0,則按位或的結果為0;否則按位或的結果為1。③按位取反:如果操作數的二進制位為1,則按位取反的結果為0;否則按位取反的結果為1。④按位異或:如果兩個操作數的二進制位相同,則按位異或的結果為0;否則按位異或的結果為1。(2)移位運算移位運算是指將整型數據或字符型數據向左或向右移動指定的位數,移位運算包括左移(<<)、右移(>>)和無符號位右移(>>>)。①左移:將整型數據在內存中的二進制補碼向左移出指定的位數,向左移出的二進制位丟棄,右側添0補位。②右移:將整型數據在內存中的二進制補碼向右移出指定的位數,向右移出的二進制位丟棄,左側進行符號位擴展,即如果操作數為正數則添0補位,否則添1補位。③無符號位右移:將整型數據在內存中的二進制補碼向右移出指定的位數,向右移出的二進制位丟棄,左側添0補位。任務2-1-7
判斷并輸出商品是否有貨【任務描述】商品“Redmi紅米K60”的訂購數量為10,但目前的庫存數量僅為8,編寫Java程序在屏幕中輸出商品“Redmi紅米K60”的庫存情況,即“有貨”還是“缺貨”。【知識2-9-5】熟知Java賦值運算符賦值運算是指將一個值寫到變量的內存空間中,因此賦值的對象一定是變量而不能是常量,在給變量賦值時,要注意賦值運算符兩邊數據類型的一致性。Java中,賦值運算符分為簡單賦值運算符和復合賦值運算符。簡單賦值運算符為“=”,即把右側表達式的值賦值給左側變量,變量的值為賦值表達式的值。復合賦值運算符是指在簡單賦值運算符前加上其他運算符。復合賦值運算符包括+=、-=、*=、/=、%=、&=、|=、^=、>>=、<<=、>>>=。任務2-1-7
判斷并輸出商品是否有貨【知識2-9-6】認知Java三元運算符三元運算符的語法格式如下。布爾表達式?表達式1:表達式2三元運算符的運算規則如下:計算布爾表達式的值,如果布爾表達式的值為true,則將表達式1的值作為整個表達式的結果;如果布爾表達式的值為false,則將表達式2的值作為整個表達式的結果。任務2-1-8
實時更新商品的庫存數量【任務描述】商品“華為Mate60”的庫存數量為5,總價值為33995.00元,編寫Java程序計算其單價。依次進貨1件和8件,然后分別售出1件和6件,編寫Java程序在屏幕中輸出庫存數量,并計算剩余商品的總價值。【知識2-9-7】認知運算符“++”或“--”的位置相關性運算符“++”或“--”的位置相關性分析如下。x++與++x都是合法的增量運算表達式,相當于x=x+1,即使變量x加1。如果將增量運算表達式作為其他表達式的操作數使用,如y=x++和y=++x,則二者的區別如下:執行x++后,該表達式的值為x(即y的值為x),而運算后x的值變為x+1;執行++x后,該表達式的值(即y的值)和x的值都變為x+1。同理,x--與--x都是合法的減量運算表達式,相當于x=x-1,即使變量x減1。如果將減量運算表達式作為其他表達式的操作數使用,如y=x--和y=--x,則二者的區別如下:執行x--后,該表達式的值為x(即y的值為x),而運算后x的值變為x-1;執行--x后,該表達式的值(即y的值)和x的值都變為x-1。任務2-1-9
計算單次購物的應付總額【任務描述】某顧客某次購物時購買了手機和電視機,手機“OPPOFindX6Pro”的價格為6999.00元,購買數量為4,折扣率為5%;電視機“海信75E3H”的價格為3289.00元,購買數量為6,折扣率為8%。編寫Java程序計算購買商品的總金額。【知識2-10】Java運算符的優先級和結合性如果一個表達式中包含多種運算符,則應先判斷運算符的優先級和結合性,優先級高的運算符先執行,優先級低的運算符后執行,對于同一優先級的運算符,則按照其結合性依次計算。Java運算符的優先級與結合性如表2-16所示。表2-16的“優先級”列中數字越小,表示優先級越高。優先級運算符結合性1[].()(方法調用)從左到右2new()(強制類型轉換)從左到右3!~++--+(取正)-(取負)從右到左4*/%從左到右5+-從左到右6<<>>>>>從左到右7>>=<<=從左到右8==!=從左到右9&從左到右10^從左到右11|從左到右12&&從左到右13||從左到右14?:從右到左15=+=-=*=/=%=^=|=&=<<=>>=>>>=從右到左表2-16
Java運算符的優先級與結合性2.1Java的常量與變量2.2Java的數據類型及其轉換2.4Java的運算符與表達式學習要點2.3數組的定義與使用任務2-2
應用一維數組分行輸出選購商品信息
【任務描述】用戶購買手機的名稱分別如下:華為Mate60、華為P40Pro5G手機、華為MateX5折疊屏手機、Redmi紅米K60、OPPOFindX6Pro。(詳細數據參考配套資源——商品基本信息表.xlsx。)分別定義int類型的一維數組、double類型的一維數組、String類型的一維數組,并為這些一維數組的元素賦值,分別用來存儲所選購商品的購買數量、價格和商品名稱,然后分行輸出選購商品的信息。【知識2-11】熟知Java一維數組的定義與使用1.一維數組的聲明一維數組的聲明包括兩個組成部分:數組名和數組元素的數據類型。數組名必須是合法的Java標識符。聲明一維數組的語法格式有以下兩種形式,這兩種形式完全等價。形式一:數據類型[]數組名;形式二:數據類型
數組名[];數據類型可以是byte、short、int、long、float、double、char等基本數據類型,也可以是對象類型。任務2-2
應用一維數組分行輸出選購商品信息
【知識2-11】熟知Java一維數組的定義與使用聲明一維數組的示例代碼如下。int[
]number;
//聲明了數據類型為int,數組名為number的一維數組double[
]price;
//聲明了數據類型為double,數組名為price的一維數組StringstrName[
];
//聲明了數據類型為String,數組名為strName的一維數組char[
]
ch1,ch2;
//聲明了兩個數據類型為char,數組名分別為ch1和ch2的一維數組如果需要同時聲明多個一維數組,則可采用如下形式。數據類型[]數組名1,數組名2,…,數組名n;任務2-2
應用一維數組分行輸出選購商品信息
【知識2-11】熟知Java一維數組的定義與使用3.一維數組的初始化一維數組的初始化分為靜態初始化和動態初始化兩種。(1)靜態初始化靜態初始化是指在聲明一維數組的同時對該數組中的每個元素直接進行賦值。這種方式可以通過一條語句完成數組的聲明、創建與初始化3項功能,示例代碼如下。int[
]number={1,2,3,4,5};該語句聲明并創建了一個長度為5的整型數組,并為每個數組元素賦初值。(2)動態初始化動態初始化是指在聲明一維數組時,首先使用new語句為其分配所需的內存空間,然后使用賦值語句獨立地對各個數組元素進行賦值。動態初始化一維數組的示例代碼如下。int[
]number;number=newint[3];number[0]=1;number[1]=2;number[2]=3;任務2-2
應用一維數組分行輸出選購商品信息
【知識2-11】熟知Java一維數組的定義與使用一維數組number的聲明、創建與動態初始化過程及內存狀態如圖2-7所示,整型一維數組的動態初始化要進行兩次內存空間分配,各條語句的執行過程說明如下。圖2-7
一維數組number的聲明、創建與動態初始化過程及內存狀態首先執行“int[
]number;”語句,此語句聲明了一個數組類型變量number,并為其分配定長的引用空間,其值為null,如圖2-7(a)所示。其次執行“number=newint[3];”語句,此語句創建一個含有3個元素的整型數組對象,為數組number分配3個整型數組空間,并根據默認的初始化規則將3個元素值初始化為0,如圖2-7(b)所示。最后執行3條賦值語句,這3條語句為各個數組元素顯式地賦初值,如圖2-7(c)所示。任務2-2
應用一維數組分行輸出選購商品信息
【知識2-11】熟知Java一維數組的定義與使用引用類型的一維數組動態初始化的示例代碼如下。引用類型一維數組的動態初始化要進行3次內存空間分配,首先為數組類型變量strName分配定長的引用空間,因為每個數組元素又是一個引用類型的對象,所以接下來要為每個數組元素(strName[0]、strName[1]、strName[2])分配定長的引用空間,最后為每個數組元素所引用的對象分配不定長的存儲空間。相應語句執行完畢后,數組strName的內存狀態如圖2-8所示。//聲明字符串類型的一維數組StringstrName[
];
//為一維數組中的每個元素分配定長的引用空間strName=newString[3];
//為第1個數組元素存儲的數據分配存儲空間strName[0]=newString("華為Mate60");
//為第2個數組元素存儲的數據分配存儲空間strName[1]=newString("華為P40Pro5G手機");//為第3個數組元素存儲的數據分配存儲空間strName[2]=newString("華為Mate
X5折疊屏手機");圖2-8數組strName的內存狀態任務2-2
應用一維數組分行輸出選購商品信息
【知識2-11】熟知Java一維數組的定義與使用一維數組的正確使用一維數組的長度數組中元素的個數稱為數組的長度。Java為所有數組設置了一個表示數組長度的屬性length,使用“數組名.length”即可獲取當前數組的長度。一維數組元素的引用聲明、創建數組,并對數組元素分配了內存空間后,才可以引用數組中的元素。一維數組元素的引用格式如下。數組名[數組元素的索引]數組元素的索引從0開始,可以是整型常量或表達式,如number[0]、number[i]、number[i+1]等。長度為n的一維數組合法的索引取值范圍為0~n-1。如果程序中數組的索引越界,則會出現運行錯誤。任務2-3
應用一維數組分行輸出選購商品信息
【知識2-11】熟知Java一維數組的定義與使用一維數組的正確使用一維數組的長度數組中元素的個數稱為數組的長度。Java為所有數組設置了一個表示數組長度的屬性length,使用“數組名.length”即可獲取當前數組的長度。一維數組元素的引用聲明、創建數組,并對數組元素分配了內存空間后,才可以引用數組中的元素。一維數組元素的引用格式如下。數組名[數組元素的索引]數組元素的索引從0開始,可以是整型常量或表達式,如number[0]、number[i]、number[i+1]等。長度為n的一維數組合法的索引取值范圍為0~n-1。如果程序中數組的索引越界,則會出現運行錯誤。任務2-2
應用二維數組分行輸出選購商品的價格和名稱
【任務描述】用戶選購的電視機的名稱分別如下:海信75E3H、酷開創維Max100、TCL115X11GMax、小米(MI)RedmiA43、長虹50P6S;選購的洗衣機的名稱分別如下:海爾XQG100-HBD1426L、小天鵝TG100V618T、美的MD100V33WY;選購的冰箱的名稱分別如下:美的(Midea)BCD-480、海爾(Haier)BCD-500。(詳細數據參考配套資源——商品基本信息表.xlsx。)分別定義double類型的二維數組和String類型的二維數組,并為這兩個二維數組的元素賦初值,分別存儲選購的電視機、洗衣機、冰箱的價格和名稱,然后分行輸出選購商品的價格和名稱。【知識2-12】熟知Java二維數組的定義與使用1.二維數組的聲明聲明二維數組的語法格式與聲明一維數組的類似,有以下兩種形式,這兩種形式完全等價。形式一:數據類型[][]數組名;形式二:數據類型數組名[][];聲明二維數組的示例代碼如下。doubleprice[][];double[][]price;任務2-2
應用二維數組分行輸出選購商品的價格和名稱
2.二維數組的創建(1)創建規則數組使用new語句可創建指定行數,且每一行的列數都相同的規則數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路工程質量試題及答案
- 論壇籌備服務協議書
- 支付經濟補償協議書
- 企業退休人員協議書
- 快遞廣告張貼協議書
- 銷售投資協議書范本
- 社區社團安全協議書
- 簡單員工入股協議書
- 婆媳婚前約定協議書
- 景區定點餐廳協議書
- 第24課《唐詩三首-茅屋為秋風所破歌》課件++2023-2024學年統編版語文八年級下冊
- 食品采購投標服務方案
- 設備搬運合同的模板
- 有機肥料整體供貨方案及保證措施
- 跨國公司的國際營銷策略淺析-以聯合利華為例
- 《肌力訓練》課件
- 全媒體運營師-國家職業標準(2023年版)
- 招標投標法培訓課件
- GLB-2防孤島保護裝置試驗報告
- 皮膚科玫瑰痤瘡的臨床表現和診斷學習培訓課件
- 高考日語復習:日語形容詞用法專項課件
評論
0/150
提交評論