九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

JAVA教程第2章(控制臺程序設(shè)計(jì))

上傳人:dfg****19 文檔編號:247446154 上傳時間:2024-10-18 格式:PPT 頁數(shù):77 大?。?58KB
收藏 版權(quán)申訴 舉報(bào) 下載
JAVA教程第2章(控制臺程序設(shè)計(jì))_第1頁
第1頁 / 共77頁
JAVA教程第2章(控制臺程序設(shè)計(jì))_第2頁
第2頁 / 共77頁
JAVA教程第2章(控制臺程序設(shè)計(jì))_第3頁
第3頁 / 共77頁

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

15 積分

下載資源

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

資源描述:

《JAVA教程第2章(控制臺程序設(shè)計(jì))》由會員分享,可在線閱讀,更多相關(guān)《JAVA教程第2章(控制臺程序設(shè)計(jì))(77頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,第,2,章 控制臺程序設(shè)計(jì),本章提要,面向?qū)ο笏枷?Java,語言特點(diǎn),Java,運(yùn)行環(huán)境,編寫,Java,程序,本章知識要點(diǎn),Java,程序分類,Java,開發(fā)環(huán)境與運(yùn)行,類的定義,類的四個基本特性,接口,任務(wù),1,認(rèn)識,Java,程序及其運(yùn)行,什么是,Java,程序,Java,開發(fā)環(huán)境及工具,計(jì)算機(jī)處理,Java,程序的過程,Java,程序,例子,:,/*,WelcomeApp.java,*/,import java.lang.System;,class,WelcomeApp,public static

2、 void main(String,args,),System.out.println(Welcome,to Java World!);,Java,程序,Java,應(yīng)用程序的特點(diǎn)是可以一次編譯到處運(yùn)行。,兩大類型,應(yīng)用程序(,applications,),小應(yīng)用程序(,applets,),應(yīng)用程序是可以獨(dú)立在任何操作系統(tǒng)平臺上執(zhí)行的程序。,基于窗體的應(yīng)用程序,基于控制臺的應(yīng)用程序,小應(yīng)用程序是在,Web,頁面內(nèi)執(zhí)行的,Java,程序,小應(yīng)用程序需要瀏覽器支持。,Java,運(yùn)行環(huán)境,Java,運(yùn)行環(huán)境,Java Runtime Environment(JRE),是可以在其上運(yùn)行、測試和傳輸應(yīng)用程

3、序的,Java,平臺。它包括,Java,虛擬機(jī)、,Java,平臺核心類和支持文件。,如,sun,公司的,JRE,包括:,Java Runtime Environment,和,Java Plug-in,Java,虛擬機(jī),JVM(Java Virtual Machine),它是一種可以運(yùn)行,Java,字節(jié)碼的虛擬的計(jì)算機(jī),它是,Java,運(yùn)行平臺的核心。,Java,源程序編譯生成的字節(jié)碼不能直接在操作系統(tǒng)平臺上運(yùn)行,必須在,Java,虛擬機(jī)上運(yùn)行。,任務(wù),1,認(rèn)識,Java,程序及其運(yùn)行,什么是,Java,程序,Java,開發(fā)環(huán)境及工具,計(jì)算機(jī)處理,Java,程序的過程,Java,開發(fā)環(huán)境,Jav

4、a,開發(fā)包,Java,開發(fā)工具箱(,JDK,)是,SUN,的,Java,軟件開發(fā)包。其中包含有實(shí)現(xiàn)各種各樣低層技術(shù)的類的集合,這些類提供了很多屬性和方法。我們可以在這之上開發(fā),Java,應(yīng)用程序。,JDK,的三種版本,SE,(,J2SE,),,standard edition,,,標(biāo)準(zhǔn)版,通常用版本,EE,(,J2EE,),,enterprise,edtion,,,企業(yè)版,用于開發(fā),J2EE,應(yīng)用程序,ME,(,J2ME,),,microedtion,,,主要用于移動設(shè)備、嵌入式設(shè)備上的,java,應(yīng)用程序,Java,開發(fā)環(huán)境(續(xù)),在,SUN,的,JDK,中,不僅包含開發(fā)類庫。同時,,JDK

5、,也為用戶提供了集成和執(zhí)行,Java,應(yīng)用程序和小應(yīng)用程序的工具。表中列出的就是它們所提供的部分工具,工具,作用,Javac,編譯器,用于將,Java,源程序編譯成字節(jié)碼,Java,解釋器,Java,解釋器,用于解釋執(zhí)行,Java,字節(jié)碼,appletviewer,小應(yīng)用程序?yàn)g覽器,用于測試和運(yùn)行,JavaApplet,程序,Javadoc,Java,文檔生成器,Javah,工具,C,文件生成器,利用此命令可實(shí)現(xiàn)在,Java,類中調(diào)用,C+,代碼,jdb,工具,Java,調(diào)試器,Java,開發(fā)環(huán)境(續(xù)),JDK,下載地址, FilesJavajdk1.5.0_14libtools.jar;C:

