Java編程技術(shù)與項目實戰(zhàn) 課件 第2章數(shù)據(jù)類型和變量_第1頁
Java編程技術(shù)與項目實戰(zhàn) 課件 第2章數(shù)據(jù)類型和變量_第2頁
Java編程技術(shù)與項目實戰(zhàn) 課件 第2章數(shù)據(jù)類型和變量_第3頁
Java編程技術(shù)與項目實戰(zhàn) 課件 第2章數(shù)據(jù)類型和變量_第4頁
Java編程技術(shù)與項目實戰(zhàn) 課件 第2章數(shù)據(jù)類型和變量_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)類型和變量01開篇引導(dǎo)有一個小鎮(zhèn)上的書店,名為“編程書屋”。這家書店里售賣各種編程書籍,從入門級的Java到高級的算法設(shè)計,樣樣俱全。01開篇引導(dǎo)有一個小鎮(zhèn)上的書店,名為“編程書屋”。這家書店里售賣各種編程書籍,從入門級的Java到高級的算法設(shè)計,樣樣俱全。在“編程書屋”工作的小明是一位喜歡學(xué)習(xí)編程的學(xué)生。有一天,書店老板讓他負(fù)責(zé)整理書店里的書籍,并且用計算機(jī)記錄每本書的相關(guān)信息,比如書名、作者、價格和庫存量。小明開始進(jìn)行這項工作,他發(fā)現(xiàn)每本書籍都有不同的屬性需要記錄:書名是文本型數(shù)據(jù),作者是字符串類型,價格是浮點(diǎn)型,庫存量是整型。這些屬性就像是Java中的不同數(shù)據(jù)類型和變量。他用電腦上的一個簡單程序來記錄這些信息。每當(dāng)他輸入一本書的信息時,程序會幫助他保存并顯示在屏幕上,就像把書放到書架上一樣整潔有序。為什么需要不同的數(shù)據(jù)類型來保存信息?什么是Java中常見的數(shù)據(jù)類型?如何聲明和使用變量來存儲這些信息?如何利用Java程序處理和展示這些信息?討論01開篇引導(dǎo)為什么需要不同的數(shù)據(jù)類型來保存信息?什么是Java中常見的數(shù)據(jù)類型?如何聲明和使用變量來存儲這些信息?如何利用Java程序處理和展示這些信息?討論01開篇引導(dǎo)01開篇引導(dǎo)知識要點(diǎn)掌握程度相關(guān)知識數(shù)據(jù)類型重點(diǎn)掌握基本數(shù)據(jù)類型引用數(shù)據(jù)類型常量和變量重點(diǎn)掌握常量的概述常量的使用變量的概述變量的使用數(shù)據(jù)類型的轉(zhuǎn)換重點(diǎn)掌握自動轉(zhuǎn)換強(qiáng)制轉(zhuǎn)換類型推斷01開篇引導(dǎo)技能要點(diǎn)掌握程度應(yīng)用方向基本數(shù)據(jù)類型和引用數(shù)據(jù)類型重點(diǎn)掌握高性能計算內(nèi)存控制大型應(yīng)用開發(fā)變量的使用和常量的使用重點(diǎn)掌握配置管理算法和業(yè)務(wù)邏輯國際化處理數(shù)據(jù)類型的轉(zhuǎn)換重點(diǎn)掌握數(shù)據(jù)類型兼容性算數(shù)運(yùn)算方法調(diào)用數(shù)據(jù)存儲數(shù)據(jù)類型021.基本數(shù)據(jù)類型Java的基本數(shù)據(jù)類型是用于存儲基本值的簡單數(shù)據(jù)類型?;緮?shù)據(jù)類型在內(nèi)存中直接存儲值,不是對象,Java中的基本數(shù)據(jù)類型有以幾種:基本數(shù)據(jù)類型存儲大小初始化默認(rèn)值取值范圍byte1字節(jié)(8位)0-1128~127short2字節(jié)(16位)0-32768~32767int3字節(jié)(32位)0-2^31~2^31-1long8個字節(jié)(64位)0L,L是不分區(qū)分大小寫-2^63~2^63-1float4個字節(jié)(32位)0.0f

