版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java程序設計(第2版)任務1類的初步使用(模塊)任務2利用Java解決簡單問題(模塊一)任務3類與對象的使用(模塊一)任務4利用繼承技術編寫網絡商城商品管理程序(模塊二)
任務5預防應用程序崩潰(模塊二)
任務6接受不同類型的參數(模塊二)任務7常用API和開發(fā)工具的使用(模塊二)任務8編寫多用戶多任務的應用系統(tǒng)(模塊三)任務9數據的存儲與讀取(模塊三)任務10分割與合并文件(模塊三)任務11編寫一個簡單記事本(模塊四)任務12編寫網絡聊天室(模塊四)任務13利用Java讀取XML數據(模塊四)附錄:編寫電影信息管理程序全套可編輯PPT課件
本課件是可編輯的正常PPT課件模塊一類的初步使用本課件是可編輯的正常PPT課件
九層之臺,始于壘土。要成為一名優(yōu)秀的Java程序員,必須要具備扎實的基本功。本模塊通過三個子任務,詳細介紹了從搭建Java開發(fā)環(huán)境到編寫Java程序的基本單位----類,所需要的基礎知識,將Java開發(fā)工具JDK及源文件編輯器的最新版本融入到教材內容當中,通過大量的案例和視頻,幫助學習者深入淺出地理解重點和難點,列舉了初學者容易出錯的代碼,并對代碼進行分析,提高初學者閱讀和調試程序的能力。針對Linux的廣泛應用,教材內容特別地增加了在Linux環(huán)境下配置和運行Java程序,讓大家體驗Java強大的跨平臺功能,感受Java程序的誘人魅力,幫助學習者適應日新月異的信息技術發(fā)展需要,提高崗位的競爭力。本課件是可編輯的正常PPT課件任務一:編寫第一個Java程序【任務描述】
小龍是一名計算機專業(yè)的新同學,通過招聘網站發(fā)現,Java工程師的崗位當前人員需求比較大,且崗位的待遇和成長空間比較好。他立志要成為一名優(yōu)秀的Java程序員,為將來成就一翻事業(yè)打下堅實的基礎。如何配置Java程序的編輯和運行環(huán)境,是小龍首先要解決的問題,你能幫助他完成這項任務嗎?本課件是可編輯的正常PPT課件【職業(yè)能力與目標】1.掌握Java語言的特點;2.能夠配置Java語言編程環(huán)境;3.能夠編寫一個簡單的Java程序;4.學會Java程序的運行機制;5.能夠在Linux環(huán)境下配置Java程序的環(huán)境;6.樹立使用國產軟件的意識。本課件是可編輯的正常PPT課件【知識儲備】一、認識JavaSun公司的Java語言開發(fā)小組成立于1991年,其最初目的是作為一種小家用電器的編程語言,用于解決家用電器控制和通信問題。最初將此語言命名為Oak。Internet異常迅速發(fā)展,Sun看到了Oak在網絡上的廣闊應用前景,于是對Oak進行了改造,在1995年的時候,Sun正式將Oak命名為Java。1996年,Java正式推出了程序開發(fā)包JDK1.0。1997年2月,發(fā)布了Java語言的開發(fā)包JDKv1.1,從此奠定了Java語言在計算機語言中的地位。1998年12月,Sun公司發(fā)布Java2平臺JDKv1.2。Java2平臺是Java發(fā)展史上的里程碑。從2000年開始至2006年,Sun每兩年發(fā)布一個新的開發(fā)包,到2006年,發(fā)布了JDKv1.6。2009年2月,開始規(guī)劃JDKv1.7,同時,在2009年,Oracle公司以74億美元正式收購Sun公司,Java商標正式歸Oracle公司所有。2014年3月,Oracle公司發(fā)布JavaSE1.8。2018年9月25日,JDK11發(fā)布,這是一個LTS(long-termsupport)版本,也就是長期支持的一個版本。此后,幾乎每半年都發(fā)布1個新的版本,但這些版本都只對早期版本的功能進行了一些優(yōu)化,分別包含有JDK12、JDK13、JDK14、JDK15、JDK16等版本。2021年9月14日,JDK17發(fā)布,這也是在JDK11之后發(fā)布的長期支持(LTS)版本,主打安全、性能、穩(wěn)定為特性,官方計劃免費支持到2024年。2023年9月,最新版本的JDK21已經發(fā)布,它也是一個長期支持的版本,計劃免費支持到2026年。目前其他的版本多數都不是長期支持版本,只是某些功能的強化,用戶可以根據需要來選擇自己喜歡的版本作為開發(fā)工具。本課件是可編輯的正常PPT課件二、為什么要學習Java程序Java語言基本上來源于C語言但又有很多的不同。Java語言的特點有:1.面向對象面向對象是現實世界模型的自然延伸?,F實世界中任何載體都可以看成是對象,對象之間通過消息相互作用。傳統(tǒng)的編程語言是以過程為中心、以算法為驅動,而面向對象的編程語言是以對象為中心、以消息為驅動。Java語言支持面向對象編程語言的三個概念:封裝、多態(tài)性和繼承?;趯ο蟮木幊谈先说乃季S模式,使人們更容易編寫程序。2.與平臺無關Java語言的最大優(yōu)勢是與平臺無關。使用Java語言編寫的應用程序不需要進行任何修改,就可以在不同的硬件平臺上運行,從而大大降低了開發(fā)、維護和管理成本。Java源程序的擴展名為.java,需要在編譯器中進行編譯,形成二進制代碼擴展名為.class,這些二進制代碼可通過Java虛擬機(JVM)來識別運行。因此,任何一臺機器只要配備了JVM就可以運行Java編寫的程序。3.安全性由于Java語言面向網絡的語言,因此必須具有相當的安全性避免病毒程序的產生和網絡程序對本地系統(tǒng)的破壞。Java用VM機制引入了安全防線,確保Java程序的安全性。本課件是可編輯的正常PPT課件4.多線程多線程允許同時完成多個任務。在現實生活中,人們身邊經常會同時發(fā)生很多事情,多線程的概念就是讓計算機同時運行多個程序段。Java在兩個方面支持多線程:首先,Java環(huán)境本身是多線程的;其次,Java語言內置多線程控制,其提供了一個類Thread,由它負責啟動、終止線程。5.動態(tài)性由于Java程序的基本組成單元是類,有程序人員自己編寫的類,也有從Java類庫引入的。Java的類庫可以自由地添加方法和屬性而不會影響用戶程序。因此,Java的動態(tài)性可以很好地適應不斷變化的執(zhí)行環(huán)境。6.支持網絡編程Java提供的類庫可以處理HTTP和FTP等TCP/IP協(xié)議,用戶可以通過URL地址在網絡上訪問其他對象就如同存取本地文件系統(tǒng)一樣簡單。本課件是可編輯的正常PPT課件【任務實施】三、配置windows下的Java運行環(huán)境JDK是Java開發(fā)工具包(JavaDevelopmentKit)的縮寫,是一種最基本的工具和開發(fā)環(huán)境。1.安裝Java編譯器(1)JDK的下載首先下載JDK的最新版本,可以在ORACLE公司的官方網站上下載,網站的地址:/java/technologies/downloads/#java21,進入網站后,根據網站的圖標提示,下載安裝包,如果是其他的操作系統(tǒng),用戶可以根據需要進行選擇。(2)JDK的安裝下載的JDK工具名稱為jdk-21_windows-x64_bin.exe,雙擊運行,依照提示進行安裝。在設置JDK的安裝路徑時,為避免以后編譯、運行時因文件路徑而出錯,文件夾的名稱不應包括空格字符。安裝過程建議保持默認狀態(tài),單擊下一步,直至完成安裝。2.配置運行環(huán)境JDK安裝完成后,需要設置環(huán)境變量。以windows11操作系統(tǒng)為例,右擊“計算機”|“屬性”,單擊“高級系統(tǒng)設置”,選擇“高級”選項卡,單擊“環(huán)境變量”,打開如圖1-1所示的“環(huán)境變量”對話框。(1.1Java運行環(huán)境配置視頻)本課件是可編輯的正常PPT課件圖1-1環(huán)境變量對話框圖1-2新建JAVA_HOME變量圖1-3新建classpath變量
單擊“Administrator的用戶變量”中的“新建”按鈕,新建系統(tǒng)變量JAVA_HOME,其值設置為JDK的安裝路徑,默認為C:\ProgramFiles\Java\jdk-21,如圖1-2所示。
新建“系統(tǒng)變量”classpath,如圖1-3所示。注意,在設置classpath的值時,是以“.”開始,代表當前目錄。其值設置為:“.;%JAVA_HOME%\lib\jrt-fs.jar。
選中“系統(tǒng)變量”中的path,單擊“編輯”按鈕,在變量值最后添加:%JAVA_HOME%\bin。JDK配置完成后,可以對JDK開發(fā)環(huán)境進行測試。本課件是可編輯的正常PPT課件
點擊系統(tǒng)的“開始”菜單,在“搜索程序和文件”中輸入cmd,打開命令窗口,在窗口中輸入命令“Javac”,得到圖1-4所示的結果,說明配置成功。圖1-4運行環(huán)境配置驗證本課件是可編輯的正常PPT課件四、第一個Java程序1.編寫Java源程序
所謂源程序,是指按照一定的程序設計語言(如Java語言等)規(guī)范進行書寫,未經編譯的可讀文本文件。Java源程序就是用戶與Java世界交互的語言,只要提供正確的源程序,Java就可以按照程序所寫的那樣去做。例如,在計算機控制臺中顯示一行文字“Hello,World!”,能實現此功能的Java源代碼如下:【解決問題1】第一個java程序HelloWorld。//第一個簡單的Java應用程序publicclassHelloWorld
{publicstaticvoidmain(String[]args){System.out.println("Hello,World!");//顯示Hello,World!}}
將程序以文件的形式保存,注意文件名必須命名為HelloWorld.java。“.java”為Java源程序文件的擴展名。本課件是可編輯的正常PPT課件2.初識Java程序結構以HelloWorld.java源程序為例,介紹Java程序中的各個組成部分。(1)注釋在程序中加入注釋,可提高程序的可讀性,使程序易于閱讀和理解。注釋的內容在程序執(zhí)行時是不會被執(zhí)行的。HelloWorld.java源程序的第一行包含注釋語句://第一個簡單的Java應用程序其中“//”字符將這行其余內容轉換為注釋內容,這樣的注釋稱為“單行注釋”。除此之外,也可以在語句的末尾追加一個注釋,例如也可以寫成如下形式:System.out.println("Hello,World!");//顯示Hello,World!Java語言中還有一種注釋是以“/*”開始以“*/”結束,稱為多行注釋。例如:/*這是多行注釋,這是我的第一個Java程序*/(2)類前面曾經說到,Java程序的基本單元為類。在HelloWorld源程序中第一行“publicclassHelloWorld”與第2行和最后一行的一對大括號共同組成的一個整體,即:publicclassHelloWorld{}
這就是一個類,HelloWorld即為類名,“public”和“static”是關鍵詞,用來說明類和方法。源程序文件在保存時文件名一定與類名一致。本課件是可編輯的正常PPT課件(3)方法方法是類的功能,方法也有名字,方法的主體是用一對大括號“{}”括起來。例如在HelloWorld源程序中包含了main()方法:publicstaticvoidmain(String[]args){System.out.println("Hello,World!");}main為方法名稱,“public”、“static”和“void”是用來修飾方法的,main后面的圓括號“()”中是方法的參數,即使沒有參數,“()”也不能少。大括號內的內容即為方法的主體。需要特別強調,在Java語言中,Java的源程序是以類為基本單位進行編輯,類是Java程序中的基本單位。方法必須在類中,不能獨立于類而存在,方法必須屬于某一個類。main()方法是Java程序的入口,是所有Java程序執(zhí)行的起點。如果直接運行一個沒有main()方法的程序時,Java會因為找不到main()方法而提示一個錯誤。本課件是可編輯的正常PPT課件3.使用EditPlus編寫Java程序EditPlus是一款功能強大、且小巧的可處理文本、HTML和程序語言的Windows編輯器,它支持顏色標記、HTML標記,同時也支持C、C++、Perl、Java,是一個非常棒的編輯軟件。在官網中可以下載EditPlus進行安裝。啟動EditPlus后,可以通過“文件”→“新建文件”→“Java”,創(chuàng)建一個Java源程序,如圖1-5所示。圖1-5EditPlus編輯器本課件是可編輯的正常PPT課件
將HelloWorld源文件輸入到EditPlus編輯器中,保存源文件到“d:\java”目錄中,文件名與類名HelloWorld一致?;氐綀D1-5中,編譯、運行Java程序。將Java源文件編譯成字節(jié)碼文件的命令是“Javac”,在編譯源程序時,必須連同源程序的擴展名一起寫。運行Java程序的命令是“Java”,在運行程序時,可以省略擴展名。(1.2Java程序編輯與運行視頻)運行結果如圖1-6所示。圖1-6第一個java程序的運行結果本課件是可編輯的正常PPT課件五、在Linux中編寫Java程序1.配置Java編譯和運行環(huán)境Java程序可以在不同的操作系統(tǒng)環(huán)境下編輯運行,具有很強的跨平臺功能,Java字節(jié)碼文件,幾乎不需要作修改,就可以運行。國產的大多數操作系統(tǒng)是基于開源的Linux內核進行開發(fā),Java程序同樣可以在Linux操作系統(tǒng)下編輯和運行,本文所使用的操作系統(tǒng)是CentOS7。除非有特殊說明,本書默認情況下所有程序都是在windows環(huán)境中運行。啟動CentOS7系統(tǒng)后,為了便于刪除和安裝相應的應用軟件,在命令操作終端使用suroot命令取得管理員操作權限。使用java-version命令查看系統(tǒng)中默認的Java版本信息和安裝包,如圖1-7所示。(請查看視頻1.3Linux下刪除自帶的JDK工作JDK21)圖1-7Linux環(huán)境下查看Java運行環(huán)境本課件是可編輯的正常PPT課件
要使用最新Java開發(fā)環(huán)境,可以將系統(tǒng)默認的安裝包刪除,從官方網站下載Linux操作系統(tǒng)對應的安裝軟件,本章的安裝軟件為jdk-21_linux-x64_bin.rpm。如圖1-8所示。下載以后,可以將Linux自帶的JDK工具刪除,如圖1-9所示。圖1-8從官網下載Linux環(huán)境下的JDK開發(fā)工具本課件是可編輯的正常PPT課件圖1-9刪除Linux系統(tǒng)中默認的Java安裝信息圖1-10安裝Java查看安裝信息
圖1-10所示的信息,表示Java安裝完成。要在Linux中編譯、運行Java程序,還需要對環(huán)境進行配置。環(huán)境配置的過程。(請查看視頻1.4Linux下安裝和配置java運行環(huán)境JDK21)本課件是可編輯的正常PPT課件2.編寫和運行Java程序
使用Linux自帶編輯器即可編寫Java源程序,在命令行下輸入vi命令,即可打開編輯器,如圖1-11所示。(請查看視頻1.5Linux下編寫和運行Java程序JDK21)a.編輯命令
b.編輯源文件圖1-11編輯并運行Java程序
編輯好源文件以后,將源文件保存在桌面,以便于程序運行。編譯、運行源文件的命令同windows操作系統(tǒng)中的用法相同。本課件是可編輯的正常PPT課件【課后實踐】1.Java有哪些特點?2.Java應用程序主要包括哪些部分?3.下載相應JDK安裝包,分別在Windows和Linux中配置環(huán)境變量。4.分別在Windows和Linux編寫你的第一個Java程序,顯示“中國夢,我的夢”。(請查看視頻1.6解決JDK21中文編碼格式問題)5.拓展練習:學習華為HarmoneyOS操作系統(tǒng)的功能,并總結系統(tǒng)的特點。本課件是可編輯的正常PPT課件謝謝本課件是可編輯的正常PPT課件任務二利用Java解決簡單問題本課件是可編輯的正常PPT課件【任務描述】小龍經常到學校的圖書館查找學習書籍,想要編寫一個Java程序,在已經保存好的圖書目錄中,查找自己想要的書籍名稱,他遇到的第一個問題就是標識符怎么用、如何讓程序按照自己的意圖來運行。本課件是可編輯的正常PPT課件【職業(yè)能力與目標】1.能夠自己定義符合規(guī)范的標識符;2.能夠定義適合Java程序的基本數據類型;3.能夠合理地使用運算符;4.能夠通過邏輯控制語句編寫符合需求的程序;5.能夠使用數組存儲數據;6.初步具備程序設計的思維;7.培養(yǎng)家國情懷。本課件是可編輯的正常PPT課件【知識儲備】一、標識符的使用
在Java語言中,標識符用于表示常量、變量、方法、類或接口的名稱。Java語言對字母的大小寫敏感,即嚴格區(qū)分大小寫,但沒有長度的限制。在Java語言中,標識符是以字母、下劃線、美元符開始的一個字符序列,后面可以跟字母、數字、下劃線、美元符。下面的標識符是合法的:X_1,_pass,$address;而8name,name_*3則為非法的標識符。1.關鍵字Java關鍵字也稱為保留字,是Java語言自身使用的標識符,通常具有特定的含義,因此不能將關鍵字作為常量、變量、類等的名稱。Java語言中的關鍵字通常用英文小寫字母表示,如public、int、main等,常見的一些關鍵字如表2-1所示。本課件是可編輯的正常PPT課件2.用戶自定義標識符所謂用戶自定義標識符是指用戶根據需要自己定義的標識符。一般用來給變量、數組、方法、類等命名。用戶自定義標識符如果與關鍵字相同,則編譯時會出錯。例如,在聲明變量時,給變量命名為byName。3.標識符的命名規(guī)范Java語言中的標識符是由字母、數字和特殊符號($、_)組成,沒有長度限制,必須以字母、下劃線、$符號開頭,注意嚴格區(qū)分大小寫,即標識符中大小寫字母會認為是不同的標識符,如AA、Aa是兩個不同的合法的標識符。除此之外,在程序中對標識符的命名通常會有以下的約定:(1)常量的名字用大寫字母,使用下劃線對常量名單詞進行分隔,如ONE_HUNDREND。(2)變量使用混合大小寫的方式,即首字符為小寫,后面的字首字母用大寫。如byName。(3)類名的每個字首字母大寫,可含有大小寫。如Animal。(4)接口是一種特殊的類,接口名的命名規(guī)則和類名相同。
(5)方法名的首字母小寫,其余各字的首字母使用大寫,最好不要使用下劃線,如showAll。本課件是可編輯的正常PPT課件二、認識數據類型
在計算機程序中,數據描述是通過數據類型來完成的。數據類型決定了數據在內存中的存放形式、占用內存空間的大小。在Java語言中,數據類型分為基本數據類型和引用數據類型,如圖2-1所示。本課件是可編輯的正常PPT課件1.Java的基本數據類型
基本數據類型通常代表一個單一的值,也稱為簡單數據類型,由Java語言定義,是創(chuàng)建其他數據類型的基礎。Java語言定義了八種基本數據類型,見表2-2。2.Java的引用數據類型
在Java語言中,引用數據類型也稱為復合數據類型,包括數組、類、接口與字符串。引用數據類型的變量中存儲的不是數據本身,而是數據在內存中的存放地址。由于引用數據類型的知識與面向對象密切相關,后續(xù)的內容中進行闡述。本課件是可編輯的正常PPT課件三、常量與變量的使用在Java語言中,根據數據表現形式有兩種情況:在程序運行過程中其值保持不變的,稱為常量;而在程序的運行過程中可以根據用戶的需求進行改變的,稱為變量。1.常量對應于數據類型,Java語言中的常量包含下列常量:整型常量、浮點型常量、布爾型常量、字符型常量和字符串常量。(1)整型常量整型常量是指不含小數的整數值,如12、20等,這些是十進制整數。在書寫時,除了采用十進制以外,還經常采用十六進制、八進制形式。八進制常量以0開頭,后面跟多個0~7之間的數字,如0123、067;十六進制常量以0x開頭,后面跟多個0~9之間的數字或者A~F之間的大寫字母或者a~f之間的小字字母,如0x123、0xA80。(2)浮點常量浮點數是指帶有小數部分的十進制數,有兩種表示形式:①標準方式,即十進制數形式,是在一個整數后加上小數點,再添加上小數部分,如123.0、123.5。②科學計數法,以指數冪的形式來表示,如123e4、2.156E-3,其中e或者E之前必須有數字,且e或者E后面的數字必須是整數。在Java語言中,浮點常量默認是雙精度浮點數(double型),在一個浮點常量后面加上f或者F后綴,就是單精度浮點數,如123.0f;加上d或者D后綴,就是雙精度浮點數。本課件是可編輯的正常PPT課件(3)布爾常量布爾常量只有兩個值:true和false,分別代表了真和假。這兩個值只能賦給聲明為boolean類型的變量,在書寫的時候,直接使用true和false這兩個英文單詞,不需要加引號。(4)字符常量字符常量是由一對單引號括起來的單個字符。所有可見的ASCII字符直接書寫至單引號內,如‘a’、‘Y’、‘4’。而那些不能直接從鍵盤輸入的字符,可通過轉義符號來表示,表2-3列出了轉義符號。本課件是可編輯的正常PPT課件(5)字符串常量字符串常量是用雙引號括起來的字符序列,如“student”、“1234”。需要注意的是,當字符串常量只包含一個字符時,不要和字符常量混淆了,如‘B’是字符常量,而“B”是字符串常量。字符串常量中的轉義符號、八進制和十六進制表示與字符常量表示是完全一樣的。如字符串“ni\nhao”,中間加入了一個換行符,輸出的時候,這兩個詞分別顯示在兩行上。2.變量變量是指在程序運行過程中其值可以改變的量。變量在程序設計中是必不可少的部分,也是在程序中使用頻率最高的對象。變量可以保存程序運行過程的中間值,也可以在語句之間傳遞數據。(1)變量的聲明在Java語言中,變量必須先聲明才能使用。聲明變量的一般格式為:數據類型變量名[,變量名][=初值];說明:①
變量名應符合標識符命名規(guī)則。②
聲明同一類型的多個變量時,可使用逗號分隔各變量。③
可以在聲明變量的同時給變量賦初始值,賦的初始值必須與變量類型一致。下面代碼的功能是聲明不同類型的變量。intx,y,z=2;//定義三個int型變量x、y、z,并初始化變量zinta=1,b=2;//定義兩個int型變量a、b,并初始化變量a、bcharc=’A’;//定義一個char型變量c,并對其進行初始化doublepi=3.1415926;//定義一個double型變量pi本課件是可編輯的正常PPT課件(2)變量的初始化變量的初始化即為給變量賦初始值。在聲明變量時,可以直接賦初始值給變量;也可以在聲明變量時只定義變量的數據類型、變量的名稱,不賦初始值,在程序中用到該變量時再根據需要進行初始化。方式1:在聲明變量的同時給變量賦初始值。例:intx1=10,x2=20;charch='c';方式2:先聲明變量,再使用賦值語句。例:floatr,pi;//聲明變量pi=3.1416f;//使用賦值語句對變量賦值r=3.5f;本課件是可編輯的正常PPT課件四、運算符和表達式的使用Java語言提供了豐富的運算符,可以進行各種不同的運算。運算符代表著某種特定的運算指令,可以對由運算符連接的操作數進行相應的運算。在Java語言中,與類無關的常用運算符有賦值運算符、算術運算符、關系運算符、邏輯運算符和位運算符等。按連接操作數的個數的多少來分,運算符分為單目運算符、雙目運算符和三目運算符。表達式是指用括號、運算符將操作數連接起來得到的式子。表達式按照運算規(guī)則計算得到一個結果,稱為表達式的值。1.基本運算符(1)算術運算符算術運算符主要是實現數學上的算術運算,如:加(+)、減(-)、乘(*)、除(/)和取余(%)運算,支持整數型數據和浮點型數據的運算。Java中的算術運算符見表2-4。本課件是可編輯的正常PPT課件需要說明的幾點:①除法(/)運算,當整數型數據在進行除法運算的時候,無法是否能整除,結果都將是一個整數,注意,如果不能整除,只是簡單地將小數部分去掉,而不是四舍五入。例:11/3結果為3。②取余(%)運算,通常兩個運算對象是整型數據,其實質為求余數運算。例:11%3結果為2。③自增(++)運算,只能用于變量,實現變量值完成自動加1的運算。例:inti=0;i++;④自減(--)運算,只能用于變量,實現變量值完成自動減1的運算。例:intj=10;j--;⑤單獨使用的++、--運算符,只是實現簡單的變量自增和自減運算,但比傳統(tǒng)寫法的加減運算速度要快很多,常用于循環(huán)結構中來控制循環(huán)的次數。(2)算術表達式由算術運算符將操作數連接起來得到的式子,稱為算術表達式。算術表達式運算的結果通常是個數值類型的數據。例:8+10%3。本課件是可編輯的正常PPT課件(3)賦值運算符賦值運算符(=)的作用是將賦值號右邊的表達式的值賦給左邊相應類型的變量或對象。例:inti=20;//將數據20賦值給變量ilongk=I;//將變量i的值賦值給變量k需要說明的是:①賦值運算符的結合性是從右到左。如下面的代碼中,首先計算表達式5+20,然后再將計算結果賦值給變量i。inti;i=5+20;
②賦值運算符可以與算術運算符進行組合,見表2-5。本課件是可編輯的正常PPT課件2.三目運算符在Java語言中包含有一個特殊的三目運算符,即條件運算符。條件運算符由“?”、“:”兩個運算符組成,它要求有三個運算對象。由條件運算符構成的表達式稱為條件表達式,其格式如下:條件表達式?結果1:結果2先計算條件表達式的值,如果為true,則表達式取“結果1”的值;反之,則取“結果2”的值。如果有inta=10,b=20,表達式:a>b?50:100的值為50。3.關系運算符(1)關系運算符關系運算符主要實現數據的比較運算,比如大于、等于、小于等等。Java語言中的關系運算符見表2-6。本課件是可編輯的正常PPT課件(2)關系表達式
由關系運算符將兩個表達式連接起來的式子叫關系表達式。關系表達式的運算結果為布爾值true或false。關系表達式通??勺鳛榉种дZ句或者循環(huán)語句中的控制條件。4.邏輯運算符(1)邏輯運算符
邏輯運算符用來實現邏輯判斷功能,通常用于判斷兩個關系表達式的結果或邏輯值,例如,判斷5>3和10<20是否同時成立。Java語言中的邏輯運算符,見表2-7。說明:①邏輯與(&&)連接兩個表達式,當運算時,只要判斷出左邊的表達式為假,則不需要再計算右邊的表達式,即可得出結論。②邏輯與(||)連接兩個表達式,當運算時,只要判斷出左邊的表達式為真,則不需要再計算右邊的表達式,即可得出結論。(2)邏輯表達式由邏輯運算符將關系表達式連接起來構成的式子,稱為邏輯表達式。Java語言中,邏輯表達式的運算結果為布爾值true或者flase。例如:邏輯表達式!((10>20)&&(5<8)),其結果為true。本課件是可編輯的正常PPT課件五、程序邏輯控制的使用由于程序最基本的單位是語句,因此,程序運行的過程就是執(zhí)行語句的過程。在程序設計中有三種最基本的結構:順序結構、分支結構和循環(huán)結構。在順序結構中,語句的執(zhí)行是按照書寫順序逐條執(zhí)行,而分支結構、循環(huán)結構會依據條件進行跳轉或者反復執(zhí)行某些操作。1.順序結構順序結構指的是計算機按照順序逐條執(zhí)行程序中的語句塊。假設有一組程序的語句如下所示:x=2;y=3;z=x+y;System.out.println(z);在執(zhí)行這段程序代碼塊時,計算機會按照先后順序逐條執(zhí)行,這樣的程序結構稱為順序結構。本課件是可編輯的正常PPT課件【解決問題1】編寫一個程序,從鍵盤上輸入圓的半徑,計算這個圓的面積。importjava.util.*;publicclassCircleDemo{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);//定義一個輸入對象System.out.println(“請輸入圓的半徑值:”);//輸入提示信息doubler=Double.valueOf(input.next());//從鍵盤輸入一個數,轉換成雙精度類型doublePI=3.14;doubles=PI*r*r;
System.out.println(“圓的面積為:”+s);//輸入圓的面積}}該程序在運行時,會按照順序從上到下執(zhí)行每一條語句。本課件是可編輯的正常PPT課件2.分支結構通過判斷條件是否滿足要求,可以控制程序的執(zhí)行流程,讓計算機按照程序員的意圖來執(zhí)行任務。比如,在兩個數中找出其中的較大值,需要通過對這兩個數進行比較,才能夠得出結果。進行條件判斷的關鍵字是if。(1)簡單if語句格式:if(條件表達式){語句塊;}功能:當程序執(zhí)行至if語句,先計算條件表達式的值,如果為true,則執(zhí)行語句塊,然后執(zhí)行if語句的后繼語句;如果條件表達式的值為false,則直接執(zhí)行if語句的后繼語句。如果if語句后面的語句塊只有一條語句,可以將“{}”省略,通常情況下建議保留。執(zhí)行過程如圖2-2(a)所示。本課件是可編輯的正常PPT課件(2)if-else語句格式:if(條件表達式){語句塊1;
}else{
語句塊2;
}功能:當程序執(zhí)行至if語句,先計算條件表達式的值,如果為true,則執(zhí)行語句塊1,然后執(zhí)行if語句的后繼語句;如果條件表達式的值為false,則執(zhí)行語句塊2,然后再執(zhí)行if語句的后繼語句。執(zhí)行過程如圖2-2(b)所示。本課件是可編輯的正常PPT課件【解決問題2】用兩種條件控制語句分別輸出最大值。publicclassCompared{ publicstaticvoidmain(String[]args){ intx=10,y=20;//使用if輸出較大值if(x>y){System.out.println("較大的數是:"+x); }if(x<y){System.out.println("較大的數是:"+y); }//使用if-else輸出較大值 if(x>y){ System.out.println("較大的數是:"+x); }else{ System.out.println("較大的數是:"+y); } }}本課件是可編輯的正常PPT課件(3)if-elseif多分支選擇語句格式:if(條件表達式1){語句塊1;
}elseif(條件表達式2){
語句塊2;
}…elseif(條件表達式n){語句塊n;}功能:對事件的多種情況做出判斷并進行處理。需要注意的是if與else的匹配,else總是與它最近的前面的未配的if進行配對。本課件是可編輯的正常PPT課件(4)switch-case多分支語句在Java語言中,處理多分支情況時使用if-else-if結構,有時嵌套的if語句層次多,程序龐大不易閱讀與理解。使用switch-case語句可以直接實現多分支的情況。switch-case語句的格式:switch(表達式){case常量值1:{語句塊1}break;case常量值2:{語句塊2}break;……case常量值n:{語句塊n}break;[default:{語句塊n+1}]}功能:首先計算表達式的值,如果該值與常量值1相同,則執(zhí)行語句塊1中的語句,執(zhí)行break語句跳出switch語句執(zhí)行后繼語句;如果表達式的值與常量值1不相同,則與常量值2進行比較,如此類推;如果表達式的值與所有常量值都不相同,如果有default子句,則執(zhí)行default中的語句塊,如果沒有default子句,則什么也不執(zhí)行。需要特別強調的是,如果在語句塊后面沒有break關鍵字,程序會直接執(zhí)行它之后的case語句塊,而不需要進行case條件的匹配。最新版本的JDK支持在case后面使用字符串。本課件是可編輯的正常PPT課件【解決問題3】根據月份輸出相應的季節(jié),例如,如果月份是“3”,則顯示“春季”。解題思路:用switch語句處理多分支問題時,首先要確定switch后的測試表達式。因為每個季節(jié)包括有3個月份,例如1-3月均是“春季”,可以多個case共用一組執(zhí)行語句。publicclassSeason{ publicstaticvoidmain(String[]arg){ intmonth; month=4; switch(month){ case1: case2: case3:System.out.println("春季");break; case4: case5: case6:System.out.println("夏季");break; case7: case8: case9:System.out.println("秋季");break; case10: case11: case12:System.out.println("冬季");break;
default:System.out.println("輸入的月份有錯!"); } }}本課件是可編輯的正常PPT課件3.循環(huán)結構循環(huán)結構的作用是在滿足給定的條件下,反復執(zhí)行某段程序,直到條件不成立為止。這段反復執(zhí)行的代碼稱為循環(huán)體,給定的條件稱為循環(huán)條件。當執(zhí)行循環(huán)結構程序時,在執(zhí)行若干次循環(huán)體后,循環(huán)條件應變?yōu)椴怀闪ⅲ瑥亩Y束循環(huán),否則循環(huán)將無限次執(zhí)行下去,形成死循環(huán)。循環(huán)結構是程序中非常重要的一種結構,由循環(huán)語句來實現。Java語言的循環(huán)語句常用的有:while語句、do-while和for語句。(1)while語句while循環(huán)屬于“當”型循環(huán),即首先判定循環(huán)條件,當循環(huán)條件成立,則執(zhí)行循環(huán)體,當循環(huán)條件不成立,則循環(huán)結束。while語句的語法格式:while(條件表達式){循環(huán)體}while循環(huán)的執(zhí)行過程:①計算條件表達式的值,若為true,則轉(2),否則結束循環(huán),執(zhí)行while語句的后繼語句;②執(zhí)行循環(huán)體,轉(1)。while語句的執(zhí)行過程如圖2-3(a)所示。本課件是可編輯的正常PPT課件(2)do-while語句dowhile循環(huán)屬于直到型循環(huán),即先執(zhí)行循環(huán)體,然后判斷條件表達式的值,如果為真,則再次執(zhí)行循環(huán)體;如果條件表達式的值為假,則循環(huán)結束,執(zhí)行do-while語句的后繼語句。do-while語句執(zhí)行過程如圖2-3(b)所示。do-while語句是先執(zhí)行循環(huán)體再判斷條件,會至少執(zhí)行一次循環(huán)體,這就有可能會有一些危險的數據不經檢測就會被執(zhí)行,因此在實際程序開發(fā)中,不經常使用do-while語句,而使用while語句或者for語句來實現循環(huán)結構。本課件是可編輯的正常PPT課件(3)for語句在Java語言中,for語句是最常用最靈活的循環(huán)結構。for語句通常用于循環(huán)次數已知的情況下。for語句的一般格式為:for(表達式1;表達式2;表達式3){循環(huán)體}for語句的執(zhí)行過程:①程序執(zhí)行到for語句,先計算表達式1;②計算表達式2,如果其值為true,則執(zhí)行for語句中的循環(huán)體;如果其值為false,則轉到第(4)步去執(zhí)行;③計算表達式3,轉到第(2)步;④循環(huán)結束,執(zhí)行for語句的后繼語句。本課件是可編輯的正常PPT課件【解決問題4】使用三種循環(huán)控制語句求1+2+3+……+100的和。解題思路:首先定義兩個整型變量i和sum,變量i代表累加數,變量sum用于存放累加和;變量i初始值為1,表示從1開始進行累加,變量sum初始值為0;使用循環(huán)結反復地執(zhí)行累加,每做一次循環(huán),將變量i累加到變量sum中,加完后使得i自增1,形成下一個加數;當執(zhí)行完一次循環(huán)后,判斷變量i的值是否小于等于100,如果是,繼續(xù)執(zhí)行下一次循環(huán),如果大于100,則中止整個循環(huán);顯示變量sum的值,即累加總和。publicclassSum{ publicstaticvoidmain(String[]args) { inti=1,sum=0; //使用while循環(huán) while(i<=100) { sum+=i; i++; } System.out.println("使用while循環(huán)求1~100的和:"+sum); sum=0;i=1;//使用do-while循環(huán) do{ sum+=i; i++; }while(i<=100); System.out.println("使用do-while循環(huán)求1~100的和:"+sum); sum=0;//使用for循環(huán) for(i=1;i<=100;i++){ sum+=i; } System.out.println("使用for循環(huán)求1~100的和:"+sum);
}}本課件是可編輯的正常PPT課件(4)循環(huán)的嵌套如果在一個循環(huán)語句的循環(huán)體中又出現另一個循環(huán)語句,稱之為循環(huán)嵌套。有while語句循環(huán)嵌套、for語句循環(huán)嵌套,也可以混合嵌套。當程序執(zhí)行到嵌套循環(huán)時,首先判斷外層循環(huán)的循環(huán)條件,如果允許,則開始執(zhí)行外層循環(huán)的循環(huán)體,而內層循環(huán)作為外層循環(huán)的循環(huán)體來執(zhí)行。當內層循環(huán)執(zhí)行結束并且外層循環(huán)的循環(huán)體執(zhí)行結束,則再次計算外層循環(huán)的循環(huán)條件,決定是否再次開始執(zhí)行外層循環(huán)的循體?!窘鉀Q問題5】輸出九九乘法表。解題思路:在輸出的結果中共有9行,而每行輸出內容數目和所在的行一致,因此用外循環(huán)實現行的轉換,而內循環(huán)實現輸出一行中的內容??稍谕庋h(huán)中定義一個整型變量i用于表示行數,i的值從1遞增至9,依次對應第1行至第9行;在內循環(huán)中定義一個整型變量j,讓j的值從1遞增至當前行號i。本課件是可編輯的正常PPT課件publicclassJiujiu{ publicstaticvoidmain(String[]arg){ inti,j; for(i=1;i<=9;i++){ for(j=1;j<=i;j++) System.out.print(i+"*"+j+"="+(i*j)+"\t");
System.out.println(); } }}本課件是可編輯的正常PPT課件(5)循環(huán)控制語句Java語言提供兩種常用循環(huán)控制語句:break和continue,這些語句在特定的情況下可以改變程序的執(zhí)行流程。①break語句在某些情況下,我們需要在滿足某種條件時強行終止循環(huán),可以使用break語句來實現這個功能。在Java語言中,break不僅可以在switch語句中終止某一種情形,也可以在循環(huán)結構中用于結束循環(huán)。break語句通常結合if語句使用。②continue語句continue語句只能用于循環(huán)結構中,其功能是終止本輪循環(huán),進入下一輪循環(huán)。需要注意的是,continue語句通常結合if語句使用。本課件是可編輯的正常PPT課件六、數組的初步使用在實際應用中,經常需要處理大批數據類型相同的數據,Java語言提供的數組可以很方便地表示這些數據。所謂數組是指具有相同數據類型的數據按順序存儲在一起組成的有序集合。數組有一維數組和二維數組,可以對數組里面的數據進行排序和查找。數組屬于引用數據類型,數組必須經過實例化以后才能夠使用。數組的名稱實際上是存儲數組元素的存儲空間的首地址。本課件是可編輯的正常PPT課件1.一維數組的定義與使用(1)一維數組的聲明一維數組的聲明格式:數據類型數組名[];或數據類型[]數組名;說明:“數據類型”可以是Java語言中任意的數據類型;“數組名”是一個標識符,需符合標識符命名規(guī)則;[]表明此數組是一個一維數組,[]沒有指定數組長度,此時不能訪問數組內任何元素。例:charnames[];int[]num;上面的舉例中聲明了一個類型為字符型的一維數組names,一個類型為int型的一維數組num,因為沒有實例化數組對象,所以數組names和num還不能使用。(2)一維數組的實例化聲明數組后,還需要實例化數組,也就是為數組分配內存空間。一維數組的創(chuàng)建格式:數組名[]=new數據類型[size]其中,new關鍵字用于給數組分配內存空間;size用于定義數組的長度。例:intnum[];num=newint[10];上面的舉例中先聲明一個名稱為num的整型數組,然后創(chuàng)建num數組對象,數組num的長度為10。本課件是可編輯的正常PPT課件(3)同時聲明與創(chuàng)建數組也可以在聲明數組時,同時創(chuàng)建數組。聲明與創(chuàng)建數組的格式:數據類型數組名[]=new數組類型[size]例:intnum[]=newint[10];在上面的舉例中聲明了一個名稱為num的整型數組,并分配了10個整型數據所占據的內存空間。(4)數組元素的表示一維數組的元素由下標唯一確定,格式如下:數組變量[下標]其中,[下標]是表達式,用于確定數組元素在數組中的位置,其數據類型為整型,取值范圍為0~數組長度-1。例如,在上面的例題中,在聲明了一個名稱為num的整型數組并分配了10個整型數據所占據的內存空間后,可使用數組num的元素,順序依次為num[0]、num[1]、num[2]……num[9]。注意,數組元素的下標從0開始。(5)數組元素的初始化數組元素的初始化指為數組元素賦初始值,聲明并創(chuàng)建數組后,可直接給數組元素賦值,方法與變量賦值相同。例:intnum[]=newint[10];num[1]=10;num[2]=20;num[3]=50;本課件是可編輯的正常PPT課件【解決問題6】一維數組的使用:逆序顯示10,9,8,……2,1解題思路:分別定義一個數組arr、一個整型變量i,在第一個循環(huán)語句里,變量i的值從0遞增至9,同時將變量i加1以后再賦值給arr數組對應的數組元素,然后在第二個循環(huán)語句里,變量i的值從9遞減至0,逆序輸出arr數組各個元素值。publicclassArray1{ publicstaticvoidmain(String[]arg){ intarr[]; arr=newint[10]; for(inti=0;i<10;i++) arr[i]=i+1; for(inti=9;i>=0;i--) System.out.println(arr[i]);
}}本課件是可編輯的正常PPT課件2.二維數組的定義與使用一維數組中的每個元素帶有一個下標。若數組中每一個元素帶有兩個下標,這樣的數組稱為二維數組。(1)二維數組的定義二維數組可以看作是多個相同類型的一維數組。二維數組的一般定義格式如下:數據類型數組名[][]或數據類型[][]數組名例:floatattr[3][4]二維數組聲明和申請存儲空間可以同時進行。例:inta[][]=newint[2][3];(2)二維數組初始化可以在聲明數組時對其進行初始化。例如:int[][]attr=newint[][]{{10,2},{-5,12},{4,9}};如果聲明一個二維數組但沒有對其進行初始化,則必須使用new運算符將數組分配給此變量。例如:int[][]attr;attr=newint[][]{{10,2},{-5,12},{4,9}};(3)二維數組元素二維數組元素格式如下:二維數組名[下標1][下標2]其中,[下標1]和[下標2]分別指數組元素第一維、第二維的下標。本課件是可編輯的正常PPT課件【解決問題7】定義一個3行4列的二維數組,賦初始值,并使用循環(huán)打印數組中每個元素的值。publicclassArray2{ publicstaticvoidmain(String[]arg){ intarr2[][]=newint[3][4]; inti,j; for(i=0;i<3;i++){ for(j=0;j<4;j++) { arr2[i][j]=i+j; }} //輸出數組每個元素 for(i=0;i<3;i++) { for(j=0;j<4;j++) { System.out.print(arr2[i][j]+"\t");
} System.out.println(); } }}本課件是可編輯的正常PPT課件【任務實施】七、綜合實踐---編寫一個程序查找圖書名稱【解決問題8】圖書信息查找。分析:(1)需要將已有的圖書信息保存到一個數組對象中;(2)從鍵盤上輸入信息;(3)將輸入的信息與數組的元素逐一進行比較,如果找到,顯示成功信息,并終止;(4)如果所有元素都已經遍歷,沒有找到,顯示查找不成功的信息。本課件是可編輯的正常PPT課件importjava.util.*;publicclassQuerryBook{ publicstaticvoidmain(String[]args) { Scannerinput=newScanner(System.in);//創(chuàng)建一個對象,用于從鍵盤輸入信息 System.out.println("請輸入你想查詢的書:");//在屏幕上打印提示信息 booleanflag=false;//設置一個標志變量,用于記錄是否找到想要的信息 StringbookName=input.next(); //將圖書名稱保存到數組對象中
StringnameList[]={"習近平法治思想學習綱要","習近平的七年知青歲月","中國共產黨歷史學習百問","科學與忠誠:錢學森的人生答卷","可愛的中國","星火燎原","誰是最可愛的人"}; for(inti=0;i<nameList.length;i++){//遍歷數組對象的元素 if(nameList[i].equals(bookName)){//如果找到想要的書,顯示成功的信息,并將標志變量設定為true,同時終止查找 System.out.println("找到你想要的書..."); flag=true; break; } } if(!flag){//如果沒有找到,則顯示相關提示信息 System.out.println("沒有找到你想要的書..."); } }}本課件是可編輯的正常PPT課件【課后實踐】1.編寫程序:給出一個整數,判斷此數是奇數還是偶數。2.編寫程序:計算n的階乘(n!)。3.編寫程序:顯示學生成績等級。如果學生成績在60分以下,則顯示“不及格”;如果在60分~69分,則顯示“及格”;如果在70分~79分,則顯示“中等”;如果在80分~89分,則顯示“良好”;如果在90分~100分(含100分),則顯示“優(yōu)秀”。4.編寫程序:求出100以內的素數。5.編寫程序:利用冒泡排序法,對一個數組進行升序排列。6.編寫程序:電影信息查詢,顯示相應的查找信息。電影信息庫包含“建黨偉業(yè)”“建國偉業(yè)”“建軍大業(yè)”“厲害了,我的國”“長征”“血戰(zhàn)湘江”“永不消失的電波”。本課件是可編輯的正常PPT課件謝謝本課件是可編輯的正常PPT課件任務三類與對象的使用本課件是可編輯的正常PPT課件【任務描述】圖書館中的圖書包含有很多信息,其中比較重要的信息包含有書名、價格、出版社等,如果只是用基本數據類型來記錄這一種物品,就不能夠完整地反映這個物品的真實情況。小龍想要按照生活中的實際對象,用Java程序實現對圖書對象的添加、刪除、查找功能。本課件是可編輯的正常PPT課件【職業(yè)能力與目標】1.初步具備面向對象程序設計的基本思路;2.掌握面向對象程序設計的基本要素和特性;3.能夠編寫符合要求的類,并利用類創(chuàng)建對象;;4.理解對象在內存中的存儲,能夠通過對象合理引用類的成員;;5.掌握方法的定義格式、參數的傳遞,以及方法的重載;6.掌握構造方法的定義格式及構造方法的使用;7.理解匿名對象的定義與使用;8.理解單例設計模式;9.能夠熟練使用String對象;10.具備調試程序的能力,能夠分析問題、解決問題;11.增強對民族自主品牌自豪感,有擔當意識;12.踐行社會主義核心價值觀,具有深厚的愛國情懷。本課件是可編輯的正常PPT課件【知識儲備】一、什么是面向對象程序設計
面向對象是從現實世界中客觀存在的事物出發(fā)來構造軟件系統(tǒng),并在系統(tǒng)構造中盡可能運用人類的自然思維方式,強調直接以問題領域中的事物為中心來思考問題、認識問題,依據這些事物的本質特點,把它們抽象地表示為系統(tǒng)中的對象,以這些對象作為系統(tǒng)的基本構成單位。這樣可以使系統(tǒng)直接地映射問題領域,保持問題域中事物及其相互關系的本來面貌。
面向對象的基本思想認為世界是由各種各樣具有自己功能和內部狀態(tài)的對象組成,不同對象之間的相互作用和通信構成了完整的現實世界。因此,軟件系統(tǒng)也是由一些具有內部狀態(tài)和功能的對象組成,對象之間通過合作(相互間的功能調用)來實現系統(tǒng)功能。換句話說,在面向對象程序設計中,萬物皆對象。本課件是可編輯的正常PPT課件1.認識面向對象程序設計的要素面向對象程序設計的三大要素是:對象、類、繼承。(1)對象對象是用來描述客觀事物的一個實體,它是構成系統(tǒng)的一個基本單元。比如復興號動車組、和諧號動車組,復興號、和諧號這些都是現實生活中存在的具體事物,在面向對象程序設計中,復興號、和諧號就可以用對象來描述。一個對象具有一組屬性和行為,屬性用來描述對象的狀態(tài),行為用來描述對象的功能。復興號是動車的品牌,它還擁有其它的特性,比如車次號、速度、始發(fā)站、終到站等,這些都稱為屬性,用來描述動車的狀態(tài);動車能夠行駛,這是它的功能,屬于對象的行為。(2)類類指的是具有相同屬性和行為的同一類對象,是這一類對象的抽象。因而,類是抽象的,對象是具體的。類是生成對象的模板,對象是類的實例。在進行面向對象程序設計時,首先要尋找對象,把對象進行歸類,抽取出相同的屬性和行為,定義成為類。例如,復興號動車組是動車,和諧號動車組也是動車,這兩個對象屬于同一類事物,對它們的品牌、車次號、速度、始發(fā)站、終到站的共同屬性進行抽取,定義成為這一類事物的共同屬性;對它們的駕駛功能進行抽取,定義成為這一類事物的行為。由此,就生成了這類對象共同的類。類中的屬性和行為統(tǒng)一稱為類的成員。本課件是可編輯的正常PPT課件類的屬性一般為私有成員,只能在類的內部使用,類的行為一般是公有成員,可以在類的外部調用。類可以使用UML圖進行描述,如圖3-1所示。UML圖分為三部分,第一部分是類名,第二部分是屬性,第三部分是行為。其中公有成員使用“+”表示,私有成員使用“-”表示。本課件是可編輯的正常PPT課件(3)繼承繼承描述的是類與類之間的關系。有了繼承關系以后,使得一個類可以擁有另一個類的屬性和行為,并且可以由一個類派生出很多的子類,形成類的層次關系。這是現實世界中事物的分類問題在計算機中的表現形式。繼承使軟件復用變得簡單、易行,縮短程序的開發(fā)周期。類的繼承關系如圖3-2所示。本課件是可編輯的正常PPT課件2.認識面向對象程序設計的特性面向對象程序設計有三大特性:封裝性、繼承性、多態(tài)性。(1)封裝性封裝性是保護類的內部定義結構的安全機制。比如電腦,它的主機是用主機箱來進行封裝的,可以保護內部組件的安全。同理,定義一個類以后,類的屬性值只能在類的內部進行修改,以保證數據不被非法修改,產生安全隱患。另外對于類的實現,需要盡可能隱藏它的內部細節(jié),與外部的聯系只能通過外部接口實現,以保護程序不被惡意修改。類的封裝性反映了事物的相對獨立性,使用者只需要關心類提供了什么功能(即能做什么),至于如何實現這些功能,用戶不需要關注。例如計算機,用戶只需要關注有沒有USB接口、視頻和音頻接口、鼠標鍵盤接口,至于這些接口如何與主板、CPU進行通信,用戶不需要關注。(2)繼承性繼承性指的是子類(特殊類)擁有父類(一般類)的屬性和行為。繼承意味著自動擁有,子類不必重新定義父類中已經存在的屬性和行為,它自動地、隱含地擁有父類的屬性和行為。繼承提供了一種明確表述共性的關系。不管是顯式還是隱式繼承,在概念上和效果上都是子類的屬性和行為,而且子類的這些屬性和行為又可以被它的子類所繼承,也就是說,繼承關系可以傳遞。在進行代碼維護的過程中,可以定義新的類繼承已有的類,實現對原有系統(tǒng)功能的擴充,且不影響原有代碼的邏輯關系,提高了代碼的可維護性。本課件是可編輯的正常PPT課件(3)多態(tài)性多態(tài)性是允許將子類的對象賦值給父類的對象,賦值之后,父對象就可以根據當前值來調用對應的子類對象的方法,實現一個對象有多種狀態(tài)的技術。多態(tài)有編譯時多態(tài)和運行時多態(tài)。編譯時多態(tài)通過方法的重載(Overload)實現,運行時多態(tài)通過方法的重寫(Override)實現。通常所說的多態(tài)是運行時多態(tài)。比如狗是動物、貓也是動物,如果把狗的對象賦值給動物,那么說動物在叫,所指的是狗在叫;如果把貓的對象賦值給動物,此時說的動物在叫指的是貓在叫。有了多態(tài)性以后,擴展了程序的功能,特別是在進行參數傳遞時,統(tǒng)一了形參的類型。3.初步認識類和對象類和對象是面向對象程序設計中最基礎的組成單元,類是共性事物的集合,對象是指某一個具體的事物。比如,花指的是一類事物,而玫瑰花是一種具體的花;魚指的是一類事物,鯉魚是一種具體的魚?;?、魚在程序中的體現就是類,玫瑰花、鯉魚在程序中的體現就是對象。所有的類都是用來描述對象的結構,比如人有姓名、年齡、性別、身高等共性特征,除了這些共性特征以外,還有相同的功能,比如人具有學習的功能、行走的功能等。特征在類中的體現是屬性(成員變量),功能在類中的體現是行為(成員方法)對象是由類產生,對象所能操作的行為由產生該對象的類來決定,超過類定義范疇的操作,對象不能夠使用。比如小明是人類,因而它能夠使用學習功能、行走功能,但是不能使用飛的功能。類是對象的模板,是抽象的,它必須通過實例化對象才能夠被使用,對象是具體的。所以要先定義類,才能夠定義對象。比如銀行卡是一個類,是抽象的,但中國建設銀行的信用卡是對象,是具體的、可以使用的。本課件是可編輯的正常PPT課件4.面向對象程序設計思路
在進行面向對象程序設計的時候,首先要對系統(tǒng)進行建模,通俗地說就是抽取類,一般情況下需求中出現的名詞就是需要定義的類。其次是要給每一個類定義屬性,用來描述對象狀態(tài)的內容就是類的屬性。最后是要定義類的功能,也就是行為,一般用動詞來描述的就是對象的行為。在定義行為時,要解決兩個問題:是否需要接受類以外的數據;是否需要把結果告訴調用者。這是面向對象程序設計的一般思路,下面通過例子來說明使用面向對象程序設計思想進行建模,不考慮代碼的實現。本課件是可編輯的正常PPT課件【解決問題1】貓抓老鼠。(1)分析:在需求中出現了兩個名詞,貓和老鼠,所以類有兩個:貓、老鼠。在這里沒有用來描述貓和老鼠狀態(tài)的內容,所以不考慮屬性(一般在需求中出現什么,就考慮什么,有利于簡化問題)。需求中出現的動詞是抓,所以行為(或者說功能)就是抓。關鍵需要確定這個行為所屬的對象,可以通過“功能屬于誰”行為就是誰的原則進行判斷。這里可以很明確地知道“抓”的動作是貓產生的,所以這個行為要定義在貓這個對象中。在抓這個行為中,老鼠不是屬于貓的數據,這個數據要從外部傳遞進來,因此,行為需要參數;另外有沒有抓住老鼠需要告訴調用者,所以這個功能需要有返回值,返回值要明確告訴使用者有沒有抓住老鼠,抓住了為true,沒抓住為false,因而返回值的類型為布爾型。(2)抽象代碼:根據上面的分析,可以定義出與代碼無關的模型。貓{boolean抓(老鼠){…}}老鼠{…}
上述的抽象代碼,就是面向對象程序的雛形。屬性通過定義變量來實現,行為通過定義方法來實現。本課件是可編輯的正常PPT課件【解決問題2】商店賣水,水可以喝,一瓶500ml的水價格為2.0元。(1)分析:需求中出現了兩個名詞,商店和水,所以有兩個類:商店、水。商店中有商品,品名是水,所以有一個屬性。水有描述狀態(tài)的數據:容量、價格,所以水的屬性有兩個。需求中出現的行為有兩個:賣、喝。需要確定這兩個功能屬于哪個類,很顯然,“賣”是商店的行為,“喝”是水的行為,所以這兩個行為分別屬于商店和水?!百u”的功能:賣的商品是水,水是屬于商店對象的商品,不是外部數據,不需要參數;賣完水之后,商店能夠獲得收入,所以需要返回值,返回值的類型為水的價格數據類型?!昂取钡墓δ埽簺]有外部數據需要傳遞進來;有沒有喝完水需要告訴調用者,有返回值,為布爾型。(2)抽象代碼:商店{商品名稱:水;double賣(){…}}水{容量;價格;boolean喝(){…}}本課件是可編輯的正常PPT課件二、如何定義和使用類類是Java中的一種重要的引用數據類型,它封裝了一類對象的屬性和方法,是這一類對象的原型。類實例化就得到了對象。1.認識類的定義格式在Java中,類的定義是通過關鍵字clas
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工廠充裝人員課件培訓
- 《汽車文化》課件 第二章 汽車基本結構 第一節(jié) 汽車的分類
- 福建省泉州市第五中學2025-2026學年上學期期末七年級數學試卷(無答案)
- 2026年陜西省西安市碑林區(qū)西北工大附中中考數學第一次適應性試卷(含簡略答案)
- 2026年度牛市下半場實物再通脹
- 鋼結構焊接材料選用技術要點
- 2026年上半年黑龍江事業(yè)單位聯考省人民政府黑瞎子島建設和管理委員會招聘4人備考考試題庫及答案解析
- 2026內蒙古鄂爾多斯市城投商業(yè)運營管理有限公司招聘46人參考考試題庫及答案解析
- 市場調研公司數據管理制度
- 2026湖南株洲市天元中學招聘編外合同制教師考試備考試題及答案解析
- 施工、建設、監(jiān)理單位管理人員名冊
- 單自由度系統(tǒng)的自由振動
- 2023款 kawasaki 川崎Ninja 1000S 用戶使用手冊 說明書 摩托車
- 刑法思考題答案
- 防水煤柱的留設
- s-舒更葡糖鈉注射液說明書
- GB/T 11322.1-2013射頻電纜第0部分:詳細規(guī)范設計指南第1篇同軸電纜
- 專利挖掘與交底書課件
- 三年級下期語文考試雙向細目表
- 企業(yè)安全安全生產雙重預防機制建設規(guī)范
- 新托業(yè)聽力必背19天(中英文已校對打印版)匯總
評論
0/150
提交評論