6、Program FilesJavajdk1.5.0_14libdt.jar;.;”,中間用分號隔開,若修改了安裝目錄的,則需修改成相應(yīng)目錄。,3,、再新建一個變量名為“,JAVA_HOME”,,,變量值值為“,C:Program FilesJavajdk1.5.0_14;”,。,4,、,打開系統(tǒng)變量“,PATH”,,,在變量值后面添加“,C:Program FilesJavajdk1.5.0_14bin;”,Java,開發(fā)環(huán)境(續(xù)),JDK,安裝與配置測試,:,輸入,Java -version,出現(xiàn)以下說明,則表示成功,java version 1.5.0_14,Java(TM) 2 Runt

7、ime Environment, Standard Edition (build 1.5.0_14-b03,Java,HotSpot(TM,) Client VM (build 1.5.0_14-b03, mixed mode, sharing),Java,開發(fā)環(huán)境(續(xù)),關(guān)于系統(tǒng)環(huán)境配置變量的說明,:,1.PATH,環(huán)境變量。作用是指定命令搜索路徑,,在,DOS,命令行,下面執(zhí)行命令,如,javac,編譯,java,程序時,它會到,PATH,變量所指定的路徑中查找看是否能找到相應(yīng)的命令程序。,2.CLASSPATH,環(huán)境變量。作用是指定類搜索路徑,,JVM,通過,CLASSPTH,來尋找類的

8、,從而我們可以使用已編寫好的類。,3.JAVA_HOME,環(huán)境變量。它指向,jdk,的安裝目錄,,Eclipse/NetBeans/Tomcat,等軟件就是通過搜索,JAVA_HOME,變量來找到并使用安裝好的,jdk,。,4.,如果安裝了,J2EE,,,也同樣要加一個環(huán)境變量,J2EE_HOME,。,Java,開發(fā)工具,JCreator,JBuilder,VisualAge,For Java,Sun ONE Studio,Netbean,Eclipse,任務(wù),1,認(rèn)識,Java,程序及其運(yùn)行,什么是,Java,程序,Java,開發(fā)環(huán)境及工具,計(jì)算機(jī)處理,Java,程序的過程,Java,程序運(yùn)

9、行環(huán)境架構(gòu),JVM,虛擬機(jī),用軟件構(gòu)造出來的計(jì)算機(jī)。它是通過在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來實(shí)現(xiàn)的。虛擬機(jī)有自己的指令系統(tǒng),但沒有硬件,它把虛擬代碼轉(zhuǎn)換成相應(yīng)的機(jī)器代碼,再加以執(zhí)行。,JAVA,虛擬機(jī),(JVM),一個想象中的機(jī)器,在實(shí)際的計(jì)算機(jī)上通過軟件模擬來實(shí)現(xiàn)。,Java,虛擬機(jī)有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。,JVM,的作用,它有自己的一套邏輯指令,,JAVA,源代碼經(jīng)過編譯器編譯以后,生成虛擬機(jī)的邏輯指令集(,.class,文件),而,JVM,的任務(wù)就是將,.class,文件裝入內(nèi)存,并把這些,.class,文件包含的偽指令解釋為具體平臺的

10、機(jī)器指令,然后執(zhí)行。從這個意義上來說編譯器是平臺無關(guān)的,而,JVM,是平臺有關(guān)的。如,window,平臺與,linux,平臺上的,JVM,是不一樣的。,JVM,體系結(jié)構(gòu),常量池:虛擬機(jī)必須為每個被裝載的類型維護(hù)一個常量池。常量池就是該類型所用到常量的一個有序集和,包括直接常量(,string,integer,和,floating point,常量)和對其他類型,字段和方法的符號引用。,JVM,類裝載,指將包含在類文件中的字節(jié)碼裝載到,JVM,中,并使其成為,JVM,一部分的過程。即尋找一個類或是一個接口的二進(jìn)制形式,并用該二進(jìn)制形式來構(gòu)造代表這個類或是這個接口的,class,對象的過程,其中類

11、或接口的名稱是給定了的。,類裝載過程,裝載、鏈接和初始化,其中鏈接又可以分成校驗(yàn)、準(zhǔn)備、解析三步:,裝載:查找和導(dǎo)入類或接口的二進(jìn)制數(shù)據(jù);,鏈接:執(zhí)行下面的校驗(yàn)、準(zhǔn)備和解析步驟,其中解析步驟是可以選擇的;,校驗(yàn):檢查導(dǎo)入類或接口的二進(jìn)制數(shù)據(jù)的正確性;,準(zhǔn)備:給類的靜態(tài)變量分配并初始化存儲空間;,解析:將符號引用轉(zhuǎn)成直接引用,如變量直接通過地址訪問,方法也被映射到內(nèi)存的某個位置等待調(diào)用;,初始化:利用類定義的代碼對靜態(tài)變量的初始化,Java,代碼和靜態(tài),Java,代碼塊。,JVM,運(yùn)行引擎,負(fù)責(zé)執(zhí)行包含在已裝載的類或接口中的指令,。,JVM,區(qū),Java,堆,是一個運(yùn)行時數(shù)據(jù)區(qū),類的實(shí)例,(,對

12、象,),從中分配空間,它的管理是由垃圾回收來負(fù)責(zé)的,程序員不能顯式釋放對象。,Java,不規(guī)定具體使用的垃圾回收算法,可以根據(jù)系統(tǒng)的需求使用各種各樣的算法。,Java,方法區(qū),保存方法代碼,(,編譯后的,java,代碼,),和符號表(常量池),程序計(jì)數(shù)器,每個線程一旦被創(chuàng)建就擁有了自己的程序計(jì)數(shù)器。當(dāng)線程執(zhí)行,Java,方法的時候,它包含該線程正在被執(zhí)行的指令的地址,JVM,Java,棧有三個區(qū)域,:,局部變量區(qū)、運(yùn)行環(huán)境區(qū)、操作數(shù)區(qū),局部變量區(qū):每個,Java,方法使用一個固定大小的局部變量集。,運(yùn)行環(huán)境區(qū):在運(yùn)行環(huán)境中包含的信息用于動態(tài)鏈接,正常的方法返回以及異常捕捉,操作數(shù)區(qū):機(jī)器指令從

13、操作數(shù)棧中取操作數(shù),對它們進(jìn)行操作,并把結(jié)果返回到棧中,本地方法棧,當(dāng)一個線程調(diào)用本地方法時,它就不再受到虛擬機(jī)關(guān)于結(jié)構(gòu)和安全限制方面的約束,它既可以訪問虛擬機(jī)的運(yùn)行期數(shù)據(jù)區(qū),也可以使用本地處理器以及任何類型的棧。,JVM,工作過程,JVM,是,JDK,的最底層,負(fù)責(zé)于操作系統(tǒng)的交互,用來屏蔽操作系統(tǒng)環(huán)境,提供一個完整的,java,運(yùn)行環(huán)境,即虛擬計(jì)算機(jī),JDK,裝入,JVM,的過程,創(chuàng)建,jvm,裝載環(huán)境和配置,裝載,jvm.dll,初始化,jvm.dll,并掛界到,JNIENV(JNI,調(diào)用接口,),實(shí)例,調(diào)用,JNIENV,實(shí)例裝載并處理,class,類。,JVM,處理示例,Test.c

14、lass,的過程,輸入命令:,Java Test,確定,jvm,的路徑和相關(guān)的參數(shù)配置,裝載,jvm.cfg,文件,獲得,jvm.dll,的路徑,由,LoadJavaVM,來裝入,jvm.dll,文件,獲得,JNIEnv,實(shí)例,java.c,中,LoadClass,方法裝載該主類,由,JNIEnv,實(shí)例的方法,調(diào)用主類中,main,方法,任務(wù),2,編寫數(shù)字顯示程序,問題分析,知識學(xué)習(xí),類的抽象與封裝,數(shù)據(jù)類型,常用類和包,定義,Java,類,任務(wù)實(shí)施,問題分析,任務(wù)描述:,編寫一個程序,能夠顯示數(shù)字,問題分析:,Java,程序構(gòu)成,它是面向?qū)ο蟮恼Z言,其程序由類組成的,需要了解類的相關(guān)概念,編