符合IEEE754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)

double8個字節(jié)(64位)0.0d符合IEEE754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)char2個字節(jié)(16位)‘\u0000’‘\u0000’~’\uffff‘boolean1個字節(jié)(8位)falsetrue或者false數(shù)據(jù)類型—引用數(shù)據(jù)類型02Java的引用類型指的是除了基本數(shù)據(jù)類型外的所有數(shù)據(jù)類型。這些引用類型包括類、接口、數(shù)組、枚舉以及其他用戶自定義的類型。常量和變量—常量的概述03常量是指一旦賦予了初始值就不能再改變的變量。Java中常量可以分為兩種主要類型:字面常量和符號常量(也稱為命名常量)。(1)字面常量①整數(shù)常量:如123,-456②浮點(diǎn)數(shù)常量:如3.14,-0.001③字符常量:使用單引號括起來的單個字符,如'A','1','$'④字符串常量:使用雙引號括起來的字符序列,如"Hello","Java"⑤布爾常量:true和false⑥空常量:null(2)符號常量【命名變量】①符號常量是通過final關(guān)鍵字定義的常量,一旦賦值后就不能再修改。通常在程序中使用符號常量來表示不會改變的值,提高代碼的可讀性和可維護(hù)性②在使用常量時,通常使用final關(guān)鍵字來定義常量,以確保其值在定義后不會被修改。使用常量可以有效地避免代碼中出現(xiàn)魔術(shù)數(shù)(magicnumbers)或硬編碼的情況,增強(qiáng)代碼的可維護(hù)性和可讀性。常量和變量—常量的使用03在定義常量需要注意的是一旦賦值就不能被修改了?!纠?-1】編寫一個簡單的Java程序,可以輸出一些常量的數(shù)據(jù)顯示到控制臺,代碼如下:publicclassConstantVariableDemo01{publicstaticvoidmain(String[]args){//1.定義字面常量//定義整數(shù)常量System.out.println(123);//定義浮點(diǎn)數(shù)常量System.out.println(3.14);//定義字符常量System.out.println('A');//定義字符串常量System.out.println("hello");//定義布爾常量System.out.println(true);System.out.println(false);在上述代碼中,當(dāng)程序運(yùn)行時,應(yīng)該在控制臺上顯示常量的數(shù)據(jù)。//定義空常量//2.定義符號常量【命名常量】finalintMAX_SIZE=300;System.out.println(MAX_SIZE);}}常量和變量—變量的概述03在Java中,變量是指在程序中用來存儲數(shù)據(jù)的容器。變量在程序執(zhí)行過程中可以被賦予不同的值,并且可以根據(jù)需要修改其值。Java中的變量可以分為以下幾種類型:(1)局部變量①局部變量聲明在方法、構(gòu)造方法或者語句塊中。②局部變量在方法執(zhí)行時創(chuàng)建,方法執(zhí)行結(jié)束時銷毀。③局部變量在聲明時需要初始化,否則編譯器會報錯。(2)成員變量①成員變量聲明在類中,但在方法之外。②成員變量在對象創(chuàng)建時被分配內(nèi)存,每個對象的成員變量擁有獨(dú)立的副本。③成員變量可以被類中的任何方法、構(gòu)造方法或者塊訪問。(3)類變量①類變量也聲明在類中,但使用static關(guān)鍵字修飾。②類變量屬于類,而不是屬于類的任何單個實例。③所有的對象共享一個類變量的副本。常量和變量—變量的使用03Java中,變量需要先聲明后使用,并且在使用前必須初始化。變量的作用域決定了變量在程序中可見的范圍。局部變量的作用域在聲明它的塊內(nèi),而成員變量和類變量的作用域在整個類內(nèi)可見?!纠?-2】編寫一個簡單的Java程序,可以輸出一些變量的數(shù)據(jù)顯示到控制臺,代碼如下:publicclassConstantVariableDemo02{//定義成員變量inta=20;//定義類變量staticintc=30;publicstaticvoidmain(String[]args){//局部變量intb=10;c++;}}在上述代碼中,在程序執(zhí)行過程中,控制臺應(yīng)展示變量的數(shù)據(jù)。這些變量可能涉及作用域問題,包括局部變量和全局變量。例如,變量a是一個全局變量,而變量b則是一個局部變量。數(shù)據(jù)類型轉(zhuǎn)換04在Java中,數(shù)據(jù)類型轉(zhuǎn)換指的是將一個數(shù)據(jù)類型的值轉(zhuǎn)換為另一個數(shù)據(jù)類型的過程。這在編程中經(jīng)常需要,特別是當(dāng)你需要將一個類型的數(shù)據(jù)賦值給另一種類型的變量,或者進(jìn)行算術(shù)運(yùn)算時。Java的數(shù)據(jù)類型可以分為兩種轉(zhuǎn)換:(1)自動轉(zhuǎn)換【隱式轉(zhuǎn)換】(2)強(qiáng)制轉(zhuǎn)換【顯式轉(zhuǎn)換】數(shù)據(jù)類型轉(zhuǎn)換—自動轉(zhuǎn)換【隱式轉(zhuǎn)換】041.自動轉(zhuǎn)換的概念隱式類型轉(zhuǎn)換是自動完成的,編譯器可以自動將較小數(shù)據(jù)類型轉(zhuǎn)換為較大數(shù)據(jù)類型,以便操作。2.自動轉(zhuǎn)換的規(guī)則當(dāng)把一種數(shù)據(jù)類型賦值給另一種數(shù)據(jù)類型時,如果兩種數(shù)據(jù)類型兼容,且目標(biāo)數(shù)據(jù)類型的范圍大于源數(shù)據(jù)類型,則編譯器會自動進(jìn)行轉(zhuǎn)換。3.自動轉(zhuǎn)換的注意事項自動類型轉(zhuǎn)換是指編譯器在不需要任何特殊指令的情況下自動進(jìn)行的類型轉(zhuǎn)換。它發(fā)生在目標(biāo)類型的范圍大于源類型的情況下,保證數(shù)據(jù)不會丟失。(1)從小范圍到大范圍的轉(zhuǎn)換:Java中的數(shù)值類型按大小可以分為byte,short,int,long,float,double,其中大小順序從左到右遞增。自動類型轉(zhuǎn)換按照以下規(guī)則進(jìn)行:byte->short->int->long->float->double(2)char類型:可以自動轉(zhuǎn)換為int類型,因為char類型實際上是Unicode碼點(diǎn)的一個范圍。數(shù)據(jù)類型轉(zhuǎn)換—自動轉(zhuǎn)換【隱式轉(zhuǎn)換】04【例2-3】編寫一個簡單的Java程序,可以將數(shù)據(jù)使用自動轉(zhuǎn)換的規(guī)則實現(xiàn)數(shù)據(jù)類型的轉(zhuǎn)換,將轉(zhuǎn)換之后的數(shù)據(jù)顯示到控制臺,代碼如下:publicclassConstantVariableDemo03{publicstaticvoidmain(String[]args){//定義變量inta=10;//將int類型轉(zhuǎn)換為double類型doubled=a;System.out.println(d);//將int類型轉(zhuǎn)換為float類型floatf=a;System.out.println(f);//將int類型轉(zhuǎn)換為long類型longl=a;System.out.println(l);//如果涉及到運(yùn)算時,int類型乘以double類型,先將數(shù)據(jù)轉(zhuǎn)換為double類型doubled1=a*0.3;System.out.println(d1);}}在上述代碼中,將數(shù)據(jù)使用自動轉(zhuǎn)換的規(guī)則實現(xiàn)數(shù)據(jù)類型的轉(zhuǎn)換,自動將較小數(shù)據(jù)類型轉(zhuǎn)換為較大數(shù)據(jù)類型。數(shù)據(jù)類型轉(zhuǎn)換—強(qiáng)制轉(zhuǎn)換【顯式轉(zhuǎn)換】041.強(qiáng)制轉(zhuǎn)換的概念顯式類型轉(zhuǎn)換需要手動完成,通常用于將一個數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換為另一個數(shù)據(jù)類型2.強(qiáng)制轉(zhuǎn)換的規(guī)則和注意事項這種轉(zhuǎn)換需要使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符

。顯式類型轉(zhuǎn)換可能會導(dǎo)致數(shù)據(jù)丟失或溢出,因此需要謹(jǐn)慎使用,確保轉(zhuǎn)換的數(shù)據(jù)在目標(biāo)類型的范圍內(nèi)。例如,將一個大范圍的整數(shù)類型轉(zhuǎn)換為一個小范圍的整數(shù)類型時,如果超出目標(biāo)類型的范圍,將會發(fā)生溢出,得到的結(jié)果可能不符合預(yù)期。數(shù)據(jù)類型轉(zhuǎn)換—強(qiáng)制轉(zhuǎn)換【顯式轉(zhuǎn)換】04【例2-4】編寫一個簡單的Java程序,可以將數(shù)據(jù)使用強(qiáng)制轉(zhuǎn)換的規(guī)則實現(xiàn)數(shù)據(jù)類型的轉(zhuǎn)換,將轉(zhuǎn)換之后的數(shù)據(jù)顯示到控制臺,代碼如下:/***強(qiáng)制轉(zhuǎn)換案例*/publicclassConstantVariableDemo04{publicstaticvoidmain(String[]args){//定義double類型doubled1=80.3;//定義float類型floatf1=50.3f;intd2=(int)d1;intf2=(int)f1;System.out.println(d2);System.out.println(d1);}}在上述代碼中,將數(shù)據(jù)使用強(qiáng)制轉(zhuǎn)換的規(guī)則實現(xiàn)數(shù)據(jù)類型的轉(zhuǎn)換,當(dāng)程序運(yùn)行時,應(yīng)該在控制臺上顯示轉(zhuǎn)換之后的數(shù)據(jù)。類型推斷051.類型推斷的概念Java10引入了局部變量類型推斷(LocalVariableTypeInference),這是一種語言功能,允許在聲明局部變量時,使用var關(guān)鍵字進(jìn)行類型推斷。這種特性使得編碼更為簡潔和靈活,同時保持了Java的靜態(tài)類型特性。2.類型推斷的使用方法在Java中,可以使用var關(guān)鍵字來進(jìn)行局部變量的類型推斷。這意味著在聲明局部變量時,可以使用var替代顯式聲明變量類型。編譯器會根據(jù)變量的初始化表達(dá)式推斷出變量的實際類型。類型推斷05【例2-5】編寫一個簡單的Java程序,可以使用var進(jìn)行類型推斷數(shù)據(jù),將推斷數(shù)據(jù)顯示到控制臺代碼如下:importjava.util.ArrayList;/***類型推斷*/publicclassConstantVariableDemo05{publicstaticvoidmain(String[]args){varlist=newArrayList<String>();varstr="helloworld";}}在上述代碼中,程序運(yùn)行時,將推斷數(shù)據(jù)顯示到控制臺,var在JDK10中才引入使用的。類型推斷—注意事項05(1)初始值必須存在:var關(guān)鍵字只能用于局部變量的聲明,并且變量必須在聲明時進(jìn)行初始化,編譯器才能推斷出實際類型。(2)不影響Java的靜態(tài)類型:雖然使用了var進(jìn)行類型推斷,但實際上編譯后的代碼仍然是靜態(tài)類型的。即使var推斷出了特定的類型,編譯后的字節(jié)碼中也會包含具體的類型信息,不會影響Java的靜態(tài)類型特性。(3)推斷范圍:類型推斷的范圍限定在局部變量聲明

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論