傳智播客劉意老師JAVA全面學(xué)習(xí)筆記(word文檔良心出品)_第1頁
傳智播客劉意老師JAVA全面學(xué)習(xí)筆記(word文檔良心出品)_第2頁
傳智播客劉意老師JAVA全面學(xué)習(xí)筆記(word文檔良心出品)_第3頁
傳智播客劉意老師JAVA全面學(xué)習(xí)筆記(word文檔良心出品)_第4頁
傳智播客劉意老師JAVA全面學(xué)習(xí)筆記(word文檔良心出品)_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

傳智播客傳智播客JAVA學(xué)習(xí)筆記第1階段基礎(chǔ)知識>計(jì)算機(jī)基址知識>」日丫,開發(fā)環(huán)境的搭建和應(yīng)用>進(jìn)制轉(zhuǎn)換>有符號數(shù)?表示法(原碼辰碼,海)>九年語法基砒(關(guān)鍵字,標(biāo)識存,注釋r常量?變里數(shù)據(jù)類空運(yùn)算符)>程序流程控制語句及其應(yīng)用(itswltchjonwhile)>函數(shù)及其應(yīng)用>數(shù)組及其應(yīng)用>水仙花,裴波納寒攵列,數(shù)據(jù)加密等經(jīng)強(qiáng)問題的詳解講斡.J/>第2階段面向?qū)ο?gt;面向?qū)τ了枷?gt;類與對象>類的組成>封裝及其應(yīng)用>繼承及其應(yīng)用>多志及其應(yīng)用>抽象類及其應(yīng)用>接口及其應(yīng)用>包r導(dǎo)包及具應(yīng)用>單例設(shè)計(jì)模式>荷單工廠模式和工廠方法模式,模板設(shè)計(jì)模式.JAVA

JAVA