15、寫,Java,程序的方法和步驟,確定顯示數(shù)字所使用的數(shù)據(jù)類型,了解數(shù)據(jù)類型知識,編寫代碼,編譯執(zhí)行,知識學(xué)習(xí),類的抽象與封裝,將客觀世界的任何實(shí)體看作對象,則客觀世界由各種,“,對象,”,組成,且有自己的狀態(tài)和行為,將具有相同特征和功能的對象歸類,形成類,其中每個對象就是這個類的一個實(shí)例。,類之間可通過繼承關(guān)系構(gòu)成類的層次結(jié)構(gòu),對象之間可通過消息相互作用,即一個對象通知另一個對象完成一個允許作用于該對象的操作,而其操作細(xì)節(jié)被封裝,對外界不公開。,類和對象,是對對象的抽象及描述,是一些數(shù)據(jù)元素(屬性)及其上操作(方法)的聚集。對象則對應(yīng)一個值。類與對象的關(guān)系相當(dāng)于模式和它的實(shí)例的關(guān)系。,知識學(xué)習(xí)

16、,類的抽象與封裝,面向?qū)ο蟮乃膫€基本特征,抽象,、,封裝,、繼承、多態(tài)。,抽象,從眾多對象中抽出共同的、本質(zhì)的屬性和行為的過程。,封裝,將類的屬性和行為(即數(shù)據(jù)和方法)聚集在一起形成一個完整邏輯單元的機(jī)制,只讓可信的類或者對象操作,對不可信的進(jìn)行信息隱藏。,繼承,是類之間“一般”和“特殊”的關(guān)系,已有類(父類)可派生出新類(子類),構(gòu)成類的層次關(guān)系,多態(tài),表示同一事物的多種形態(tài),面向?qū)ο?是一種程序設(shè)計(jì)思想,在程序空間內(nèi),利用數(shù)據(jù)抽象的方法對客觀世界的實(shí)體進(jìn)行描述,即將一種數(shù)據(jù)結(jié)構(gòu)和操作該數(shù)據(jù)結(jié)構(gòu)的方法捆綁在一起,封裝在一個程序?qū)嶓w內(nèi),從而實(shí)現(xiàn)了數(shù)據(jù)封裝和信息隱藏。,知識學(xué)習(xí),類的抽象與封裝,

17、定義一個,Java,類,class,ClassName,/,構(gòu)造方法,/,一個或多個屬性,/,一個或多個方法,/,一個主方法,知識學(xué)習(xí),類的實(shí)例化,對象的生命周期:,生成 、使用和清除,對象的生成,包括聲明 、實(shí)例化和初始化三方面的內(nèi)容,.,通常的格式為,:type,objectName,= new type ( ,paramlist, );,說明:,其中,type,是組合類型,(,包括類和接口,),type,objectName,:,即聲明,分配一個,type,引用空間,new type,:,即實(shí)例化,在堆空間創(chuàng)建一個,type,類對象,( ,paramlist, ),:,即初始化,在對象創(chuàng)

18、建后,立即調(diào)用,type,類的構(gòu)造函數(shù),對剛生成的對象進(jìn)行初始化,=,:使對象引用指向剛創(chuàng)建的那個,type,對象,知識學(xué)習(xí),類的實(shí)例化和使用,例如:,Position a=new Position();,Position a,聲明了一個,Position,類,創(chuàng)建該類的引用變量,,a,為,null,new Position,實(shí)例化了一個,Position,類對象,()調(diào)用該類的構(gòu)造函數(shù),初始化對象,例如:,Position a=new Position(,x,y,);,?,對象的使用,調(diào)用對象的方法:對象名,.,方法名(參數(shù),1,值,參數(shù),2,值,),調(diào)用對象的變量:對象名,.,屬性名,例如

19、:,a.disp(,“,hello,”,),,,a.name=,“,java,”,知識學(xué)習(xí),類的清除,類的清除,當(dāng)不存在對一個對象的引用時,該對象成為一個無用對象。,Java,的垃圾收集器自動掃描對象的動態(tài)內(nèi)存區(qū),把沒有引用的對象作為垃圾收集起來并釋放。,知識學(xué)習(xí),構(gòu)造方法,構(gòu)造方法是類實(shí)例化為對象時,編譯器自動調(diào)用的方法,用以給出對象中變量的初值。,構(gòu)造方法必須與類同名,而且絕對不允許有返回值。,定義,Java,類,/Java,類例子,public class Application, /,類的屬性,String name;,int,age;,/,沒帶參數(shù)的構(gòu)造,public Applica

20、tion(),name = “Jack”;,age = 21;,/,帶兩個參數(shù)的構(gòu)造,public Application(String name,int,age),this.name = name;,this.age = age;,/,類的方法,public void Display( ),System.out.println(“name,: ”+this.name);,System.out.println(“age,: ”+ this.age);,知識學(xué)習(xí), Main,(),方法,Java,運(yùn)行環(huán)境在開始解釋運(yùn)行,Java,程序時,必須有一個切入點(diǎn)。那么,Java,應(yīng)用程序中的切入點(diǎn)就是類

21、中所定義的,main,方法。,public class Welcome,public static void main(String,args,),/do something,一個簡單的,Java,程序,import java.lang.*;,public class,WelcomeDemo,String,str,;,public,WelcomeDemo,(),str,=,“,welcome to Java world!;,public static void main(String,args,),WelcomeDemo,wel,=new,WelcomeDemo,();,System.out.

22、println(wel.str,);,主類,Main,方法,構(gòu)造方法,一個簡單的,Java,程序(續(xù)),上機(jī)運(yùn)行步驟如下:,編輯。在編輯窗口中輸入并存成后綴為,.java,的文件,其中文件名必須與定義的應(yīng)用程序類名一致。,編譯。在該文件所在目錄下輸入如下的命令行:,javac,WelcomeDemo,.java,編譯通過后,將自動生成程序中聲明的類文件。,解釋運(yùn)行。同樣通過輸入命令行:,java,WelcomeDemo,知識學(xué)習(xí),編寫,Java,程序的,步驟,構(gòu)造主類,分析類,以及相關(guān)屬性和方法,定義,Java,類,構(gòu)造其構(gòu)造函數(shù),寫,main,方法,編譯,運(yùn)行,模仿例子,編寫一個顯示,hel

23、lo,how are you,程序,思考,:,String,是什么數(shù)據(jù)類型,?,import java.lang.*;,是做什么用的,?,動手練習(xí),15,分鐘,知識學(xué)習(xí),數(shù)據(jù)類型,Java,數(shù)據(jù)類型,基本數(shù)據(jù)類型,引用類型,基本數(shù)據(jù)類型,大小,/,格式,byte,8-bit,short,16-bit,int,32-bit,long,64-bit,float,32-bit,double,64-bit,char,16-bit,boolean,1-bit,包裝類,Byte,Short,Integer,Long,Float,Double,Character,Boolean,知識學(xué)習(xí),數(shù)據(jù)類型(續(xù)),包