學(xué)習(xí)路線第3階段Eclipse的使用和常用API>Eclipse的安裝和便用>>JavaAPI的介紹和使用>>字萬串類的靠見操作>正則表達(dá)式的使再>日期類的使用>隼臺今禁結(jié)構(gòu)及其使用>異常便系結(jié)構(gòu)及其便用>Fi后類的概述及其使用>I。流體系括構(gòu)及其使用A遞歸其法,裝飾設(shè)計(jì)模式,泛型的使用r渭強(qiáng)for循環(huán),可變參數(shù),靜態(tài)導(dǎo)入等特性的詳細(xì)講解.第4階段JavaSE高級>>多線程概述及其應(yīng)用>第線程的線程安全問題及解決方志>死罰問題A》筆注程的生產(chǎn)者消費(fèi)者可題>>線程組,淺程池問題>GUI的震述和基本使用>GUI中事件監(jiān)聽機(jī)制及適配器設(shè)計(jì)槿式>網(wǎng)絡(luò)編程概述及其應(yīng)用>UDP優(yōu)議發(fā)送和接收哉?>>TCPt辦以發(fā)送和:接收數(shù)據(jù)>>反射的概述及其應(yīng)用>>反的獲取類中的成員用吏用>>反射越過泛空檢亙>>反射運(yùn)行配置文件的內(nèi)容>>多線程群聊,聊天室的病號,文件上傳服務(wù)器,.莢力匚戟器.反射及代理。. /第一頁第一天1:計(jì)算機(jī)概述(了解)22:鍵盤功能鍵的認(rèn)識和快捷鍵(掌握)23:常見的DOS命令(掌握)34:Java語言概述(了解)35:JDK,JRE,JVM的作用及關(guān)系(掌握)36:JDK的下載,安裝,卸載(掌握)47:第一個(gè)程序:HelloWorld案例(掌握)48:常見的問題(掌握)59:path環(huán)境變量(掌握)510:classpath環(huán)境變量(理解)5第二天1:關(guān)鍵字(掌握)62:標(biāo)識符(掌握)63:注釋(掌握)74:常量(掌握)75:進(jìn)制轉(zhuǎn)換(了解)76:變量(掌握)87:數(shù)據(jù)類型(掌握)88:數(shù)據(jù)類型轉(zhuǎn)換(掌握)8第三天1:運(yùn)算符(掌握)102:鍵盤錄入(掌握)113:流程控制語句124:if語句(掌握)12第四天1:switch語句(掌握)142:循環(huán)語句(掌握)153:控制跳轉(zhuǎn)語句(掌握)17第五天1:方法(掌握)182:數(shù)組(掌握)19第六天1:二維數(shù)組(理解)232:兩個(gè)思考題(理解)233:面向?qū)ο螅ㄕ莆眨?3第七天第二頁1:成員變量和局部變量的區(qū)別(理解)252:類作為形式參數(shù)的問題?(理解)253:匿名對象(理解)254:封裝(理解)255:private關(guān)鍵字(掌握)256:this關(guān)鍵字(掌握)267:構(gòu)造方法(掌握)268:代碼:Students=newStudent()^了哪些事情?(?!解)279:面向?qū)ο蟮木毩?xí)題(掌握)27第八天1:如何制作幫助文檔(了解)282:通過JDK提供的API學(xué)習(xí)了Math類(掌握)283:代碼塊(理解)284:繼承(掌握)28第九天1:final關(guān)鍵字(掌握)302:多態(tài)(掌握)303:抽象類(掌握)324:接口(掌握)33第十天1:形式參數(shù)和返回值的問題(理解)352:包(理解)353:導(dǎo)包(掌握)354:權(quán)限修飾符(掌握)365:常見的修飾符(理解)366:內(nèi)部類(理解)37第十一天1:Eclipse的概述使用(掌握)402:API的概述(了解)403:Object類(掌握)40第十二天1:Scanner的使用(了解)412:String類的概述和使用(掌握)41第十三天1:StringBuffer(掌握)442:數(shù)組高級以及Arrays(掌握)44第三頁3:Integer(掌握)464:Character(T解)47第十四天1:正則表達(dá)式(理解)472:Math(掌握)493:Random伴解)494:System津握)495:BigInteger(理解)506:BigDecimal(理解)507:Date/DateFormat學(xué)握)508:Calenda甘握)51第十五天1:對象數(shù)組(掌握)522:集合(Collection)(掌握)523:集合(List)(掌握)55第十六天1:List的子類(掌握)572:泛型(掌握)583:增強(qiáng)for循環(huán)(掌握)584:靜態(tài)導(dǎo)入(了解)585:可變參數(shù)(掌握)596:練習(xí)(掌握)597:要掌握的代碼59第十七天1:登錄注冊案例(理解)602:Set集合(理解)603:Collection集合總結(jié)(掌握)604:針對Collection集合我們到底使用誰呢?(掌握)615:在集合中常見的數(shù)據(jù)結(jié)構(gòu)(掌握)61第十八天1:Map(掌握)622:Collections(理解)63第十九天1:異常(理解)642:File(掌握)65第二十天第四頁1:遞歸(理解)662:IO流(掌握)663:自學(xué)字符流第二十一天1:字符流(掌握)69第二十一天1:字符流(掌握)692:IO流小結(jié)(掌握)703:案例(理解練習(xí)一遍)71第二十二天1:登錄注冊IO版本案例(掌握)722:數(shù)據(jù)操作流(操作基本類型數(shù)據(jù)的流)(理解)723:內(nèi)存操作流(理解)724:打印流(掌握)725:標(biāo)準(zhǔn)輸入輸出流(理解)736:隨機(jī)訪問流(理解)737:合并流(理解)738:序列化流(理解)739:Properties陛解)7410:NIO(了解)74第二十三天1:多線程(理解)75第二十四天1:多線程(理解)772:設(shè)計(jì)模式(理解)77第二十五天1:如何讓Netbeans的東西Eclipse能訪問792:GUI(了解)79第二十六天1:網(wǎng)絡(luò)編程(理解)80第二十七天1:反射(理解)822:設(shè)計(jì)模式823:JDK新特性82第五頁傳智播客傳智播客JAVA學(xué)習(xí)筆記第第頁JAVA學(xué)習(xí)總結(jié)姓名:陳鑫第一天1:計(jì)算機(jī)概述(了解)(1)計(jì)算機(jī)(2)計(jì)算機(jī)硬件(3)計(jì)算機(jī)軟件系統(tǒng)軟件:window,linux,mac應(yīng)用軟件:qq,yy,飛秋(4)軟件開發(fā)(理解)軟件:是由數(shù)據(jù)和指令組成的。(計(jì)算器)開發(fā):就是把軟件做出來。如何實(shí)現(xiàn)軟件開發(fā)呢?就是使用開發(fā)工具和計(jì)算機(jī)語言做出東西來(5)語言自然語言:人與人交流溝通的計(jì)算機(jī)語言:人與計(jì)算機(jī)交流溝通的C,C++,C#,Java(6)人機(jī)交換圖形界面:操作方便只管DOS命令:需要記憶一些常見的命令2:鍵盤功能鍵的認(rèn)識和快捷鍵(掌握)(1)功能鍵的認(rèn)識tabshiftctrlaltwindos空格上下左右回車截圖(2)快捷鍵全選Ctrl+A復(fù)制Ctrl+C粘貼Ctrl+V剪切Ctrl+X撤銷Ctrl+Z保存Ctrl+S3:常見的DOS命令(掌握)(1)常見的如下盤符的切換d:回車目錄的進(jìn)入cdjavasecdjavase\day01\code目錄的回退cd..cd\清屏cls退出exit(2)其他的幾個(gè)(了解)創(chuàng)建目錄刪除目錄創(chuàng)建文件刪除文件顯示目錄下的內(nèi)容刪除帶內(nèi)容的目錄4:Java語言概述(了解)(1)Java語言的發(fā)展史Java之父JDK1.4.2JDK5JDK7⑵Java語言的特點(diǎn)有很多小特點(diǎn),重點(diǎn)有兩個(gè)開源,跨平臺(3)Java語言是跨平臺的,請問是如何保證的呢?網(wǎng)解)我們是通過翻譯的案例講解的。針對不同的操作系統(tǒng),提高不同的jvm來實(shí)現(xiàn)的。(4)Java語言的平臺JavaSEJavaME--AndroidJavaEE5:JDK,JRE,JVM的作用及關(guān)系(掌握)⑴作用JVM:保證Java語言跨平臺JRE:Java程序的運(yùn)行環(huán)境JDK:Java程序的開發(fā)環(huán)境(2)關(guān)系JDK:JRE+工具JRE:JVM+類庫6:JDK的下載,安裝,卸載(掌握)(1)下載到官網(wǎng)。A:也可以到百度搜索即可。B:我給你。(2)安裝A:綠色版 解壓就可以使用B:安裝版必須一步一步的安裝,一般只要會點(diǎn)擊下一步即可汪忠:建議所有跟開發(fā)相關(guān)的軟件都不要安裝在有中文或者空格的目錄下。⑶卸載A:綠色版直接刪除文件夾B:安裝版a:控制面板--添加刪除程序b:通過專業(yè)的軟件卸載工具。(比如360的軟件管家卸載)7:第一個(gè)程序:HelloWorld案例(掌握)classHelloWorld{publicstaticvoidmain(String口args){System.out.println("HelloWorld");}}(1)程序解釋:A:Java程序的最基本單位是類,所以我們要定義一個(gè)類。格式:class類名舉例:classHelloWorldB:在類中寫內(nèi)容的時(shí)候,用大括號括起來。C:Java程序要想執(zhí)行,必須有main方法。格式:publicstaticvoidmain(String口args)D:要指向那些東西呢,也用大括號括起來。E:你要做什么呢?今天我們僅僅做了一個(gè)簡單的輸出格式:System.out.println("HelloWorld");注意:””里面的內(nèi)容是可以改動的。⑵Java程序的開發(fā)執(zhí)行流程:A:編寫java源程序(.java)B:通過javac命令編譯生成.class文件C:通過java命令運(yùn)行.class文件8:常見的問題(掌握)(1)擴(kuò)展名被隱藏如何找到:工具--文件夾選項(xiàng)--查看-去除隱藏?cái)U(kuò)展名的那個(gè)勾勾(2)我要求文件名稱和類名一致。實(shí)際上不這樣做也是可以的。但是,注意:javac后面跟的是文件名+擴(kuò)展名java后面跟的類名不帶擴(kuò)展名(3)Java語言嚴(yán)格區(qū)分大小寫,請注意。還有就是單詞不要寫錯(cuò)了。(4)見到非法字符:\65307肯定是中文問題。我們寫程序要求標(biāo)點(diǎn)符號必須全部是英文狀態(tài)。(5)括號的配對問題。一般來說,括號都是成對出現(xiàn)的。(6)遇到在類HelloWorld中找不到主方法,請將主方法定義為肯定是主方法的格式問題。9:path環(huán)境變量(掌握)(1)path環(huán)境變量的作用保證javac命令可以在任意目錄下運(yùn)行。同理可以配置qq等(2)path配置的兩種方案:A:方案1(了解)B:方案2找到環(huán)境變量的位置,在系統(tǒng)變量里面新建:變量名:JAVA_HOME變量化D:\develop\Java\jdk170_60修改:變量名:Path變量值:%JAVA_HOME%\bin;以前的內(nèi)容10:classpat用境變量(理解)(1)classpath環(huán)境變量的作用保證class文件可以在任意目錄下運(yùn)行(2)classpath環(huán)境變量的配置找到環(huán)境變量的位置,在系統(tǒng)變量里面新建:變量名:classpath變量值:E:\JavaSE\day01\code\HelloWorld案例第二天1:關(guān)鍵字(掌握)(1)被Java語言賦予特定含義的單詞(2)特點(diǎn):全部小寫。(3)注意事項(xiàng):A:goto和const作為保留字存在。B:類似于Notepad++這樣的高級記事本會對關(guān)鍵字有特殊顏色標(biāo)記2:標(biāo)識符(掌握)(1)就是給類,接口,方法,變量等起名字的字符序列(2)組成規(guī)則:A:英文大小寫字母B:數(shù)字協(xié)和(3)注意事項(xiàng):A:不能以數(shù)字開頭B:不能是java中的關(guān)鍵字C:區(qū)分大小寫(4)常見的命名規(guī)則(見名知意)A:包 全部小寫單級包:小寫舉例:liuyi,com多級包:小寫,并用.隔開舉例:cn.itcast,com.baiduB:類或者接口一個(gè)單詞:首字母大寫舉例:Student,Demo多個(gè)單詞:每個(gè)單詞首字母大寫舉例:HelloWorld,StudentNameC:方法或者變量一個(gè)單詞:首字母小寫舉例:name,main多個(gè)單詞:從第二個(gè)單詞開始,每個(gè)單詞首字母大寫舉例:studentAge,showAllNames()D:常量全部大寫一個(gè)單詞:大寫舉例:PI多個(gè)單詞:大寫,并用隔開舉例:STUDENT_MAX_AGE3:注釋(掌握)(1)就是對程序進(jìn)行解釋說明的文字(2)分類:A:單行注釋//B:多行注釋/**/C:文檔注釋(后面講)/***/(3)把HelloWorld案例寫了一個(gè)帶注釋的版本。后面我們要寫一個(gè)程序的過程。需求:分析:實(shí)現(xiàn):代碼體現(xiàn):(4)注釋的作用A:解釋說明程序,提高了代碼的閱讀性。B:可以幫助我們調(diào)試程序。后面我們會講解一個(gè)更高端的一個(gè)調(diào)試工具4:常量(掌握)(1)在程序執(zhí)行的過程中,其值不發(fā)生改變的量(2)分類:A:字面值常量B:自定義常量(后面講)(3)字面值常量A:字符串常量"hello"B:整數(shù)常量12,23C:小數(shù)常量12.345D:字符常量'a','A','0'E:布爾常量true,falseF:空常量null(后面講)(4)在Java中針對整數(shù)常量提供了四種表現(xiàn)形式A:二進(jìn)制 由0,1組成。以0b開頭。B:八進(jìn)制 由0,1,…7組成。以0開頭。C:十進(jìn)制 由0,1,…9組成。整數(shù)默認(rèn)是十進(jìn)制。D:十六進(jìn)制由0,1,…9,a,b,c,d,e,f依小寫均可)組成。以0x開頭5:進(jìn)制轉(zhuǎn)換(了解)(1)其他進(jìn)制到十進(jìn)制系數(shù):就是每一個(gè)位上的數(shù)值基數(shù):x進(jìn)制的基數(shù)就是x權(quán):對每一個(gè)位上的數(shù)據(jù),從右,并且從0開始編號,對應(yīng)的編號就是該數(shù)據(jù)的權(quán)。結(jié)果:系數(shù)*基數(shù)A權(quán)次幕之和(2)十進(jìn)制到其他進(jìn)制除基取余,直到商為0,余數(shù)反轉(zhuǎn)。(3)進(jìn)制轉(zhuǎn)換的快速轉(zhuǎn)換法A:十進(jìn)制和二進(jìn)制間的轉(zhuǎn)換8421碼。B:二進(jìn)制到八進(jìn)制,十六進(jìn)制的轉(zhuǎn)換6:變量(掌握)(1)在程序的執(zhí)行過程中,其值在某個(gè)范圍內(nèi)可以發(fā)生改變的量(2)變量的定義格式:A:數(shù)據(jù)類型變量名=初始化值;B:數(shù)據(jù)類型變量名;變量名=初始化值;7:數(shù)據(jù)類型(掌握)(1)Java是一種強(qiáng)類型語言,針對每種數(shù)據(jù)都提供了對應(yīng)的數(shù)據(jù)類型。(2)分類:A:基本數(shù)據(jù)類型:4類8種B:引用數(shù)據(jù)類型:類,接口,數(shù)組。(3)基本數(shù)據(jù)類型A:整數(shù) 占用字節(jié)數(shù)TOC\o"1-5"\h\zbyte 1short 2int 4long 8B:浮點(diǎn)數(shù)float 4double 8C:字符char2D:布爾boolean1汪忠:整數(shù)默認(rèn)是int類型,浮點(diǎn)數(shù)默認(rèn)是double。長整數(shù)要加L或者l。單精度的浮點(diǎn)數(shù)要加F或者f8:數(shù)據(jù)類型轉(zhuǎn)換(掌握)(1)boolean類型不參與轉(zhuǎn)換(2)默認(rèn)轉(zhuǎn)換A:從小到大B:byte,short,char--int--long--float--doubleC:byte,short,char之間不相互轉(zhuǎn)換,直接轉(zhuǎn)成int類型參與運(yùn)算(3)強(qiáng)制轉(zhuǎn)換A:從大到小B:可能會有精度的損失,一般不建議這樣使用。C:格式:目標(biāo)數(shù)據(jù)類型變量名=(目標(biāo)數(shù)據(jù)類型)(被轉(zhuǎn)換的數(shù)據(jù));⑷思考題和面試題:A:下面兩種方式有區(qū)別嗎?floatfl=12.345f;floatf2=(float)12.345;B:下面的程序有問題嗎,如果有,在哪里呢?bytebl=3;byteb2=4;byteb3=b1+b2;byteb4=3+4;C:下面的操作結(jié)果是什么呢?byteb=(byte)130;D:字符參與運(yùn)算是查找ASCII里面的值TOC\o"1-5"\h\z'a' 97'A' 65'0' 48System.out.println('a');System.out.println('a'+1);E:字符串參與運(yùn)算這里其實(shí)是字符串的連接System.out.println("hello"+'a'+1);System.out.println('a'+1+"hello");System.out.println("5+5="+5+5);System.out.println(5+5+"=5+5");第三天1:運(yùn)算符(掌握)(1)算術(shù)運(yùn)算符A:+,-,*,/,%,++,--B:+的用法a:力口法b:正號c:字符串連接符C/和%的區(qū)別數(shù)據(jù)做除法操作的時(shí)候,/取得是商,%取得是余數(shù)D:++和—的用法a:他們的作用是自增或者自減b:使用**單獨(dú)使用放在操作數(shù)據(jù)的前面和后面效果一樣。a++或者++a效果一樣。**參與操作使用放在操作數(shù)的前面:先自增或者自減,再參與操作inta=10;intb=++a;放在操作數(shù)的后面:先參與操作,再自增或者自減inta=10;intb=a++;(2)賦值運(yùn)算符A:=,+=,-=,*=,/=,%=等Bk叫做賦值運(yùn)算符,也是最基本的賦值運(yùn)算符intx=10;把10賦值給int類型的變量x。C:擴(kuò)展的賦值運(yùn)算符的特點(diǎn)隱含了自動強(qiáng)制轉(zhuǎn)換。面試題:shorts=1;s=s+1;shorts=1;s+=1;請問上面的代碼哪個(gè)有問題?(3)比較運(yùn)算符A:==,!=,>,>=,<,<=B:無論運(yùn)算符兩端簡單還是復(fù)雜最終結(jié)果是 boolean類型。C:千萬不要把==寫成了=⑷邏輯運(yùn)算符A:&,|F,!,&&,||B:邏輯運(yùn)算符用于連接boolean類型的式子C:結(jié)論&:有false則false|:有true則trueA:相同則false,不同則true。情侶關(guān)系。!:非true]?false,非false則true&&:結(jié)果和&是一樣的,只不過有短路效果。左邊是false,右邊不執(zhí)||:結(jié)果和|是一樣的,只不過有短路效果。左邊是 true,右邊不執(zhí)行⑸位運(yùn)算符(了解)A:a的特殊用法一個(gè)數(shù)據(jù)針對另一個(gè)數(shù)據(jù)位異或兩次,該數(shù)不變B:面試題a:請實(shí)現(xiàn)兩個(gè)變量的交換**采用第三方變量**用位異或運(yùn)算符左邊a,b,a右邊aAbb:請用最有效率的方式計(jì)算出2乘以8的結(jié)果2<<3(6)三元運(yùn)算符A:格式比較表達(dá)式?表達(dá)式1:表達(dá)式2;B:執(zhí)行流程:首先計(jì)算比較表達(dá)式的值,看是true還是false。如果是true,表達(dá)式1就是結(jié)果。如果是false,表達(dá)式2就是結(jié)果。C:案例:a:比較兩個(gè)數(shù)據(jù)是否相等b:獲取兩個(gè)數(shù)據(jù)中的最大值c:獲取三個(gè)數(shù)據(jù)中的最大值2:鍵盤錄入(掌握)(1)實(shí)際開發(fā)中,數(shù)據(jù)是變化的,為了提高程序的靈活性,我們加入鍵盤錄入⑵如何實(shí)現(xiàn)呢?目前就記住A:導(dǎo)包importjava.util.Scanner;位置:在class的上邊B:創(chuàng)建對象Scannersc=newScanner(System.in);C:獲取數(shù)據(jù)intx=sc.nextInt();(3)把三元運(yùn)算符的案例加入鍵盤錄入改進(jìn)。3:流程控制語句(1)順序結(jié)構(gòu)從上往下,依次執(zhí)行(2)選擇結(jié)構(gòu)按照不同的選擇,執(zhí)行不同的代碼(3)循環(huán)結(jié)構(gòu)做一些重復(fù)的代碼4:if語句(掌握)(1)三種格式A:格式1if(比較表達(dá)式){語句體;}執(zhí)行流程:判斷比較表達(dá)式的值,看是true還是false如果是true,就執(zhí)行語句體如果是false,就不執(zhí)行語句體B:格式2if(比較表達(dá)式){語句體1;}else{語句體2;}執(zhí)行流程:判斷比較表達(dá)式的值,看是true還是false如果是true,就執(zhí)行語句體1如果是false,就執(zhí)行語句體2C:格式3if(比較表達(dá)式1){語句體1;}elseif(比較表達(dá)式2){語句體2;}else{語句體n+1;執(zhí)行流程:判斷比較表達(dá)式1的值,看是true還是false如果是true,就執(zhí)行語句體1如果是false,就繼續(xù)判斷比較表達(dá)式2的值,看是true還是false如果是true,就執(zhí)行語句體2如果是false,就繼續(xù)判斷比較表達(dá)式3的值,看是true還是false...如果都不滿足,就執(zhí)行語句體n+1(2)注意事項(xiàng)A:比較表達(dá)式無論簡單還是復(fù)雜,結(jié)果是 boolean類型B:if語句控制的語句體如果是一條語句,是可以省略大括號的;如果是多條,不能省略。建議:永遠(yuǎn)不要省略。C:一般來說,有左大括號,就沒有分號,有分號,就沒有左大括號。D:else后面如果沒有if,是不會出現(xiàn)比較表達(dá)式的。E:三種if語句其實(shí)都是一個(gè)語句,只要有一個(gè)執(zhí)行,其他的就不再執(zhí)行。(3)案例:A:比較兩個(gè)數(shù)是否相等B:獲取兩個(gè)數(shù)中的最大值C:獲取三個(gè)數(shù)中的最大值(if語句的嵌套)D:根據(jù)成績輸出對應(yīng)的等級E:根據(jù)月份,輸出對應(yīng)的季節(jié)F:根據(jù)x計(jì)算對應(yīng)y的值并輸出(4)三元運(yùn)算符和if語句第二種格式的關(guān)系所有的三元運(yùn)算符能夠?qū)崿F(xiàn)的,if語句的第二種格式都能實(shí)現(xiàn)。反之不成立。如果if語句第二種格式控制的語句體是輸出語句,就不可以。因?yàn)槿\(yùn)算符是一個(gè)運(yùn)算符,必須要有一個(gè)結(jié)果返回,不能是一個(gè)輸出語句。第四天1:switch語句(掌握)⑴格式:switch(表達(dá)式){case值1:語句體1;break;case值2:語句體2;break;default:語句體n+1;break;}格式解釋說明:switch:說明這是switch語句。表達(dá)式:可以是byte,short,int,charJDK5以后可以是枚舉JDK7以后可以是字符串case后面的值就是要和表達(dá)式進(jìn)行比較的值break:表示程序到這里中斷,跳出switch語句default:如果所有的情況都不匹配,就執(zhí)行這里,相當(dāng)于if語句中的else(2)面試題switch語句的表達(dá)式可以是byte嗎?可以是long嗎?可以是String嗎?可以,不可以,JDK7以后可以(3)執(zhí)行流程:A:首先計(jì)算表達(dá)式的值B:和每一個(gè)case進(jìn)行匹配,如果有就執(zhí)行對應(yīng)的語句體,看到break就結(jié)束。C:如果沒有匹配,就執(zhí)行default的語句體n+1。(4)注意事項(xiàng):A:case后面只能是常量,不能是變量,而且,多個(gè) case后面的值不能出現(xiàn)相同的B:default可以省略嗎?可以省略,但是不建議,因?yàn)樗淖饔檬菍Σ徽_的情況給出提示。特殊情況:case就可以把值固定。A,B,C,DC:break可以省略嗎?可以省略,但是結(jié)果可能不是我們想要的。會出現(xiàn)一個(gè)現(xiàn)象:case穿透。最終我們建議不要省略D:default一定要在最后嗎?不是,可以在任意位置。但是建議在最后。E:switch語句的結(jié)束條件a:遇至Ubreak就結(jié)束了b:執(zhí)行到末尾就結(jié)束了(5)案例:A:鍵盤錄入一個(gè)數(shù)字(1-7),輸出對應(yīng)的星期幾。B:單項(xiàng)選擇題C:鍵盤錄入一個(gè)字符串的問題Strings=sc.nextLine();D:根據(jù)給定的月份,輸出對應(yīng)的季節(jié)(6)if語句和switch語句各自的場景A:if針對boolean類型的判斷針對一個(gè)范圍的判斷針對幾個(gè)常量的判斷B:switch針對幾個(gè)常量的判斷2:循環(huán)語句(掌握)(1)有三種:for,while,do…while(2)for循環(huán)語句A:格式for(初始化語句;判斷條件語句才空制條件語句){循環(huán)體語句;}執(zhí)行流程:a執(zhí)行初始化語句b:執(zhí)行判斷條件語句如果這里是true,就繼續(xù)如果這里是false,循環(huán)就結(jié)束c:執(zhí)行循環(huán)體語句d:執(zhí)行控制條件語句e:回到bB:注意事項(xiàng)a:判斷條件語句無論簡單還是復(fù)雜,結(jié)果是boolean類型b:循環(huán)體語句如果是一條,可以省略大括號,但是不建議c:有分號就沒有左大括號,有左大括號就沒有分號C:案例a:輸出10次HelloWorldb:輸出1-10的數(shù)據(jù)c:輸出10-1的數(shù)據(jù)d:求1-10的和e:求1-100的和,求1-100的偶數(shù)和,求1-100的奇數(shù)和f:求5的階乘g:在控制臺打印水仙花數(shù)h:統(tǒng)計(jì)水仙花個(gè)數(shù)i:改進(jìn)版的回文數(shù)一個(gè)五位數(shù)個(gè)位=萬位十位=千位個(gè)位+十位+千位十萬位二百位j:統(tǒng)計(jì)1-1000之間同時(shí)滿足如下條件的數(shù)據(jù)有多少個(gè)x%3==2x%5==3x%7==2(3)while循環(huán)A:基本格式while(判斷條件語句){循環(huán)體語句;}擴(kuò)展格式:初始化語句;while(判斷條件語句){循環(huán)體語句;控制條件語句;}通過查看這個(gè)格式,我們就知道while循環(huán)可以和for循環(huán)等價(jià)轉(zhuǎn)換B:while的練習(xí)把for語句的練習(xí)用while改進(jìn)C:for和while的區(qū)別a:使用上的區(qū)別for語句的那個(gè)控制條件變量,在循環(huán)結(jié)束后不能在使用了。而while的可以繼續(xù)使用。b:理解上的區(qū)別for適合于一個(gè)范圍的判斷while適合次數(shù)不明確的舉例:吃葡萄D:案例:a:珠穆朗瑪峰問題b:小芳存錢問題(break以后才能做)(4)do…while循環(huán)A:基本格式do{循環(huán)體語句;}while(判斷條件語句);擴(kuò)展格式:初始化語句;do{循環(huán)體語句;控制條件語句;}while(判斷條件語句);通過查看格式,我們就可以看出其實(shí)三種循環(huán)的格式可以是統(tǒng)一的。B:三種循環(huán)的區(qū)別a:do…while循環(huán)至少執(zhí)行一次循環(huán)體b:for和while必須先判斷條件是否是true,然后后才能決定是否執(zhí)行循環(huán)體(5)循環(huán)使用的注意事項(xiàng)(死循環(huán))A:一定要注意修改控制條件,否則容易出現(xiàn)死循環(huán)。B:最簡單的死循環(huán)格式a:while(true){…}b:for(;;){}3:控制跳轉(zhuǎn)語句(掌握)(1)break:中斷的意思A:用在循環(huán)和switch語句中,離開此應(yīng)用場景無意義。B:作用a:跳出單層循環(huán)b:跳出多層循環(huán),需要標(biāo)簽語句的配合(2)continue:繼續(xù)A:用在循環(huán)中,離開此應(yīng)用場景無意義。B:作用a:跳出單層循環(huán)的一次,可以繼續(xù)下一次C:填空題for(intx=1;x<=10;x++){if(x%3==0){//補(bǔ)齊代碼}System.out.println("Java基礎(chǔ)班");}如何讓控制臺輸出2次:Java基礎(chǔ)班如何讓控制臺輸出7次:Java基礎(chǔ)班如何讓控制臺輸出13次:Java基礎(chǔ)班(3)return:返回A:用于結(jié)束方法的,后面還會在繼續(xù)講解和使用。B:一旦遇到return,程序就不會在繼續(xù)往后執(zhí)行。第五天1:方法(掌握)(1)方法:就是完成特定功能的代碼塊。注意:在很多語言里面有函數(shù)的定義,而在Java中,函數(shù)被稱為方法。(2)格式:修飾符返回值類型方法名(參數(shù)類型參數(shù)名1,參數(shù)類型參數(shù)名2…){方法體語句;return返回值;}修飾符:目前就用publicstatic。后面再詳細(xì)講解其他修飾符返回值類型:就是功能結(jié)果的數(shù)據(jù)類型方法名:就是起了一個(gè)名字,方便我們調(diào)用該方法。參數(shù)類型:就是參數(shù)的數(shù)據(jù)類型參數(shù)名:就是變量參數(shù)分類:實(shí)參:實(shí)際參與運(yùn)算的數(shù)據(jù)形參:方法上定義的,用于接收實(shí)際參數(shù)的變量方法體語句:就是完成功能的代碼塊return:結(jié)束方法返回值:就是功能的結(jié)果,由return帶給調(diào)用者。⑶兩個(gè)明確:返回值類型:結(jié)果的數(shù)據(jù)類型參數(shù)列表:參數(shù)的個(gè)數(shù)及對應(yīng)的數(shù)據(jù)類型(4)方法調(diào)用A:有明確返回值的方法a:單獨(dú)調(diào)用,沒有意義b:輸出調(diào)用,不是很好,因?yàn)槲铱赡苄枰唤Y(jié)果進(jìn)行進(jìn)一步的操作。但是講課一般我就用了。c:賦值調(diào)用,推薦方案B:void類型修飾的方法a:單獨(dú)調(diào)用(5)案例:A:求和方案B:獲取兩個(gè)數(shù)中的較大值C:比較兩個(gè)數(shù)據(jù)是否相同D:獲取三個(gè)數(shù)中的最大值E:輸出m行n列的星形F:輸出nn乘法表(6)方法的注意事項(xiàng)A:方法不調(diào)用不執(zhí)行B:方法之間是平級關(guān)系,不能嵌套定義C:方法定義的時(shí)候,參數(shù)是用,隔開的D:方法在調(diào)用的時(shí)候,不用在傳遞數(shù)據(jù)類型E:如果方法有明確的返回值類型,就必須有 return語句返回(7)方法重載在同一個(gè)類中,方法名相同,參數(shù)列表不同。與返回值無關(guān)。參數(shù)列表不同:參數(shù)的個(gè)數(shù)不同。參數(shù)的對應(yīng)的數(shù)據(jù)類型不同。(8)方法重載案例不同的類型的多個(gè)同名方法的比較。2:數(shù)組(掌握)(1)數(shù)組:存儲同一種數(shù)據(jù)類型的多個(gè)元素的容器。(2)特點(diǎn):每一個(gè)元素都有編號,從0開始,最大編號是長度-1編號的專業(yè)叫法:索引(3)定義格式A:數(shù)據(jù)類型口數(shù)組名;B:數(shù)據(jù)類型數(shù)組名口;推薦是用A方式,B方法就忘了吧但是要能看懂(4)數(shù)組的初始化A:動態(tài)初始化只給長度,系統(tǒng)給出默認(rèn)值舉例:int口arr=newint[3];B:靜態(tài)初始化給出值,系統(tǒng)決定長度舉例:int口arr=newint[]{1,2,3};簡化版:int口arr={1,2,3};⑸Java的內(nèi)存分配A:棧存儲局部變量B:堆存儲所有new出來的C:方法區(qū)(面向?qū)ο蟛糠衷敿?xì)講解)D:本地方法區(qū)(系統(tǒng)相關(guān))E:寄存器(CPU使用)汪忠:a:局部變量在方法定義中或者方法聲明上定義的變量b:棧內(nèi)存和堆內(nèi)存的區(qū)別棧:數(shù)據(jù)使用完畢,就消失。堆:每一個(gè)new出來的東西都有地址每一個(gè)變量都有默認(rèn)值byte,short,int,long0float,double0.0char'\u0000'booleanfalse引用類型null數(shù)據(jù)使用完畢后,在垃圾回收器空閑的時(shí)候回收(6)數(shù)組內(nèi)存圖A:一個(gè)數(shù)組B:二個(gè)數(shù)組C:三個(gè)數(shù)組(兩個(gè)棧變量指向同一個(gè)堆內(nèi)存)(7)數(shù)組的常見操作A:遍歷方式1:publicstaticvoidprintArray(int口arr){for(intx=0;x<arr.length;x++){System.out.println(arr[x]);}}方式2:publicstaticvoidprintArray(int口arr){System.out.print("[");for(intx=0;x<arr.length;x++){if(x==arr.length-1){System.out.println(arr[x]+"]");}else{System.out.println(arr[x]+",");}}}B:最值最大值:publicstaticintgetMax(int口arr){intmax=arr[0];for(intx=1;x<arr.length;x++){if(arr[x]>max){max=arr[x];}}returnmax;}最小值:publicstaticintgetMin(int口arr){intmin=arr[0];for(intx=1;x<arr.length;x++){if(arr[x]<min){min=arr[x];}}returnmin;}C:逆序方式1:publicstaticvoidreverse(int口arr){for(intx=0;x<arr.length/2;x++){inttemp=arr[x];arr[x]=arr[arr.length-1-x];arr[arr.length-1-x]=temp;}}方式2:publicstaticvoidreverse(int口arr){for(intstart=0,end=arr.length-1;start<=end;start++,end--){inttemp=arr[start];arr[start]=arr[end];arr[end]=temp;}}D:查表publicstaticStringgetString(String口strArray,intindex){returnstrArray[index];}E:基本查找方式1:publicstaticintgetIndex(int口arr,intvalue){for(intx=0;x<arr.length;x++){if(arr[x]==value){returnx;}}return-1;方式2:publicstaticintgetIndex(int口arr,intvalue){intindex=-1;for(intx=0;x<arr.length;x++){if(arr[x]==value){index=x;break;}}returnindex;}第六天1:二維數(shù)組(理解)(1)元素是一維數(shù)組的數(shù)組。(2)格式:A:數(shù)據(jù)類型叩數(shù)組名B:數(shù)據(jù)類型叩數(shù)組名C:數(shù)據(jù)類型叩數(shù)組名D:數(shù)據(jù)類型叩數(shù)組名⑶案例(掌握):A:二維數(shù)組的遍歷B:二維數(shù)組的求和C:楊輝三角形=new數(shù)據(jù)類型[m][n];=new數(shù)據(jù)類型[m]口;=new數(shù)據(jù)類型叩{{...},{...},{...}};={{...},{...},{...}};2:兩個(gè)思考題(理解)(1)Java中的參數(shù)傳遞問題Java中只有值傳遞。基本類型:形式參數(shù)的改變不影響實(shí)際參數(shù)引用類型:形式參數(shù)的改變直接影響實(shí)際參數(shù)(2)數(shù)據(jù)加密問題綜合的小案例。3:面向?qū)ο?掌握)(1)面向?qū)ο竺嫦驅(qū)ο笫腔诿嫦蜻^程的編程思想(2)面向?qū)ο蟮乃枷胩攸c(diǎn)A:是一種更符合我們思考習(xí)慣的思想B:把復(fù)雜的事情簡單化C:讓我們從執(zhí)行者變成了指揮者舉例:買電腦洗衣服做飯萬事萬物皆對象(3)把大象裝進(jìn)冰箱(理解)A:面向過程實(shí)現(xiàn)B:面向?qū)ο髮?shí)現(xiàn)注意:如何讓我們的操作更符合面向?qū)ο笏枷肽??A:有哪些類B:每個(gè)類有哪些成員C:類與類的關(guān)系(4)類與對象A:現(xiàn)實(shí)世界的事物屬性 事物的基本描述行為事物的功能B:Java語言中最基本的單位是類。所以,我們要用類來體現(xiàn)事物C:類成員變量事物屬性成員方法事物行為D:類:是一組相關(guān)的屬性和行為的集合。是一個(gè)抽象的概念。對象:是該類事物的具體存在,是一個(gè)具體的實(shí)例。 (對象)舉例:學(xué)生:類班長:對象⑸類的定義及使用A:類的定義成員變量 定義格式和以前一樣,就是位置不同,在類中,方法外。成員方法 定義格式和以前一樣,就是去掉了static。B:使用類的內(nèi)容a:創(chuàng)建對象?格式類名對象名=new類名();b:如何使用成員變量和成員方法呢對象名.成員變量對象名.成員方法()(6)案例:A:學(xué)生類的定義和使用B:手機(jī)類的定義和使用(7)內(nèi)存圖A:一個(gè)對象的內(nèi)存圖B:二個(gè)對象的內(nèi)存圖C:三個(gè)對象的內(nèi)存圖(8)Java程序的開發(fā),設(shè)計(jì)和特征A:開發(fā):就是不斷的創(chuàng)建對象,通過對象調(diào)用功能B:設(shè)計(jì):就是管理和維護(hù)對象間的關(guān)系C:特征a:封裝b:繼承c:多態(tài)第七天1:成員變量和局部變量的區(qū)別(理解)(1)在類中的位置不同成員變量:類中方法外局部變量:方法定義中或者方法聲明上(2)在內(nèi)存中的位置不同成員變量:在堆中局部變量:在棧中(3)生命周期不同成員變量:隨著對象的創(chuàng)建而存在,隨著對象的消失而消失局部變量:隨著方法的調(diào)用而存在,隨著方法的調(diào)用完畢而消失(4)初始化值不同成員變量:有默認(rèn)值局部變量:沒有默認(rèn)值,必須定義,賦值,然后才能使用2:類作為形式參數(shù)的問題?(理解)(1)如果你看到一個(gè)方法需要的參數(shù)是一個(gè)類名,就應(yīng)該知道這里實(shí)際需要的是一個(gè)具體的對象。3:匿名對象(理解)(1)沒有名字的對象(2)應(yīng)用場景A:調(diào)用方法,僅僅只調(diào)用一次的時(shí)候。b:可以作為實(shí)際參數(shù)傳遞。4:封裝(理解)(1)隱藏實(shí)現(xiàn)細(xì)節(jié),提供公共的訪問方式(2)好處:A:隱藏實(shí)現(xiàn)細(xì)節(jié),提供公共的訪問方式B:提高代碼的復(fù)用性C:提高代碼的安全性(3)設(shè)計(jì)原則把不想讓外界知道的實(shí)現(xiàn)細(xì)節(jié)給隱藏起來,提供公共的訪問方式(4)private是封裝的一種體現(xiàn)。封裝:類,方法,private修飾成員變量5:private關(guān)鍵字(掌握)(1)私有的意義,可以修飾成員變量和成員方法(2)特點(diǎn):被private修飾的后的成員只能在本類中被訪問(3)private的應(yīng)用:以后再寫一個(gè)類的時(shí)候:把所有的成員變量給private了提供對應(yīng)的getXxx()/setXxx()方法6:this關(guān)鍵字(掌握)(1)代表當(dāng)前類的引用對象記?。耗膫€(gè)對象調(diào)用方法,該方法內(nèi)部的this就代表那個(gè)對象(2)this的應(yīng)用場景:A:解決了局部變量隱藏成員變量的問題B:其實(shí)this還有其他的應(yīng)用,明天講解。7:構(gòu)造方法(掌握)(1)作用:用于對對象的數(shù)據(jù)進(jìn)行初始化(2)格式:A:方法名和類名相同B:沒有返回值類型,連void都不能有C:沒有返回值思考題:構(gòu)造方法中可不可以有return語句呢?可以。而是我們寫成這個(gè)樣子就OK了:return;其實(shí),在任何的void類型的方法的最后你都可以寫上:return;(3)構(gòu)造方法的注意事項(xiàng)A:如果我們沒寫構(gòu)造方法,系統(tǒng)將提供一個(gè)默認(rèn)的無參構(gòu)造方法B:如果我們給出了構(gòu)造方法,系統(tǒng)將不再提供默認(rèn)構(gòu)造方法如果這個(gè)時(shí)候,我們要使用無參構(gòu)造方法,就必須自己給出。推薦:永遠(yuǎn)手動自己給出無參構(gòu)造方法。⑷給成員變量賦值的方式A:setXxx()B:帶參構(gòu)造方法⑸標(biāo)準(zhǔn)案例classStudent{privateStringname;privateintage;publicStudent(){}publicStudent(Stringname,intage){=name;this.age=age;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}publicintgetAge(){