24、裝類型與基本類型之間可以轉(zhuǎn)換:,例如:,double a=1.0;,/,把,double,基本類型轉(zhuǎn)換為,Double,包裝類型,Double b=new Double(a);,/,把,Double,包裝類型轉(zhuǎn)換為,double,基本類型,a=,b.doubleValue,();,包裝類的作用:用以實(shí)現(xiàn)數(shù)據(jù)類型之間轉(zhuǎn)換,知識學(xué)習(xí),數(shù)據(jù)類型(續(xù)),引用類型,包括類,接口,數(shù)組,字符串類,常用類:,包裝類,如,java.lang.Integer,數(shù)組:存儲一組相同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。數(shù)組不能改變數(shù)組元素個數(shù),.,。,數(shù)組創(chuàng)建:,數(shù)據(jù)類型,數(shù)組名稱,=,初始化數(shù)值列表,數(shù)據(jù)類型,數(shù)組名稱,=new,

25、數(shù)據(jù)類型,數(shù)組元素個數(shù),例如:,int,smallPrimes,= 1,3,4;/,初始化,int,magicSquere,= 1,3,4,3,3,3;/,多維數(shù)組初始化,int,smallPrimes,= new int3,int,smallPrimes,= new int1,3,4,案例,ArrayDemo.java,知識學(xué)習(xí),數(shù)據(jù)類型(續(xù)),字符串:,多個字符的組合,,String,StringBuffer,StringTokenizer,String,類,用于構(gòu)造一個字符串,String,字符串名,=new String(,字符串常量,);,String,字符串名,=,字符串常量;,例

26、如:,String,str,=new String(“hello”);,String,str,=“hello”;,常用方法,length(),equals(Object),comparTo(Object),charAt(int),indexOf(char,),知識學(xué)習(xí),數(shù)據(jù)類型(續(xù)),StringBuffer,類,用于構(gòu)造一個字符串緩沖區(qū),StringBuffer,字符串名,=new,StringBuffer,(,字符串常量,);,StringBuffer,字符串名,=new,StringBuffer(int,len,);,StringBuffer,字符串名,=new,StringBuffer

27、,();,例如:,StringBuffer,strbuf,=new String(“hello”);,分配,”,hello”+16,個字符緩沖區(qū),StringBuffer,strbuf,=new String(50);,分配,50,個字符緩沖區(qū),常用方法,length(),setLength(int),append(String),insert(int,String,),delete(int,int),reverse,(),案例,StringBufferDemo.java,知識學(xué)習(xí),數(shù)據(jù)類型(續(xù)),StringTokenizer,類,用于構(gòu)造一個詞法分析器類,將一個串分為多個片,以提取或處理其

28、中的單詞,StringTokenizer,字符串名,=new,StringBuffer,(,字符串常量,);,StringTokenizer,字符串名,=new,StringBuffer,(,字符串常量,分隔符常量,);,例如:,StringTokenizer,strtok,=new,StringTokenizer(“this,is a string”,“ ”);,案例,StringBufferDemo.java,知識學(xué)習(xí),數(shù)據(jù)類型(續(xù)),注意,若對于字符串類,要循環(huán)過程中進(jìn)行串連接等處理時,不要使用,String,,,而要使用,StringBuffer,,,例如,,String s1=“,a

29、aa,”;,String s2=“,bbb,”;,String s=s1+s2,;,執(zhí)行,+,,則要創(chuàng)建一個,StringBuilder(StringBuffer,),,,并使用其方法,append,,,合并字符串,而后銷毀該,StringBuilder,對象,也就是說,執(zhí)行多少次,+,,就要創(chuàng)建和銷毀多少次,StringBuilder,對象,字符串相等,使用,equals(),方法,不要使用,”,=”,”=”,用于判斷值是否相等,,equals(),用于判斷對象的值是否相等,如:,String str1=new String(“hello”);,String str2=new String(

30、“hello”);,str1=str2,則為,false,,,由于這兩個對象的地址值不同,案例,StringDemo.java,知識學(xué)習(xí),數(shù)據(jù)類型(續(xù)),hello,123,0X78EF0789,0X78EF0456,p,Position,hello,c,常量池,堆內(nèi)存,int,x=123;,String,str,=new String(“hello”);,Position p=new Position();,基本數(shù)據(jù)類型變量,x,引用類型變量,p,引用類型變量,str,copy,知識學(xué)習(xí),包,包,是類和接口的集合,是,Java,中組織分類程序的一種樹形結(jié)構(gòu),將功能相關(guān)的多個類或接口放在同一個

31、包中,同時在此包中再聲明其子包,形成包樹形結(jié)構(gòu)。,為了指出類是某個包的成員,使用,package,關(guān)鍵字。,通過使用,import,語句,在程序中使用,Java,包。,常用包:,java.lang.*,java.util.*,java.awt,.*,java.applet.*,java.sql,.*,任務(wù)實(shí)施:編寫顯示數(shù)字程序,/*,NumberDemo.java,*/,import java.lang.System;,Public class,NumberDemo,int,x=0;,public,NumberDemo,(),public void,disp(int,y),x=y;,Syste

32、m.out.println(“Number,: “+x);,public static void main(String,args,),NumberDemo,dnum,=new,NumberDemo,();,dnum.disp(5);,任務(wù)實(shí)施,編寫顯示數(shù)字程序,/*Numbers.java*/,import java.lang.System;,Public class Numbers,int,x=0;,public Numbers (),public void,disp(int,y),x=y;,System.out.println(“Number,: “+x);,public static

33、void main(String,args,),Numbers,dnum,=new Numbers ();,dnum.disp(5);,編譯執(zhí)行,編寫一個單個字符串顯示程序,課外拓展:編寫一個程序,顯示集合中字符串,“,abc”,”mn”,”khl”,”mn”,”hello”,”hi,”,,,且無重復(fù)字符串,即結(jié)果應(yīng)顯示,“,abc”,”mn”,”khl”,”hello”,”hi,”,動手練習(xí),3,0,分鐘,任務(wù),3,編寫整數(shù)相加程序,問題分析,知識學(xué)習(xí),類的繼承,訪問控制符,任務(wù)實(shí)施,問題分析,任務(wù)描述:,編寫一個程序,能夠進(jìn)行整數(shù)相加,步驟分析:,分析整數(shù)相加與任務(wù),2,中類,Number

34、Demo,的關(guān)系,是數(shù)字的一種行為,可利用,類的繼承性,繼承或訪問過程要考慮其訪問限度,即,訪問控制符,編寫代碼,編譯執(zhí)行,知識學(xué)習(xí),類的,繼承性,類的繼承是指使用現(xiàn)有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進(jìn)行擴(kuò)展,Java,語言實(shí)現(xiàn)繼承是通過,extends,關(guān)鍵字來實(shí)現(xiàn)。,Java,不支持多重繼承,。例,classExtendDemo.java,class Book,public Book(),/,類元素定義,class,TextBook,extends Book,public,TextBook,(),/,類元素定義,注意,:,若基類構(gòu)造函數(shù)帶參數(shù)時,子類的構(gòu)造函數(shù)中顯示

35、調(diào)用基類構(gòu)造函數(shù),super(,基類構(gòu)造函數(shù)參數(shù)名,),;若基類實(shí)例化時,指向子類實(shí)例,則基類對象調(diào)用子類中的重寫方法,知識學(xué)習(xí),訪問控制符,訪問控制符是規(guī)定了被定義元素的的被訪問限度,Java,中的訪問控制符包括:,Public,Private,Protected,private protected,默認(rèn)訪問(包訪問性),訪問控制符作用圖,訪問控制符,類,B,類,C,類,D,類,E,x,聲明為,public,可訪問,可訪問,可訪問,可訪問,x,聲明為,protected,可訪問,可訪問,可訪問,不可訪問,x,聲明為缺省訪問控制符,可訪問,不可訪問,可訪問,可訪問,x,聲明為,private,

36、不可訪問,不可訪問,不可訪問,不可訪問,任務(wù)實(shí)施,整數(shù)為數(shù)的子類,可以任務(wù),1,中,Number,為父類,構(gòu)造一個整數(shù)類,并增加一個相加方法,Public class,IntegerNumbers,extends Numbers,Public void,intSum(int,y1,int y2),x=y1+y2;,System.out.println(“result,: ”+x);,編寫代碼,編譯執(zhí)行,案例,IntegerNumbers.java,知識延伸,傳參數(shù),代碼分析:,public static void main(String,args,),int,i=2;,IntegerNumbe

37、rs,dnum,=new,IntegerNumbers,();,dnum.disp(i,); /,傳值,dnum.intSum(i,4);,System.out.println(i,); /,方法外的變量將不改變值,傳參數(shù),傳值:,方法操作的是參數(shù)變量(也就是原型變量的一個值的拷貝)改變的也只是原型變量的一個拷貝而已,而非變量本身。因此,變量原型將不會隨之改變。,傳引用:當(dāng),方法傳入的參數(shù)為非基本類型時(即是一個對象類型的變量), 方法改變參數(shù)變量的同時變量原型也會隨之改變,,,但,String,包裝類除外,案例,StringParaDemo.java,StringBufferParaDemo

38、.java,知識延伸,靜態(tài)成員,類成員,靜態(tài)成員:類型說明符要加關(guān)鍵字,static,靜態(tài)變量:,static String,str,靜態(tài)方法,: static void main(),實(shí)例成員,實(shí)例變量,實(shí)例方法,在類中的應(yīng)用,靜態(tài)成員:類名,.,屬性,類名,.,方法名,在靜態(tài)方法中不可使用實(shí)例成員,實(shí)例成員:對象名,.,屬性,對象名,.,方法名,知識延伸,Object,和,Class,Object,所有對象的基類,提供了所有對象常用的方法,可以引用所有類型的對象,例如用于參數(shù),Class,是一個公有的最終類,這是,Object,類的直接子類,常用于描述正在運(yùn)行中的類或接口,它的實(shí)例化可通過