returnage;}publicvoidsetAge(intage){this.age=age;}}測試:classStudentDemo{publicstaticvoidmain(String口args){//方式1Students1=newStudent();s1.setName(林青霞");s1.setAge(27);System.out.println(s1.getName()+""+s1.getAge());//方式2Students2=newStudent網(wǎng)意”,30);System.out.println(s2.getName()+""+s2.getAge());}}8:代碼:Students=newStudent();(了哪些事情?(理解)(1)把Student.class文件加載到而存(2)在棧內(nèi)存為s開辟空間(3)在堆內(nèi)存為學(xué)生對象申請空間(4)給學(xué)生的成員變量進(jìn)行默認(rèn)初始化。null,0(5)給學(xué)生的成員變量進(jìn)行顯示初始化。林青霞,27(6)通過構(gòu)造方法給成員變量進(jìn)行初始化。劉意,30(7)對象構(gòu)造完畢,把地址賦值給 s變量9:面向?qū)ο蟮木毩?xí)題(掌握)(1)標(biāo)準(zhǔn)的手機(jī)類的定義和測試(2)Demo類有求和方法,Test類進(jìn)行測試。什么時(shí)候定義成員變量?當(dāng)該變量是用來描述一個(gè)類的時(shí)候。(3)長方形案例(4)員工案例(5)MyMath案例(自己提供加減乘除并測試)第八天1:如何制作幫助文檔(了解)(1)寫一個(gè)類(2)加入文檔注釋⑶通過javadoc工具生成即可javadoc-d目錄-author-versionArrayTool.java2:通過JDK提供的API學(xué)習(xí)了Math類(掌握)(1)API(ApplicationProgrammingInterface)應(yīng)用程序編程接口(幫助文檔)(2)如何使用呢?請參照day08\code\02_J口何使用JDK提供的幫助文檔如何使用幫助文檔.txt(3)Math類A:是針對數(shù)學(xué)進(jìn)行操作的類B:沒有構(gòu)造方法,因?yàn)樗某蓡T都是靜態(tài)的C:產(chǎn)生隨機(jī)數(shù)publicstaticdoublerandom():[0.0,1.0)D:如何產(chǎn)生一個(gè)1-100之間的隨機(jī)數(shù)intnumber=(int)(Math.random()*100)+1;E:猜數(shù)字小游戲3:代碼塊(理解)(1)用。括起來的代碼。(2)分類:A:局部代碼塊用于限定變量的生命周期,及早釋放,提高內(nèi)存利用率。B:構(gòu)造代碼塊把多個(gè)構(gòu)造方法中相同的代碼可以放到這里, 每個(gè)構(gòu)造方法執(zhí)行前,首先執(zhí)行構(gòu)造代碼塊。C:靜態(tài)代碼塊對類的數(shù)據(jù)進(jìn)行初始化,僅僅只執(zhí)行一次。(3)靜態(tài)代碼塊,構(gòu)造代碼塊,構(gòu)造方法的順序問題?靜態(tài)代碼塊>構(gòu)造代碼塊>構(gòu)造方法4:繼承(掌握)(1)把多個(gè)類中相同的成員給提取出來定義到一個(gè)獨(dú)立的類中。 然后讓這多個(gè)類和該獨(dú)立的類產(chǎn)生一個(gè)關(guān)系,這多個(gè)類就具備了這些內(nèi)容。這個(gè)關(guān)系叫繼承。⑵Java中如何表示繼承呢?格式是彳f么呢?A:用關(guān)鍵字extends表示B:格式:class子類名extends父類名{}(3)繼承的好處:A:提高了代碼的復(fù)用性B:提高了代碼的維護(hù)性C:讓類與類產(chǎn)生了一個(gè)關(guān)系,是多態(tài)的前提(4)繼承的弊端:A:讓類的耦合性增強(qiáng)。這樣某個(gè)類的改變,就會影響其他和該類相關(guān)的類。原則:低耦合,高內(nèi)聚。耦合:類與類的關(guān)系內(nèi)聚:自己完成某件事情的能力B:打破了封裝性(5)Java中繼承的特點(diǎn)A:Java中類只支持單繼承B:Java中可以多層(重)繼承(繼承體系)(6)繼承的注意事項(xiàng):A:子類不能繼承父類的私有成員B:子類不能繼承父類的構(gòu)造方法,但是可以通過 super去訪問C:不要為了部分功能而去繼承(7)什么時(shí)候使用繼承呢?A:繼承體現(xiàn)的是:isa的關(guān)系。B:采用假設(shè)法(8)Java繼承中的成員關(guān)系A(chǔ):成員變量a:子類的成員變量名稱和父類中的成員變量名稱不一樣,這個(gè)太簡單b:子類的成員變量名稱和父類中的成員變量名稱一樣,這個(gè)怎么訪問呢?子類的方法訪問變量的查找順序:在子類方法的局部范圍找,有就使用。在子類的成員范圍找,有就使用。在父類的成員范圍找,有就使用。找不到,就報(bào)錯(cuò)。B:構(gòu)造方法a:子類的構(gòu)造方法默認(rèn)會去訪問父類的無參構(gòu)造方法是為了子類訪問父類數(shù)據(jù)的初始化b:父類中如果沒有無參構(gòu)造方法,怎么辦?子類通過super去明確調(diào)用帶參構(gòu)造子類通過this調(diào)用本身的其他構(gòu)造,但是一定會有一個(gè)去訪問了父類的構(gòu)造讓父類提供無參構(gòu)造C:成員方法a:子類的成員方法和父類中的成員方法名稱不一樣,這個(gè)太簡單b:子類的成員方法和父類中的成員方法名稱一樣,這個(gè)怎么訪問呢通過子類對象訪問一個(gè)方法的查找順序:在子類中找,有就使用在父類中找,有就使用找不到,就報(bào)錯(cuò)(9)兩個(gè)面試題:A:Override和Overload的區(qū)別?Overload是否可以改變返回值類型’B:this和super的區(qū)別和各自的作用?(10)數(shù)據(jù)初始化的面試題A:一個(gè)類的初始化過程B:子父類的構(gòu)造執(zhí)行過程C:分層初始化(11)案例:A:學(xué)生和老師案例繼承前繼承后B:貓狗案例的分析和實(shí)現(xiàn)第九天1:final關(guān)鍵字(掌握)(1)是最終的意思,可以修飾類,方法,變量。(2)特點(diǎn):A:它修飾的類,不能被繼承。B:它修飾的方法,不能被重寫。C:它修飾的變量,是一個(gè)常量。(3)面試相關(guān):A:局部變量a:基本類型值不能發(fā)生改變b:引用類型地址值不能發(fā)生改變,但是對象的內(nèi)容是可以改變的B:初始化時(shí)機(jī)a:只能初始化一次。b:常見的給值定義的時(shí)候。(推薦)構(gòu)造方法中。2:多態(tài)(掌握)(1)同一個(gè)對象在不同時(shí)刻體現(xiàn)出來的不同狀態(tài)。(2)多態(tài)的前提:A:有繼承或者實(shí)現(xiàn)關(guān)系。B:有方法重寫。C:有父類或者父接口引用指向子類對象。多態(tài)的分類:a:具體類多態(tài)classFu。classZiextendsFu{}Fuf=newZi();b:抽象類多態(tài)abstractclassFu{}classZiextendsFu{}Fuf=newZi();c:接口多態(tài)interfaceFu{}classZiimplementsFu{}Fuf=newZi();⑶多態(tài)中的成員訪問特點(diǎn)A:成員變量編譯看左邊,運(yùn)行看左邊B:構(gòu)造方法子類的構(gòu)造都會默認(rèn)訪問父類構(gòu)造C:成員方法編譯看左邊,運(yùn)行看右邊D:靜態(tài)方法編譯看左邊,運(yùn)行看左邊為什么?因?yàn)槌蓡T方法有重寫。(4)多態(tài)的好處:A:提高代碼的維護(hù)性(繼承體現(xiàn))B:提高代碼的擴(kuò)展性(多態(tài)體現(xiàn))⑸多態(tài)的弊端:父不能使用子的特有功能?,F(xiàn)象:子可以當(dāng)作父使用,父不能當(dāng)作子使用(6)多態(tài)中的轉(zhuǎn)型A:向上轉(zhuǎn)型從子到父B:向下轉(zhuǎn)型從父到子(7)孔子裝爹的案例幫助大家理解多態(tài)(8)多態(tài)的練習(xí)A:貓狗案例B:老師和學(xué)生案例3:抽象類(掌握)(1)把多個(gè)共性的東西提取到一個(gè)類中,這是繼承的做法。但是呢,這多個(gè)共性的東西,在有些時(shí)候,方法聲明一樣,但是方法體。也就是說,方法聲明一樣,但是每個(gè)具體的對象在具體實(shí)現(xiàn)的時(shí)候內(nèi)容不一樣。所以,我們在定義這些共性的方法的時(shí)候,就不能給出具體的方法體。而一個(gè)沒有具體的方法體的方法是抽象的方法。在一個(gè)類中如果有抽象方法,該類必須定義為抽象類。(2)抽象類的特點(diǎn)A:抽象類和抽象方法必須用關(guān)鍵字abstract修飾B:抽象類中不一定有抽象方法,但是有抽象方法的類一定是抽象類C:抽象類不能實(shí)例化D:抽象類的子類a:是一個(gè)抽象類。b:是一個(gè)具體類。這個(gè)類必須重寫抽象類中的所有抽象方法。(3)抽象類的成員特點(diǎn):A:成員變量有變量,有常量B:構(gòu)造方法有構(gòu)造方法C:成員方法有抽象,有非抽象⑷抽象類的練習(xí)A:貓狗案例練習(xí)B:老師案例練習(xí)C:學(xué)生案例練習(xí)D:員工案例練習(xí)(5)抽象類的幾個(gè)小問題A:抽象類有構(gòu)造方法,不能實(shí)例化,那么構(gòu)造方法有什么用用于子類訪問父類數(shù)據(jù)的初始化B:一個(gè)類如果沒有抽象方法,卻定義為了抽象類,有什么用?為了不讓創(chuàng)建對象C:abstract不能和哪些關(guān)鍵字共存a:final沖突b:private沖突c:static無意義4:接口(掌握)(1)回顧貓狗案例,它們僅僅提供一些基本功能。比如:貓鉆火圈,狗跳高等功能,不是動物本身就具備的,是在后面的培養(yǎng)中訓(xùn)練出來的,這種額外的功能,java提供了接口表示。(2)接口的特點(diǎn):A:接口用關(guān)鍵字interface修飾interface接口名。B:類實(shí)現(xiàn)接口用implements修飾class類名implements接口名{}C:接口不能實(shí)例化D:接口的實(shí)現(xiàn)類a:是一個(gè)抽象類。b:是一個(gè)具體類,這個(gè)類必須重寫接口中的所有抽象方法。(3)接口的成員特點(diǎn):A:成員變量只能是常量默認(rèn)修飾符:publicstaticfinalB:構(gòu)造方法沒有構(gòu)造方法C:成員方法只能是抽象的默認(rèn)修飾符:publicabstract⑷類與類,類與接口,接口與接口A:類與類繼承關(guān)系,只能單繼承,可以多層繼承B:類與接口實(shí)現(xiàn)關(guān)系,可以單實(shí)現(xiàn),也可以多實(shí)現(xiàn)。還可以在繼承一個(gè)類的同時(shí),實(shí)現(xiàn)多個(gè)接口C:接口與接口繼承關(guān)系,可以單繼承,也可以多繼承(5)抽象類和接口的區(qū)別(自己補(bǔ)齊)?A:成員區(qū)別抽象類:接口:B:關(guān)系區(qū)別:類與類:類與接口:接口與接口:C:設(shè)計(jì)理念不同抽象類:isa,抽象類中定義的是共性功能。接口:likea,接口中定義的是擴(kuò)展功能。(6)練習(xí):A:貓狗案例,加入跳高功能B:老師和學(xué)生案例,加入抽煙功能0第十天1:形式參數(shù)和返回值的問題(理解)(1)形式參數(shù):類名:需要該類的對象抽象類名:需要該類的子類對象接口名:需要該接口的實(shí)現(xiàn)類對象(2)返回值類型:類名:返回的是該類的對象抽象類名:返回的是該類的子類對象接口名:返回的是該接口的實(shí)現(xiàn)類的對象(3)鏈?zhǔn)骄幊虒ο?方法1().方法2()…….方法n();這種用法:其實(shí)在方法1()調(diào)用完畢后,應(yīng)該一個(gè)對象;方法2()調(diào)用完畢后,應(yīng)該返回一個(gè)對象。方法n()調(diào)用完畢后,可能是對象,也可以不是對象2:包(理解)(1)其實(shí)就是文件夾(2)作用:A:區(qū)分同名的類B:對類進(jìn)行分類管理a:按照功能分b:按照模塊分⑶包的定義(掌握)package包名;多級包用.分開。(4)注意事項(xiàng):(掌握)A:package語句必須在文件中的第一條有效語句B:在一個(gè)java文件中,只能有一個(gè)packageC:如果沒有package,默認(rèn)就是無包名(5)帶包的編譯和運(yùn)行A:手動式B:自動式(掌握)javac-d.HelloWorld.java3:導(dǎo)包(掌握)(1)我們多次使用一個(gè)帶包的類,非常的麻煩,這個(gè)時(shí)候,Java就提供了一個(gè)關(guān)鍵字import。(2)格式:import包名…類名;另一種:

import包名…*;(不建議)(3)package,import,classfl勺順序package>import>class4:權(quán)限修飾符(掌握)⑴權(quán)限修飾符本英⑴權(quán)限修飾符本英同一個(gè)包卜/、同包卜的子類privateY默認(rèn)YYprotectedYYYpublicYYY不同包下的無關(guān)類⑵這四種權(quán)限修飾符在任意時(shí)刻只能出現(xiàn)一種publicclassDemo。5:常見的修飾符(理解)(1)分類:權(quán)限修飾符:private,默認(rèn),protected,public狀態(tài)修飾符:static,final抽象修飾符:abstract(2)常見的類及其組成的修飾類:默認(rèn),public,final,abstract常用的:public成員變量:private,默認(rèn),protected,public,static,final常用的:private構(gòu)造方法:private,默認(rèn),protected,public常用的:public成員方法:private,默認(rèn),protected,public,static,final,abstract常用的:public⑶另外比較常見的:publicstaticfinalintX=10;publicstaticvoidshow(){}publicfinalvoidshow(){}publicabstractvoidshow();6:內(nèi)部類(理解)(1)把類定義在另一個(gè)類的內(nèi)部,該類就被稱為內(nèi)部類。舉例:把類B定義在類A中,類B就被稱為內(nèi)部類。(2)內(nèi)部類的訪問規(guī)則A:可以直接訪問外部類的成員,包括私有B:外部類要想訪問內(nèi)部類成員,必須創(chuàng)建對象(3)內(nèi)部類的分類A:成員內(nèi)部類B:局部內(nèi)部類(4)成員內(nèi)部類A:private為了數(shù)據(jù)的安全性B:static為了訪問的方便性成員內(nèi)部類不是靜態(tài)的:外部類名.內(nèi)部類名對象名=new外部類名.new內(nèi)部類名();成員內(nèi)部類是靜態(tài)的:外部類名.內(nèi)部類名對象名=new外部類名.內(nèi)部類名();(5)成員內(nèi)部類的面試題(填空)30,20,10classOuter{publicintnum=10;classInner{publicintnum=20;publicviodshow(){intnum=30;System.out.println(num);System.out.println(this.num);System.out.println(Outer.this.num);}}}(6)局部內(nèi)部類A:局部內(nèi)部類訪問局部變量必須加final修飾。B:為什么呢?因?yàn)榫植孔兞渴褂猛戤吘拖?,而堆?nèi)存的數(shù)據(jù)并不會立即消失。所以,堆內(nèi)存還是用該變量,而改變量已經(jīng)沒有了。為了讓該值還存在,就加final修飾。通過反編譯工具我們看到了,加入final后,堆內(nèi)存直接存儲的是值,而不是變量名。⑺匿名內(nèi)部類(掌握)A:是局部內(nèi)部類的簡化形式B:前提存在一個(gè)類或者接口C:格式:new類名或者接口名(){重寫方法;}D:本質(zhì):其實(shí)是繼承該類或者實(shí)現(xiàn)接口的子類匿名對象(8)匿名內(nèi)部類在開發(fā)中的使用我們在開發(fā)的時(shí)候,會看到抽象類,或者接口作為參數(shù)。而這個(gè)時(shí)候,我們知道實(shí)際需要的是一個(gè)子類對象。如果該方法僅僅調(diào)用一次,我們就可以使用匿名內(nèi)部類的格式簡化interfacePerson{publicabstractvoidstudy();}classPersonDemo{publicvoidmethod(Personp){p.study();}}classPersonTest{publicstaticvoidmain(String口args){PersonDemopd=newPersonDemo();pd.method(newPerson(){publicvoidstudy(){System.out.println("好好學(xué)習(xí),天天向上");}});}}⑼匿名內(nèi)部類的面試題(補(bǔ)齊代碼)interfaceInter{voidshow();}classOuter{//補(bǔ)齊代碼publicstaticIntermethod(){returnnewInter(){publicvoidshow(){System.out.println("HelloWorld");}};}}classOuterDemo{publicstaticvoidmain(String口args){Outer.method().show();//"HelloWorld"}}第十一天1:Eclipse的概述使用(掌握)請參照ppt和課堂練習(xí).txt2:API的概述(了解)(1)應(yīng)用程序編程接口。(2)就是JDK提供給我們的一些提高編程效率的java類。3:Object類(掌握)(1)Object是類層次結(jié)構(gòu)的根類,所有的類都直接或者間接的繼承自 Object類。(2)Object類的構(gòu)造方法有一個(gè),并且是無參構(gòu)造這其實(shí)就是理解當(dāng)時(shí)我們說過,子類構(gòu)造方法默認(rèn)訪問父類的構(gòu)造是無參構(gòu)造(3)要掌握的方法:A:toString()返回對象的字符串表示,默認(rèn)是由類的全路徑+'@'+哈希值的十六進(jìn)制表小。這個(gè)表示其實(shí)是沒有意義的,一般子類都會重寫該方法。如何重寫呢?±程我也講解過了,基本上就是要求信息簡單明了。但是最終還是自動生成。B:equals()比較兩個(gè)對象是否相同。默認(rèn)情況下,比較的是地址值是否相同。而比較地址值是沒有意義的,所以,一般子類也會重寫該方法。重寫過程,我也詳細(xì)的講解和分析了。但是最終還是自動生成。(4)要了解的方法:A:hashCode()返回對象的哈希值。不是實(shí)際地址值,可以理解為地址值。B:getClass()返回對象的字節(jié)碼文件對象,反射中我們會詳細(xì)講解C:finalize()用于垃圾回收,在不確定的時(shí)間D:clone()可以實(shí)現(xiàn)對象的克隆,包括成員變量的數(shù)據(jù)復(fù)制,但是它和兩個(gè)引用指向同一個(gè)對象是有區(qū)別的。(5)兩個(gè)注意問題;A:直接輸出一個(gè)對象名稱,其實(shí)默認(rèn)調(diào)用了該對象的 toString()方法。B:面試題==和equals()的區(qū)別?A:==基本類型:比較的是值是否相同引用類型:比較的是地址值是否相同B:equals()只能比較引用類型。默認(rèn)情況下,比較的是地址值是否相同。但是,我們可以根據(jù)自己的需要重寫該方法。第十二天1:Scanner的使用(了解)(1)在JDK5以后出現(xiàn)的用于鍵盤錄入數(shù)據(jù)的類。(2)構(gòu)造方法:A:講解了System.in這個(gè)東西。它其實(shí)是標(biāo)準(zhǔn)的輸入流,對應(yīng)于鍵盤錄入B:構(gòu)造方法Inputstreamis=System.in;Scanner(InputStreamis)C:常用的格式Scannersc=newScanner(System.in);(3)基本方法格式:A:hasNextXxx()判斷是否是某種類型的B:nextXxx()返回某種類型的元素(4)要掌握的兩個(gè)方法A:publicintnextInt()B:publicStringnextLine()(5)需要注意的小問題A:同一個(gè)Scanner對象,先獲取數(shù)值,再獲取字符串會出現(xiàn)一個(gè)小問題B:解決方案:a:重新定義一個(gè)Scanner對象b:把所有的數(shù)據(jù)都用字符串獲取,然后再進(jìn)行相應(yīng)的轉(zhuǎn)換2:String類的概述和使用(掌握)(1)多個(gè)字符組成的一審數(shù)據(jù)。其實(shí)它可以和字符數(shù)組進(jìn)行相互轉(zhuǎn)換。(2)構(gòu)造方法:A:publicString()B:publicString(byte口bytes)C:publicString(byte口bytes,intoffset,intlength)D:publicString(char口value)E:publicString(char口value,intoffset,intcount)F:publicString(Stringoriginal)下面的這一個(gè)雖然不是構(gòu)造方法,但是結(jié)果也是一個(gè)字符串對象G:Strings="hello";(3)字符串的特點(diǎn)A:字符串一旦被賦值,就不能改變。注意:這里指的是字符串的內(nèi)容不能改變,而不是引用不能改變。B:字面值作為字符串對象和通過構(gòu)造方法創(chuàng)建對象的不同Strings=newString("hello");和Strings="hello"的區(qū)別?⑷字符串的面試題(看程序?qū)懡Y(jié)果)A:==ftequals()Stringsi=newString("hello");Strings2=newString("hello");System.out.println(s1==s2);〃falseSystem.out.println(s1.equals(s2));//trueStrings3=newString("hello");Strings4="hello";System.out.println(s3==s4);//falseSystem.out.println(s3.equals(s4));//trueStrings5="hello";Strings6="hello";System.out.println(s5==s6);//trueSystem.out.println(s5.equals(s6));//trueB:字符串的拼接Stringsi="hello";Strings2="world";Strings3="helloworld";System.out.println(s3==si+s2);//falseSystem.out.println(s3.equals((s1+s2)));//trueSystem.out.println(s3=="hello"+"world");//false 這個(gè)我們錯(cuò)了,應(yīng)該是trueSystem.out.println(s3.equals("hello"+"world"));//true⑸字符串的功能(自己補(bǔ)齊方法中文意思)A:判斷功能boolea

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論