39、方法,getClass,(),完成,Exp:Object,obj,;,Class c=,obj.getClass,(),可以得到一個,Class,的一個實(shí)例,c.getName,(),即,obj.getClass().getName,();,得到,obj,對象的類名,案例,TestDemo.java,編寫一個程序,顯示由兩單詞組成的字符串,動手練習(xí),30,分鐘,任務(wù),4,編寫多個整數(shù)相加程序,問題分析,知識學(xué)習(xí),類的多態(tài),任務(wù)實(shí)施,問題分析,任務(wù)描述:,編寫一個程序,能夠進(jìn)行多個整數(shù)相加,步驟分析:,分析多個整數(shù)相加與任務(wù),2,、,3,中類的關(guān)系,是數(shù)字的一種行為,且是整數(shù)運(yùn)算的另一種形式,可

40、利用,類的多態(tài)性,編寫代碼,編譯執(zhí)行,知識學(xué)習(xí),類的,多態(tài)性,類的多態(tài)性,指的是同樣的消息能被發(fā)送到父類的對象和它子類的對象,,Java,中的多態(tài)主要指的就是方法的重寫,Overriding,和重載,Overloading,重載,Overloading,:,一個類中多態(tài)性的一種表現(xiàn) ,如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型或是返回值的類型,則稱為方法的重載,(Overloading),。,重寫,Overriding,:,是父類與子類之間多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫,(Overriding),。,子類

41、的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。,案例,PolyClassDemo.java,任務(wù)實(shí)施,多個整數(shù)相加,是整數(shù)相加的一種形式,可以利用一個類中多態(tài)性即重載來實(shí)現(xiàn),public class,MultIntNumbers,extends,IntegerNumbers,p,ublic void,intSum(int,y1,int y2),x=y1+y2;,System.out.println(“result,: ”+x);,public void,intSum(int,y1,int y2,int y3),x=y1+y2+y3;,System.out.p

42、rintln(“result,: ”+x);,案例,MultIntNumbers.java,整數(shù)相加的處理方法不同, 即方法內(nèi)代碼改變了,則可以利用父類和子類間的多態(tài)性即重寫來實(shí)現(xiàn),public class IntegerNumbers_2 extends,IntegerNumbers,p,ublic void,intSum(int,y1,int y2),y1=y1+y2;,x=y1;,System.out.println(“result,: ”+x);,案例,IntegerNumbers_2.java,知識延伸,類的多態(tài)性(重寫),編寫一個程序,顯示由多個單詞組成的字符串,動手練習(xí),30,分

43、鐘,拓展,1,抽象類和接口,抽象類,(,abstract,),所有對象是由類來描述的,但不是所有類都用于描述對象,即有些沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。抽象類往往用來表征我們在對問題領(lǐng)域進(jìn)行分析、設(shè)計(jì)中得出的抽象概念,是對一系列看上去不同,但是本質(zhì)上相同的具體概念的抽象。,例如,圖形類,有圖形相關(guān)參數(shù),圖形面積計(jì)算,而面積因其形狀不同而各異,拓展,1,抽象類和接口,public,abstract,class,Graph,int,edgeNum,;,public,abstract,void,getArea,();,/,抽象方法,public,void,getParam

44、eter,(),/,默認(rèn)方法,class,Square,extends,Graph,public,Square(int,edge),this.edgeNum,=edge;,public,void,getArea,(),/calculate area of square,public,static,void,main(String,args,),Square,s,=,new,Square();,s.getArea,();,抽象類,子類,拓展,1,抽象類和接口,接口 (,interface,),接口比抽象的概念更進(jìn)了一步。你可以把一個接口看成是一個純的抽象類。它用于實(shí)現(xiàn),Java,中的多重繼承的結(jié)

45、構(gòu),。它定義了若干個抽象方法用以實(shí)現(xiàn)多重繼承的功能。,接口使用,interface,關(guān)鍵字聲明,其中方法默認(rèn)為,public abstract,即方法無實(shí)現(xiàn)代碼,且其中的變量聲明默認(rèn)為,static,(靜態(tài))和,final(,常量,),一般類實(shí)現(xiàn)接口使用關(guān)鍵字,implements,實(shí)現(xiàn)接口的類就必須實(shí)現(xiàn)接口中的所有方法,但是抽象類可以不用實(shí)現(xiàn)接口中的所有方法,一個類只可繼承于一個父類,但可實(shí)現(xiàn)多個接口,拓展,1,抽象類和接口(續(xù)),public,interface,driverMethod,public void methods();,public class car implements,

46、driverMethod,String category;,public car(String category)this.category=category;,public void methods(),System.out.println(this.category,+“,的方式是機(jī)動車輛駕駛”,),拓展,1,抽象類和接口,抽象類,接口,作用,作為公共父類為子類的擴(kuò)展提供基礎(chǔ),這里的擴(kuò)展包括了屬性上和行為上的,一般不考慮屬性,只考慮方法,使得子類可以自由地填補(bǔ)或者擴(kuò)展接口所定義的方法,結(jié)構(gòu),抽象方法,變量,具體方法(默認(rèn)方法),抽象方法,靜態(tài)常量,使用,不可實(shí)例化,可通過子類繼承,實(shí)現(xiàn)其中

47、的抽象方法,通過類實(shí)現(xiàn),且必須實(shí)現(xiàn)接口中的所有方法,不可實(shí)例化,但可聲明,繼承方式,子類可以繼承一個抽象類,實(shí)現(xiàn)類可以實(shí)現(xiàn)多個接口,拓展,1,抽象類和接口,接口的使用規(guī)則,用,interface,是在指定一個類必須要做什么,但不是規(guī)定它如何去做,.,一旦接口被定義,任何類都可以實(shí)現(xiàn)該接口,(,一個接口可以由任意類實(shí)現(xiàn),),而且一個類可以實(shí)現(xiàn)多個接口,.,接口類的訪問符:只有兩種,public,訪問符,或者默認(rèn)訪問符,.,當(dāng)沒有訪問修飾符時,則是默認(rèn)訪問范圍,即在包內(nèi)可以使用該接口,.,當(dāng)使用,public,訪問符時,則表明該接口類可以被任何代碼使用,.,語法規(guī)則,:,定義接口語法:,Publi

48、c,Inteface,接口名,Public void,方法名(參數(shù),1,,參數(shù),2,),;,拓展,1,抽象類和接口,實(shí)現(xiàn)接口語法,Public class,ImpClass,implements,接口,1,,接口,2,Public void,接口,1_,方法名(參數(shù),1,,參數(shù),2,), /,方法實(shí)現(xiàn)語句,Public void,接口,2_,方法名(參數(shù),1,,參數(shù),2,), /,方法實(shí)現(xiàn)語句,接口聲明方式,接口不是類,不可實(shí)例化,但可聲明,而后指向?qū)崿F(xiàn)類的對象,例如,:,定義一個接口名為,IMes,實(shí)現(xiàn)類名為,MyMessage,IMes,I_Mes,;,I_Mes,=new,MyMessa

49、ge,();,一個接口不能實(shí)現(xiàn)另一個接口,但它可以繼承多個其它接口,.,當(dāng)一個類實(shí)現(xiàn)一個繼承了另一個接口的接口時,它必須實(shí)現(xiàn)接口繼承鏈中定義的所有接口,.,拓展,1,抽象類和接口,接口在項(xiàng)目開發(fā)的應(yīng)用,在設(shè)計(jì)一套軟件系統(tǒng)的初期,可用接口來對一些基本數(shù)據(jù)元素的特性來進(jìn)行一些描述,再根據(jù)需要進(jìn)行不同的實(shí)現(xiàn)。,例如:課程案例中的用戶資料,有用戶名、密碼、以及權(quán)限三個屬性,獲取,/,設(shè)置用戶名、密碼、權(quán)限的方法,因此,可根據(jù)以上分析構(gòu)造與之對應(yīng)的接口,Public interface,IUser,Public String,getUserName,();,Public String,getUserPa

50、ssword,();,Public String,getUserGrant,();,Public void,setUserName(String,name);,Public void,setUserPassword(String,password);,Public void,setUserGrant(String,);,構(gòu)造用戶類來實(shí)現(xiàn)接口中的所有方法,案例,IUser.java,User.java,拓展,1,抽象類和接口,本課程案例項(xiàng)目“倉儲管理系統(tǒng)”中的類設(shè)計(jì),產(chǎn)品,Product,供應(yīng)商,Supplier,用戶,User,若利用接口如何設(shè)計(jì)?,利用接口設(shè)計(jì)倉儲管理系統(tǒng)中的“供應(yīng)商”類,創(chuàng)

51、建“計(jì)算機(jī)”抽象類,創(chuàng)建“筆記本”子類繼承之,且再創(chuàng)建“筆記本”的一個子類“上網(wǎng)本”,;,利用接口來實(shí)現(xiàn)第二個問題中的任務(wù),動手練習(xí),5,0,分鐘,小 結(jié),Java,語言是簡單的、面向?qū)ο蟮摹⑴c平臺無關(guān)的、安全穩(wěn)定的、高性能的、動態(tài)的、可分布的語言。,Java,虛擬機(jī),JVM(Java Virtual Machine),是一種可以運(yùn)行,Java,字節(jié)碼的假想的計(jì)算機(jī),它是,Java,平臺的核心。,Java,開發(fā)工具箱(,JDK,)是,SUN,的,Java,軟件包。,JDK,中包含有各種類庫幫助我們開發(fā),Java,應(yīng)用。,執(zhí)行,Java,程序步驟,(,1,)用,Javac,編譯器編譯,Java,源程序,生成,class,文件,Javac,(,2,)用,Java,解釋器解釋執(zhí)行,Java ,小 結(jié),(,續(xù),),面向?qū)ο蟾拍?抽象,封裝,繼承,多態(tài),Java,數(shù)據(jù)類型,基本數(shù)據(jù)類型,引用數(shù)據(jù)類型,null,Java,中常用類和包,字符串,數(shù)組,包裝類,

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


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