Java知識(shí)學(xué)習(xí)記錄文本精彩版_第1頁(yè)
Java知識(shí)學(xué)習(xí)記錄文本精彩版_第2頁(yè)
Java知識(shí)學(xué)習(xí)記錄文本精彩版_第3頁(yè)
Java知識(shí)學(xué)習(xí)記錄文本精彩版_第4頁(yè)
Java知識(shí)學(xué)習(xí)記錄文本精彩版_第5頁(yè)
已閱讀5頁(yè),還剩121頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

.Day01 Day02Java到底有哪些優(yōu)勢(shì)? 面向?qū)ο螅?.跨平臺(tái)(平臺(tái)=OS)可移植性 如:SmallTalk謝謝閱讀程序:對(duì)象和對(duì)象相互之間的“通訊”在不同的操作系統(tǒng)之上可以不用做任何代碼的修 對(duì)象:屬性和方法謝謝閱讀改 類:創(chuàng)建對(duì)象的模板具有相同特征的一類直接使用 事物的高度抽象集合概念a) 字節(jié)碼文件:字節(jié)碼文件不包括任何內(nèi)存布 對(duì)象是類的實(shí)例化,類是對(duì)象的抽象精品文檔放心下載局信息與操作系統(tǒng)和硬件毫無(wú)關(guān)系 (Java 化。的內(nèi)存分布是在運(yùn)行的時(shí)候才動(dòng)態(tài)分配的) 引用JVM:真正解釋字節(jié)碼文件內(nèi)容并且和操作系統(tǒng)交互的部分Sun(Oracle)已經(jīng)給每一款4.動(dòng)態(tài)更新操作系統(tǒng)都寫好了現(xiàn)成的JVM感謝閱讀JVM組成部分: 5.簡(jiǎn)單!類加載器ClassLoader字節(jié)碼校驗(yàn)器 沒(méi)有指針和相關(guān)的內(nèi)存操作解釋執(zhí)行器(翻譯)逐行的解釋執(zhí)行代碼 new 內(nèi)存操作謝謝閱讀gc 內(nèi)存回收清理 Java中的回收機(jī)制:2.安全健壯 零引用回收問(wèn)題: System.gc();3.面向?qū)ο?Runtime.getRuntime().gc();精品文檔放心下載調(diào)用gc的下一行是否回收?不一定面向過(guò)程:程序:函數(shù)+變量(算法+數(shù)據(jù)結(jié)構(gòu)) 6.免費(fèi)開源謝謝閱讀.搭建Java開發(fā)平臺(tái)1.JDK(JavaSDK java開發(fā)工具包)SDK(軟件開發(fā)工謝謝閱讀具包)JDK安裝JDK1.55.0猛虎JDK1.66.0野馬JDK1.77.0海豚JDK JRE JVMJDK Java開發(fā)工具包JRE Java運(yùn)行環(huán)境JVM Java虛擬機(jī)JDK=JRE+常用工具JRE=JVM+核心類庫(kù)JVM=三部分2.設(shè)置環(huán)境變量我的電腦-屬性-高級(jí)-環(huán)境變量為了使開發(fā)過(guò)程變得更加簡(jiǎn)單快捷(問(wèn)題:搭載Java開發(fā)平臺(tái)最少設(shè)置幾個(gè)環(huán)境變量?零個(gè)。為

了方便,不是必要。)環(huán)境變量名字 給誰(shuí)用 做什么用PATH 操作系統(tǒng) 更快的找到程序CLASSPATH JVM(類加載器) 找到字節(jié)碼文件謝謝閱讀JAVA_HOME 其他Java程序 找到JDK精品文檔放心下載PATH就是為了在任何一個(gè)目錄下都可以直接訪問(wèn)bin目錄下的工具(命令)C:\ProgramFiles\Java\jdk1.6.0_06\bin感謝閱讀CLASSPATH默認(rèn)值:.(當(dāng)前目錄)JAVA_HOME設(shè)置到JDK安裝目錄下JAVA_HOME:JDK安裝目錄下CLASSPATH:.PATH:%JAVA_HOME%\bin*環(huán)境變量名字最好全部大寫*在CMD設(shè)置環(huán)境變量時(shí)=左右兩邊不要加空格*在CMD中定義任意程序環(huán)境變量:如:setPATH=E:\TTPlayer同時(shí)定義兩個(gè)環(huán)境變量中間加分號(hào),或者SetPATH=%PATH%;E:\TTPlayer謝謝閱讀分號(hào)后面不能加空格3.Java運(yùn)行過(guò)程:編譯期:Java源文件.java編譯為字節(jié)碼文件.class精品文檔放心下載運(yùn)行期:JVM--OS硬件編寫代碼HelloWorld如何編譯java程序javac源文件的名字.java如何運(yùn)行java程序java類名(沒(méi)有擴(kuò)展名)HelloWorld.java代碼:publicclassHelloWorld{publicstaticvoidmain(String[]args)感謝閱讀{System.out.println("Hello!!");精品文檔放心下載}}public 修飾符 modifierstatic 修飾符 靜態(tài)(不用通過(guò)對(duì)象調(diào)用)void 方法返回值(表示這個(gè)方法不需要返回值)main 標(biāo)識(shí)符

.標(biāo)識(shí)符Identifier1.必須是英文_$中文開頭2.不能使用有特殊意義的名字(關(guān)鍵字)類名(接口名):每個(gè)單詞首字母大寫屬性名和方法名:首字母小寫,之后每個(gè)單詞首字母大寫包名:全部小寫Themostcommonrelationshipsbetweenclasses感謝閱讀areDependence(“uses–a”)Aggregation(“has–a”)Inheritance(“is–a”)類成員:類可以擁有三種成員:·字段:它們是類及其對(duì)象相關(guān)聯(lián)的數(shù)據(jù)變量,保存著類或者對(duì)象的狀態(tài)。·方法:它們包含類的可執(zhí)行代碼并定義了對(duì)象的行為嵌套類(nestedclass)與嵌套接口(nestedinterface):它們是在其他的類或接口聲明的內(nèi)部聲明的類與接口。精品文檔放心下載.類修飾符:·注解(annotation)·public:任何人都可以聲明對(duì)這種類的對(duì)象的引用,精品文檔放心下載或者訪問(wèn)這種類的公共成員?!bstract:抽象類,被認(rèn)為是不完整的,所以我們不精品文檔放心下載能創(chuàng)建抽象類的實(shí)例。通常這是因?yàn)槌橄箢惏琣bstract方法,這些方法必須在子類中實(shí)現(xiàn)?!inal:final類不允許擁有子類。類不能既是final的感謝閱讀又是abstract的。·嚴(yán)格浮點(diǎn)(strictfloatingpoint):聲明為strictfp謝謝閱讀的類要求類中的所有浮點(diǎn)運(yùn)算都是精確運(yùn)算Java當(dāng)中的包(對(duì)應(yīng)操作系統(tǒng)當(dāng)中的目錄)1.區(qū)分不同的命名空間2.對(duì)多個(gè).class文件進(jìn)行分類的歸類編譯語(yǔ)句:javac-d.HelloWorld.java精品文檔放心下載-d自動(dòng)創(chuàng)建源文件當(dāng)中指定的包結(jié)構(gòu). 在當(dāng)前目錄下創(chuàng)建目錄結(jié)構(gòu)運(yùn)行語(yǔ)句:java包名.類名通過(guò)包名和類名來(lái)唯一確認(rèn)一個(gè)類打包語(yǔ)句:package

導(dǎo)包語(yǔ)句:import例:打包,源文件Student.java放在桌面,為了能夠精品文檔放心下載運(yùn)行,定義主方法mainpackageiii.ii;publicclassStudent{publicstaticvoidmain(String[]args)謝謝閱讀{System.out.println("Hello!");精品文檔放心下載}}編譯:打開CMD,輸入“cd桌面”轉(zhuǎn)到當(dāng)前目錄,感謝閱讀編譯語(yǔ)句:javac–d.Student.java精品文檔放心下載運(yùn)行:javaiii.ii.Student(通過(guò)包名+類名唯一確定一個(gè)類)例:導(dǎo)包,先寫一個(gè)打包文件:packageiii.ii;publicclassStudent{publicstaticvoidSayHello()謝謝閱讀{System.out.println("Hello!");謝謝閱讀}}編譯:javac–d.Student.java精品文檔放心下載然后寫導(dǎo)包文件:importiii.ii.Student;publicclassHello{publicstaticvoidmain(String[]args)精品文檔放心下載{Student.SayHello();}}編譯:javacHello.java運(yùn)行:javaHello生成幫助文檔的常用工具javadoc語(yǔ)句:javadoc-ddoc源文件的名字.java感謝閱讀Java注釋:?jiǎn)涡凶⑨?/多行注釋 /* */文檔注釋 /***/生成jar包jar包就是java當(dāng)中可執(zhí)行的壓縮歸檔文件1.可執(zhí)行

.2.壓縮3.歸檔 一個(gè)java程序可能涉及到很多個(gè).class謝謝閱讀把它們都?xì)w納在一起變成一個(gè)文件生成jar包語(yǔ)句:jarcvf名字.jar要放進(jìn)壓縮文件里的文件謝謝閱讀創(chuàng)建新的歸檔文件標(biāo)準(zhǔn)輸出設(shè)備顯示詳細(xì)列表信息指定歸檔文件的名字生成可執(zhí)行Jar包具體步驟:寫.java文件如,寫一個(gè)無(wú)限彈出計(jì)算器的代碼publicclassTest{publicstaticvoidmain(String[]args)throws精品文檔放心下載Exception{while(true)Runtime.getRuntime().exec("calc");謝謝閱讀}}編譯.java生成.classjavacTest.java精品文檔放心下載將class文件打到j(luò)ar包當(dāng)中.jarcvfname.jarTest.class精品文檔放心下載修改jar當(dāng)中的清單文件,在第三行加入Main-Class:Test精品文檔放心下載注意:Test前面有空格(終止程序的方法:在CMD中輸入tskilljavaw)精品文檔放心下載變量編程語(yǔ)言當(dāng)中肯定要定義很多很多的變量來(lái)存儲(chǔ)數(shù)據(jù)變量分類:1.定義在類體當(dāng)中的變量成員變量實(shí)例變量publicclassHelloWorld{inti=100;//成員變量屬性HelloWorld類謝謝閱讀型的對(duì)象都有一份的屬性publicstaticvoidmain(String[]args)感謝閱讀{System.out.println(i);}}組成類的對(duì)象的屬性依靠對(duì)象來(lái)存在的 它是對(duì)象存儲(chǔ)空間當(dāng)中的一部分

2.定義在方法體中的變量局部變量在自己所在的方法體當(dāng)中可以使用出方法體消亡局部變量使用之前一定要初始化*局部變量和成員變量是可以重名的!在局部變量所在的方法體中直接出現(xiàn)變量名將代表局部變量publicclassTestStudent{publicstaticvoidmain(String[]args)感謝閱讀{Studentstu=newStudent();謝謝閱讀stu.setAge(25);System.out.println(stu.age);感謝閱讀}}classStudent{intage;Stringname;publicvoidsetAge(intage)//感謝閱讀{實(shí)例變量使用前不用初始化 //stu.age=25;精品文檔放心下載.this.age=age;//實(shí)例變量和局部變量出現(xiàn)精品文檔放心下載重名的時(shí)候,如果不寫this.則這句沒(méi)有意義,打印age謝謝閱讀的默認(rèn)值0}}數(shù)據(jù)類型1.基本數(shù)據(jù)類型primitivetypes種booleancharbyteshortintlongfloatdouble精品文檔放心下載Floating-pointnumberswithoutanFsuffix(such精品文檔放心下載as3.402)arealwaysconsideredtobeoftype謝謝閱讀double.Ifyouwanttoroundafloating-pointnumberto精品文檔放心下載thenearestinteger(whichisthemoreuseful精品文檔放心下載operationinmostcases),usetheMath.round精品文檔放心下載method:

doublex=9.997;intnx=(int)Math.round(x);精品文檔放心下載Nowthevariablenxhasthevalue10.謝謝閱讀1.boolean布爾型true/false2.char字符型3.整數(shù)型(符號(hào)位數(shù)值位)byte8位-128~127short16-215~215-1int32*long64即-2(n-1)~2(n-1)-14.浮點(diǎn)型(符號(hào)位冪指位數(shù)值位)float32位double64位*2.引用數(shù)據(jù)類型(自定義類型對(duì)象類型)無(wú)數(shù)種byteshort(char)intlongfloatdouble精品文檔放心下載自動(dòng)提升(就近提升)強(qiáng)制類型轉(zhuǎn)換這種類型提升的規(guī)則,對(duì)于方法參數(shù)匹配同樣適用publicclassTest.{publicstaticvoidmain(String[]args)精品文檔放心下載{booleanflag=true;System.out.println(flag);charc1='中';charc2=97;charc3='\u0000';charc4='\t';byteb1=1;byteb2=2;byteb3=(byte)(b1+b2);//int類型強(qiáng)制精品文檔放心下載類型轉(zhuǎn)換inti1=45;inti2=031;//8進(jìn)制inti3=0x31;//16進(jìn)制longl1=1;longl2=1L;floatf1=0.1F;

}}publicclassTestDataType{謝謝閱讀publicstaticvoidmain(String[]args){謝謝閱讀inti=10;get(i);}publicstaticvoidget(bytea){謝謝閱讀System.out.println("我是byte型");感謝閱讀}publicstaticvoidget(longb){感謝閱讀System.out.println("我是long型");精品文檔放心下載}publicstaticvoidget(doublec){謝謝閱讀System.out.println("我是double型");精品文檔放心下載}}運(yùn)行結(jié)果:我是long型(方法參數(shù)匹配就近提升)感謝閱讀publicclassDataType{publicstaticvoidmain(String[]args){謝謝閱讀doubled1=0.1D;.inti=10;longd=get(i);System.out.println(d); //打印long類型精品文檔放心下載的20}publicstaticintget(doublea){精品文檔放心下載return(int)a;}publicstaticintget(byteb){謝謝閱讀returnb;}publicstaticintget(floatc){精品文檔放心下載return(int)c*2; //自動(dòng)就近提升,所以精品文檔放心下載調(diào)用這個(gè)方法,因?yàn)榉祷刂禐閕nt型,所以代碼中要精品文檔放心下載強(qiáng)制類型轉(zhuǎn)換}}shorta=1;a=a+1;編譯錯(cuò)誤,a+1運(yùn)算結(jié)果是int型,需要強(qiáng)制轉(zhuǎn)換類感謝閱讀型shorta=1;a+=1;

可以正確編譯publicclassTestArguments謝謝閱讀{publicstaticvoidmain(String[]args)謝謝閱讀{bytei=1;get(i);//方法的調(diào)用}publicstaticvoidget(shortd)//方法的定義,感謝閱讀方法的參數(shù)作為局部變量{//shortd=i;如果再寫這句就重復(fù)定義System.out.println(d);}}publicclassTestArgs{publicstaticvoidmain(String[]args)精品文檔放心下載{Carbenz=newCar();benz.number=99999;.changeNumber(benz);System.out.println(benz.number);感謝閱讀}publicstaticvoidchangeNumber(Carcar)謝謝閱讀{//Carcar=benz;//Java當(dāng)中只有值傳遞精品文檔放心下載car.number=88888;}}classCar{intnumber;}畫圖:運(yùn)行結(jié)果:88888

publicclassTestExec{publicstaticvoidmain(String[]args){感謝閱讀IntAia=newIntA();ia.i=55;change(ia);System.out.println(ia.i);}publicstaticvoidchange(IntAib)精品文檔放心下載{//IntAib=ia;ib=newIntA();//如果去掉這句則同上一感謝閱讀個(gè)例子,運(yùn)行結(jié)果為99ib.i=99;}}classIntA{inti;}畫圖:.運(yùn)行結(jié)果:55publicclassExec{privatestaticintj=0;privatestaticbooleanmethodB(intk)感謝閱讀{+=k;//j=4;returntrue;}publicstaticvoidmethodA(inti)感謝閱讀{//inti=0;booleanb;b=i<10|methodB(4);//邏輯非短路精品文檔放心下載b=i<10||methodB(8);//邏輯短路運(yùn)算謝謝閱讀符第二個(gè)表達(dá)式不必進(jìn)行判斷}publicstaticvoidmain(Stringargs[])謝謝閱讀

{methodA(0);System.out.println(j);//4}}publicclassTestOperator{publicstaticvoidmain(String[]args)精品文檔放心下載{/*+-*/%*/System.out.println(-5%2);//%最終結(jié)精品文檔放心下載果取決于被模數(shù)的符號(hào),打印-1/*+=-=*=/=%=*/byteb1=127;b1+=10;//b1=b1+10;=左邊是byte精品文檔放心下載類型整個(gè)表達(dá)式依然是byte類型,打印-119感謝閱讀System.out.println(b1);/*.><>=<===!= /**/ ++--&&||&|inti=1000; */System.out.println(!(i>=1000));//編程 intm=10;謝謝閱讀語(yǔ)言當(dāng)中=賦值運(yùn)算符==判斷是否相等,打印 booleanflag=(m++>=10||++m>3);謝謝閱讀false System.out.println(m);//打印11感謝閱讀/*/*邏輯非短路運(yùn)算符:&|邏輯短路運(yùn)instanceof算符:&&||格式:一個(gè)引用instanceof一個(gè)類*/左邊引用所指向的對(duì)象是否是右邊類型的System.out.println(i>2000&&一個(gè)實(shí)例i<5000);//打印falseSystem.out.println(stuinstanceofStudent);/**/++--*//*intk=2;1?2:3三目運(yùn)算符System.out.println(++k);//如果k++:打*/印2++k:打印3intii=5;System.out.println(k);//打印3System.out.println(ii>10?100.0:System.out.println(k+++++k);//k++31000);//自動(dòng)提升為三個(gè)數(shù)值中的最大類型,這里打k=4++k5k=5,打印8印1000.0.TestOperator.absolute(3); 流程控制精品文檔放心下載} 分支:ifelsepublicstaticvoidabsolute(intnumber) else與最近的if構(gòu)成一組感謝閱讀{ switchcaseSystem.out.println( number>=0 ? 循環(huán):for感謝閱讀number:-number); while} dowhile} 循環(huán)標(biāo)簽:breakcontinue運(yùn)算符優(yōu)先級(jí) publicclassTestSwitchCase感謝閱讀{publicstaticvoidmain(String[]args)感謝閱讀{inti=5;switch(i)//byteshortcharint不能在括謝謝閱讀號(hào)里定義i{case 1:System.out.println("i 是感謝閱讀1");break;轉(zhuǎn)義字符case 2:System.out.println("i 是謝謝閱讀2");break;Day03 case 3:System.out.println("i 是精品文檔放心下載.3");break;case 4:System.out.println("i 是感謝閱讀4");break;default:System.out.println("i 不是謝謝閱讀1234");break;}}}publicclassTestFor{publicstaticvoidmain(String[]args)感謝閱讀{//程序當(dāng)中相鄰的相似的代碼肯定可以簡(jiǎn)化//打印1到20之間所有的偶數(shù)for(inti=1;i<21;i++)感謝閱讀{if(i%2==0){System.out.println(i);}

}}}publicclassTestWhile{publicstaticvoidmain(String[]args)精品文檔放心下載{inti=1;for(i=100;i>0;i--){System.out.println(i);}System.out.println(i);//這句代碼已經(jīng)出精品文檔放心下載for循環(huán),for循環(huán)上面必須定義i/*for循環(huán)是while循環(huán)的便捷形式*/=100;//for1while(i>0)//for2感謝閱讀{System.out.println(i);//for4i--;//for3感謝閱讀}.}}publicclassTestDoWhile{publicstaticvoidmain(String[]args)謝謝閱讀{inti=9;do{System.out.println("能看到我嗎?");精品文檔放心下載//無(wú)論條件是否成立循環(huán)體首先要執(zhí)行一次}while(++i==10);}}publicclassTestBreakContinue{謝謝閱讀publicstaticvoidmain(String[]args){謝謝閱讀for(inti=10;i>0;i--){if(i==3){//continue;//結(jié)束當(dāng)次循環(huán)直接

開始下次循環(huán)break;//結(jié)束break所在的循環(huán)}System.out.println(i);}System.out.println("循環(huán)已經(jīng)執(zhí)行結(jié)束");謝謝閱讀}}/*打印1-100之間所有的質(zhì)數(shù)(素?cái)?shù))*/publicclassTestZhiShu{publicstaticvoidmain(String[]args)感謝閱讀{System.out.println(2);for(inti=3;i<=100;i+=2)謝謝閱讀{if(checkNumber(i)){System.out.println(i);}}.} {public static boolean checkNumber(int inner:for(intj=1;j<6;j++)精品文檔放心下載number) {{ if(i==3)if(number==1) {{ breakouter;returnfalse; }}for(inti=3;i<=(number/2);i+=2) System.out.println("i="+i+"\t精品文檔放心下載{ j="+j);if(number%i==0) }{ }returnfalse; }} }}returntrue; /*} 判定公歷閏年遵循的規(guī)律為:四年一閏,百年不感謝閱讀} 閏,四百年再閏.公歷閏年的簡(jiǎn)單計(jì)算方法(:符合以下條件之一的publicclassForExec 年份即為閏年)精品文檔放心下載{ 1.能被4整除而不能被100整除。(如2004年謝謝閱讀publicstaticvoidmain(String[]args) 就是閏年,1900年不是)謝謝閱讀{ 2.能被400整除。(如2000年是閏年)謝謝閱讀outer:for(inti=1;i<6;i++)謝謝閱讀.題目:判斷年份是不是閏年,有三次輸入機(jī)會(huì) ==0){謝謝閱讀*/ System.out.println("神燈顯靈感謝閱讀importjava.util.Scanner;//掃描儀 吧!答案是:Thisyearisaleapyear!\n");精品文檔放心下載publicclassTestLeapYear{ }精品文檔放心下載publicstaticvoidmain(String[]args){ else{精品文檔放心下載inti=0; System.out.println("神燈顯靈精品文檔放心下載while(i++<3){ 吧!答案是:Thisyearisnotaleapyear!\n");精品文檔放心下載switch(i){ }case1:System.out.println("我是 }感謝閱讀燈神,給你三次機(jī)會(huì),請(qǐng)輸入你要判定的年份: }");break; }case 2:System.out.println("哈精品文檔放心下載哈,你還有兩次機(jī)會(huì),說(shuō)出你要判斷的年份:");break; 使用Scanner需要先導(dǎo)包:精品文檔放心下載case3:System.out.println("你還 importjava.util.*;精品文檔放心下載有最后的機(jī)會(huì),輸入你要判斷的年份吧:"); Wheneveryouuseaclassthatisnotdefinedinthe精品文檔放心下載} basicjava.langpackage,youneedtouseanimport精品文檔放心下載Scanner sc=new directive.Scanner(System.in);//從標(biāo)準(zhǔn)輸入設(shè)備建立一個(gè)掃 注意:Comparable屬于java.lang精品文檔放心下載描儀 Comparator屬于java.util(使用前import)感謝閱讀intyear=sc.nextInt();//從掃描儀得謝謝閱讀到一個(gè)整數(shù)publicclassTestNine{if((year%100!=0&&year%4==0)||year%400 publicstaticvoidmain(String[]args)謝謝閱讀.{

outer:for(inti=1;i<=9;i++)精品文檔放心下載{

系數(shù)組就是引用類型的int[]a=newint[5];inner:for(intj=1;j<=9;j++)精品文檔放心下載{System.out.print(j+"×"+i+"="+(i*j)+"\t");精品文檔放心下載if(j==i){

//可以通過(guò)for循環(huán)初始化數(shù)組或者遍歷數(shù)組;數(shù)組的length屬性標(biāo)示它當(dāng)中有幾個(gè)存儲(chǔ)空間感謝閱讀for(inti=0;i<a.length;i++){精品文檔放心下載a[i]=i;System.out.println(a[i]);System.out.println();

}continue outer;//或者用break;

//可以用

foreach循環(huán)遍歷數(shù)組中每個(gè)元}

素}

}

for(floati:a){System.out.println(i);}

}}//創(chuàng)建匿名數(shù)組,可以直接給已有數(shù)組重新初Day04

始化數(shù)組

a=newint[]{18,11,12,16,14};感謝閱讀importjava.util.*;publicclassTestMay162{

//數(shù)組排序publicstaticvoidmain(String[]args){精品文檔放心下載

Arrays.sort(a);//Java當(dāng)中的數(shù)組存儲(chǔ)空間等大而且連續(xù)

for(inti:a){//數(shù)組和它存放什么類型的數(shù)據(jù)沒(méi)有任何關(guān)

System.out.println(i);}//數(shù)組的復(fù)制//①手動(dòng)復(fù)制數(shù)組int[]e=newint[a.length];感謝閱讀for(inti=0;i<a.length;i++){謝謝閱讀e[i]=a[i];}//②通過(guò)Object的克隆方法int[]c=a.clone();//③通過(guò)java.util.Arrays類中的copyOf方謝謝閱讀法int[]b=Arrays.copyOf(a,a.length);精品文檔放心下載//④通過(guò)System類當(dāng)中的arraycopy方法感謝閱讀int[]d=newint[a.length];感謝閱讀System.arraycopy(a,0,d,0,a.length);謝謝閱讀/*arraycopy(1,2,3,4,5)1.源數(shù)組2.源數(shù)組開始復(fù)制的下標(biāo)

.3.目標(biāo)數(shù)組4.目標(biāo)數(shù)組第幾個(gè)開始放新的值5.一共放多少個(gè)*/}}publicclassTestObjectArray感謝閱讀{publicstaticvoidmain(String[]args)謝謝閱讀{//引用類型的數(shù)組初始化數(shù)組并不等于初始化當(dāng)中的元素//數(shù)組被初始化了數(shù)組當(dāng)中的元素(學(xué)生對(duì)象)還沒(méi)被初始化Student[]et0903=newStudent[5];感謝閱讀for(inti=0;i<et0903.length;i++)精品文檔放心下載{et0903[i]=newStudent();感謝閱讀}//for循環(huán)數(shù)組當(dāng)中的元素學(xué)生對(duì)象已經(jīng)完成了初始化工作}.}classStudent{intage;Stringname;publicvoidstudy(){System.out.println(name+"好好學(xué)習(xí),天天精品文檔放心下載向上");}}上例圖示:利用數(shù)組解決四個(gè)問(wèn)題:已經(jīng)知道:有一對(duì)熊貓團(tuán)團(tuán)圓圓,三個(gè)月之后生下一對(duì)小熊貓之后每個(gè)月生下一對(duì)熊貓,小熊貓滿三個(gè)月之后,每個(gè)月生一對(duì)兒小熊貓精品文檔放心下載問(wèn):第23個(gè)月熊貓總共多少只?

分析:每個(gè)月小熊貓的對(duì)數(shù)關(guān)系為1123581321...感謝閱讀publicclassPanda{publicstaticvoidmain(String[]args){感謝閱讀int[]iset=newint[23];iset[0]=1;iset[1]=1;for(inti=2;i<iset.length;i++){感謝閱讀iset[i]=iset[i-2]+iset[i-1];謝謝閱讀}System.out.println(iset[22]);感謝閱讀}}已經(jīng)知道:100個(gè)房間,每個(gè)房間里有一盞燈(不亮)現(xiàn)在有一百個(gè)人排成一隊(duì)感謝閱讀第一個(gè)人拉所有能把1整除的房間里的燈第二個(gè)人拉所有能把2整除的房間里的燈精品文檔放心下載。。。。。。。。。。100個(gè)人拉所有能把100整除的房間里的燈問(wèn):最后哪些燈是亮的(考慮實(shí)現(xiàn)效率?。┲x謝閱讀publicclassTestLight{publicstaticvoidmain(String[]args){Light[]room=newLight[100];for(inti=0;i<100;i++){精品文檔放心下載room[i]=newLight();.}

分成兩個(gè)質(zhì)數(shù)相加的和for(inthuman=1;human<=100;human++){精品文檔放心下載for(intnumber=1;number<=100;number++){精品文檔放心下載if(number%human==0)room[number-1].pull();}

/*分析模擬拆分的過(guò)程10:2 8 X3 7 right4 6 X5 5 right}for(inti=0;i<100;i++){if(room[i].isOn)System.out.println(""+(i+1)+"個(gè)房間的燈是亮的");}}}

*/importjava.util.*;publicclassGoldbachConjecture{謝謝閱讀第 publicstaticvoidmain(String[]args){感謝閱讀Scannersc=newScanner(System.in);感謝閱讀System.out.println("為了驗(yàn)證哥德巴赫猜感謝閱讀想請(qǐng)輸入一個(gè)大于6的偶數(shù):");intnumber=sc.nextInt();classLight{booleanisOn;//boolean型默認(rèn)值是false感謝閱讀publicvoidpull(){isOn=!isOn;}

while(number<=6||number%2!=0){謝謝閱讀System.out.println("你輸入的數(shù)據(jù)不謝謝閱讀合法,請(qǐng)重新輸入:");number=sc.nextInt();}3.驗(yàn)證哥德巴赫猜想:任何一個(gè)大于6的偶數(shù)能夠拆謝謝閱讀

}for(inti=2;i<=number/2;i++){精品文檔放心下載if(check(i)&&check(number-i)){精品文檔放心下載.System.out.println("你輸入的數(shù)字是兩個(gè)質(zhì)數(shù)"+i+"和"+(number-i)+"的和");謝謝閱讀}}}publicstaticbooleancheck(intnum){謝謝閱讀for(inti=2;i<=num/2;i++){感謝閱讀if(num%i==0){returnfalse;

System.out.println("為了驗(yàn)證數(shù)學(xué)黑洞,謝謝閱讀請(qǐng)輸入一個(gè)四位數(shù)字,且四位不相同:");Stringnumber=sc.next();while(!number.equals("6174")){感謝閱讀intmax=getMax(number);System.out.println(number+"的最感謝閱讀大排列組合是:"+max);intmin=getMin(number);System.out.println("最小排列組合謝謝閱讀}

是:"+min);}

}

}returntrue;

number=max-min+"";System.out.println("二者想減得到的謝謝閱讀新數(shù)字為:"+number);}}4.驗(yàn)證數(shù)學(xué)黑洞問(wèn)題:

publicstaticintgetMax(Stringstr){感謝閱讀任意一個(gè)4位數(shù),只要不是4位都相同的,那么取它精品文檔放心下載

char[]nums=str.toCharArray();精品文檔放心下載最大排列組合減去最小排列組合,得到的數(shù)再取最大

Arrays.sort(nums);排列組合減去最小排列組合,依次類推,不超過(guò)7次

StringBuilder

builder=new則肯定會(huì)得到數(shù)字6174

StringBuilder(newString(nums));謝謝閱讀importjava.util.*;

builder.reverse();publicclassTestBlackHole{謝謝閱讀

intpublicstaticvoidmain(String[]args){謝謝閱讀

ok=Integer.parseInt(builder.toString());謝謝閱讀Scannersc=newScanner(System.in);精品文檔放心下載

returnok;.}publicstaticintgetMin(Stringstr){精品文檔放心下載char[]nums=str.toCharArray();精品文檔放心下載Arrays.sort(nums);Strings=newString(nums);精品文檔放心下載intok=Integer.parseInt(s);感謝閱讀Day05returnok;面向?qū)ο笕蠡咎卣鱹封裝(encapsulation)}繼承(inheritance)多態(tài)(polymorphism)關(guān)于二維數(shù)組:Java當(dāng)中的二維數(shù)組其實(shí)就是數(shù)組(引謝謝閱讀publicclassTestEncap{用類型)的數(shù)組,下面一段代碼定義了一個(gè)存放不同publicstaticvoidmain(String[]args){精品文檔放心下載個(gè)數(shù)元素的數(shù)組的數(shù)組Humanhm=newHuman();int[][]iset=newint[7][];感謝閱讀hm.setAge(30);iset[0]=newint[3];System.out.println(hm.getAge());精品文檔放心下載iset[1]=newint[3];}iset[2]=newint[4];}iset[3]=newint[3];iset[4]=newint[3];classHuman{iset[5]=newint[2];privateintage;iset[6]=newint[2];privateStringname;圖示:.publicintgetAge(){

kfc.service(xiaoBei);returnage;

}}publicvoidsetAge(intage){精品文檔放心下載//this當(dāng)前對(duì)象調(diào)用這個(gè)方法的對(duì)象this.age=age;}publicvoideat(){

}class餐廳{Stringname;publicvoidservice(Peoplepeo){精品文檔放心下載System.out.println("提供食物");精品文檔放心下載System.out.println("吃飯");

}}}//繼承:Java中的類只有單根繼承。父類有,相當(dāng)謝謝閱讀

}classPeople{intage;Stringname;于子類也有??梢岳^承父類中的屬性和方法,不能

}繼承構(gòu)造方法

classJapaneseextendsPeople{}謝謝閱讀publicclassTestKFC{

classChineseextendsPeople{}謝謝閱讀publicstaticvoidmain(String[]args){感謝閱讀

classEnglishextendsPeople{}謝謝閱讀餐廳kfc=new餐廳();="肯德基山大路店";JapanesexiaoQuan=newJapanese();感謝閱讀

/*ChinesezhangFei=newChinese();EnglishxiaoBei=newEnglish();kfc.service(xiaoQuan);kfc.service(zhangFei);感謝閱讀

方法重載!Overload發(fā)生在同一個(gè)類當(dāng)中,(返回類型可以不同),方法名相同,參數(shù)列表不同(參數(shù)列表不同:1.類型不同2.個(gè)數(shù)不同3.順序不同)感謝閱讀下面這段代碼編譯時(shí)出錯(cuò),要清楚如何編譯、多態(tài)、方法重載、方法覆蓋!*/publicclassTestOverload{精品文檔放心下載publicstaticvoidmain(String[]args){謝謝閱讀Abb=newB();bb.get(10);//因?yàn)榫幾g的時(shí)候只看左邊,精品文檔放心下載上一句中bb會(huì)被當(dāng)做A類對(duì)象,而A類里沒(méi)有含參精品文檔放心下載數(shù)的get方法}}classA{publicvoidget(){System.out.println("abc");精品文檔放心下載}}//下面這一段不是方法重載!因?yàn)榘l(fā)生在兩個(gè)類里!classBextendsA{publicvoidget(inti){System.out.println("cba");精品文檔放心下載}}/*

.方法覆蓋!Override發(fā)生在有繼承關(guān)系的兩個(gè)類之間子類當(dāng)中出現(xiàn)了與父類當(dāng)中返回類型相同 方法名字相同參數(shù)列表相同的兩個(gè)方法訪問(wèn)控制權(quán)限修飾符只能越來(lái)越大拋出的異常只能越來(lái)越少(?。?/publicclassTestOverride{謝謝閱讀publicstaticvoidmain(String[]args){精品文檔放心下載//父類類型,子類對(duì)象Abb=newB();bb.earnMoney();}}classA{publicvoidearnMoney(){System.out.println("下海經(jīng)商");精品文檔放心下載}}classBextendsA{//方法覆蓋(override)publicvoidearnMoney(){System.out.println("好好學(xué)Java");謝謝閱讀super.earnMoney();//調(diào)用父類當(dāng)中的感謝閱讀.earnMoney()方法

System.out.println("A類的display方法精品文檔放心下載}

");}

}重載和覆蓋是兩個(gè)針對(duì)方法的概念,屬性沒(méi)有重載和

}classBextendsA{覆蓋的概念!

inti=1000;方法覆蓋前使用:@Override

publicvoiddisplay(){防止方法覆蓋語(yǔ)法錯(cuò)誤

System.out.println(this.i);//打印當(dāng)前對(duì)精品文檔放心下載多態(tài):對(duì)象是客觀存在的,不會(huì)因?yàn)楦淖兎Q呼他的方

象的i屬性誰(shuí)調(diào)用display誰(shuí)就是當(dāng)前對(duì)象System.out.println(super.i);//打印當(dāng)前謝謝閱讀式而隨之發(fā)生變化

對(duì)象的父類對(duì)象的i屬性1.動(dòng)態(tài)多態(tài)(父類類型子類對(duì)象)

super.display();2.靜態(tài)多態(tài)

編譯時(shí)多態(tài)

(Java當(dāng)中的方法重載

}Overload)

}publicclassTestSuper{publicstaticvoidmain(String[]args){精品文檔放心下載Bbaby=newB();baby.display();

圖示:}}classA{inti=100;publicvoiddisplay(){.構(gòu)造器(constructor)/*構(gòu)造器:在構(gòu)造對(duì)象的時(shí)候需要調(diào)用.構(gòu)造器沒(méi)有返回類型名字要和類名完全一樣Java當(dāng)中每個(gè)類都有構(gòu)造器構(gòu)造器通常用來(lái)初始化實(shí)例變量(屬性)

}publicTeacher(intage,Stringname){精品文檔放心下載System.out.println("Teacher的有參構(gòu)造精品文檔放心下載方法被調(diào)用了");//本類構(gòu)造器執(zhí)行之前會(huì)遞歸的調(diào)精品文檔放心下載用父類的構(gòu)造器this.age=age;=name;構(gòu)造器可以重載,但不能被繼承,更不能被覆

}蓋!構(gòu)造器的第一句肯定是super();或this();無(wú)參精品文檔放心下載的構(gòu)造器默認(rèn)第一句super();*/publicclassTestConstructor{精品文檔放心下載

}classJavaTeacherextendsTeacher{精品文檔放心下載publicJavaTeacher(){super(30,"Robin");//遞歸調(diào)用父類有參感謝閱讀的,如果沒(méi)有這句,則調(diào)用無(wú)參構(gòu)造器}publicstaticvoidmain(String[]args){感謝閱讀

}JavaTeacherjt=newJavaTeacher();感謝閱讀}

publicclassTestConstructorExec{謝謝閱讀}

publicstaticvoidmain(String[]args){精品文檔放心下載classTeacher{

Chinesec=newChinese();感謝閱讀intage;

}Stringname;

}publicTeacher(){

classPeopleextendsObject{謝謝閱讀System.out.println("Teacher的無(wú)參構(gòu)造感謝閱讀

publicPeople(inti){方法被調(diào)用了");

this();//this()指定調(diào)用同類中的哪個(gè)構(gòu)感謝閱讀造器System.out.print("A");}publicPeople(){//super();System.out.print("B");}}classChineseextendsPeople{謝謝閱讀publicChinese(){super(2);//指定調(diào)用父類的哪個(gè)構(gòu)造器來(lái)得到父類類型的對(duì)象System.out.print("C");}}打印結(jié)果:BACDay06Objectclone(); //復(fù)制對(duì)象finalize(); //gc回收對(duì)象之前要調(diào)用的方法謝謝閱讀toString(); //一個(gè)對(duì)象在打印的時(shí)候定義格式謝謝閱讀*Java當(dāng)中有沒(méi)有析構(gòu)函數(shù)?首先,Java是面向?qū)ο蟮木幊陶Z(yǔ)言面向?qū)ο蟮木?/p>

.程語(yǔ)言當(dāng)中沒(méi)有函數(shù)這個(gè)概念,面向?qū)ο螽?dāng)中function被理解為對(duì)象的方法(功能).Java當(dāng)中也沒(méi)有精品文檔放心下載析構(gòu)函數(shù),析構(gòu)函數(shù)是描述一個(gè)對(duì)象所占用的內(nèi)存如何被釋放,而Java當(dāng)中內(nèi)存的分配和回收完全是交于GC感謝閱讀來(lái)自動(dòng)管理,Java當(dāng)中的Object類有finalize().但是謝謝閱讀finalize()和析構(gòu)函數(shù)不是同樣的概念,這個(gè)方法只是精品文檔放心下載gc回收之前被調(diào)用的一個(gè)普通方法.publicclassTestObject{publicstaticvoidmain(String[]args){謝謝閱讀while(true){Teacher tea = newTeacher(23,"ABC");System.out.println(tea); //打印感謝閱讀ABC:23System.gc();//gc不一定什么時(shí)候執(zhí)感謝閱讀行}}}classTeacherextendsObject{感謝閱讀intage;Stringname;.publicTeacher(intage,Stringname){謝謝閱讀System.out.println("創(chuàng)建Teacher對(duì)象!感謝閱讀

Java當(dāng)中的修飾符");

static

靜態(tài)的this.age=age;

1.static修飾屬性:=name;

這個(gè)屬性在整個(gè)內(nèi)存當(dāng)中只有一份值,不依靠對(duì)象存在}

靜態(tài)屬性不是對(duì)象的一部分,他是這個(gè)類型所有對(duì)象和/*對(duì)象在被回收之前的“遺言”方法*/

這個(gè)類所共有的唯一的一個(gè)變量可以直接通過(guò)類名.屬性名訪問(wèn)謝謝閱讀@Override

2.static修飾方法:publicvoidfinalize(){//在gc回收一個(gè)對(duì)象之精品文檔放心下載

這個(gè)方法不用通過(guò)對(duì)象就可以訪問(wèn),通過(guò)類名.方法名前會(huì)自動(dòng)先調(diào)用一下該方法

()就可以直接調(diào)用System.out.println(this+"被回收了");謝謝閱讀

但是靜態(tài)方法當(dāng)中不能直接訪問(wèn)非靜態(tài)的屬性,不能直}

接調(diào)用非靜態(tài)的方法/*定義自定義類型對(duì)象直接打印時(shí)的格式*/

3.static修飾代碼塊:靜態(tài)初始化塊(初始化靜態(tài)屬性的)@OverridepublicStringtoString(){

publicclassTestStatic1{if(age>29)return name+":"+age;return name+":"+age;

publicstaticvoidmain(String[]args){Peoplepeo=newPeople();Peoplepeo1=newPeople();謝謝閱讀}

peo1.i=20;}

peo1.home="Earth";System.out.println(peo.i);//非靜態(tài)i是對(duì)象的一部分,對(duì)象peo對(duì)應(yīng)的i不隨peo1的i改變精品文檔放心下載.System.out.println(peo.home);//靜態(tài)屬 Humanh1=newHuman("you");謝謝閱讀性home唯一,新對(duì)象peo1進(jìn)行了重新賦值,home tect();精品文檔放心下載的值改變,即People類下所有新new對(duì)象home System.out.println(h1.home);謝謝閱讀值都改變 }System.out.println(People.home);// 不 }感謝閱讀依靠對(duì)象存在可以直接通過(guò)類名.屬性名訪問(wèn) classHuman{謝謝閱讀} staticStringhome="earth";精品文檔放心下載} Stringname;classPeople{ publicHuman(Stringname){感謝閱讀static Stringhome="地球"; =name;謝謝閱讀inti=19; }} publicstaticvoiddestroy(){謝謝閱讀運(yùn)行結(jié)果: home="devil";19 }Earth publicvoidprotect(){感謝閱讀Earth home="heaven";}publicclassTestStatic2{ }精品文檔放心下載publicstaticvoidmain(String[]args){感謝閱讀Human.destroy();//靜態(tài)方法不需要通過(guò)謝謝閱讀對(duì)象來(lái)調(diào)用,通過(guò)類名.方法名()可以直接調(diào)用 總結(jié)一下對(duì)象的創(chuàng)建過(guò)程,假設(shè)有個(gè)名為Dog的類:感謝閱讀System.out.println(Human.home);//靜 1. 當(dāng)首次創(chuàng)建類型為Dog的對(duì)象時(shí)(構(gòu)造器可以看感謝閱讀態(tài)屬性可以直接通過(guò)類名.屬性名訪問(wèn) 成靜態(tài)方法),或者Dog類的靜態(tài)方法/靜態(tài)字段首感謝閱讀次被訪問(wèn)時(shí),Java解釋器必須查找類路徑,以定位謝謝閱讀.Dog.class文件.publicstaticvoidmain(String[]args){2.然后載入Dog.class(創(chuàng)建一個(gè)Class對(duì)象),有關(guān)靜Aa=newA();態(tài)初始化的所有動(dòng)作都會(huì)執(zhí)行.因此,靜態(tài)初始化只}在Class對(duì)象首次加載的時(shí)候進(jìn)行一次.}3.當(dāng)用newDog()創(chuàng)建對(duì)象的時(shí)候,首先將在堆上為classA{Dog對(duì)象分配足夠的存儲(chǔ)空間.staticinti;4.這塊存儲(chǔ)空間會(huì)被清零,這就自動(dòng)地將Dog對(duì)象中static{的所有基本數(shù)據(jù)類型都設(shè)置成了缺省值,而引用則i=100;被設(shè)置成了null.System.out.println("靜態(tài)初始化塊,這時(shí)i5.執(zhí)行所有出現(xiàn)于字段定義處的初始化動(dòng)作.的值等于"+i);6.執(zhí)行構(gòu)造器.}{/*i=1000;靜態(tài)初始化塊什么時(shí)候執(zhí)行?類第一次被System.out.println("動(dòng)態(tài)初始化塊,這時(shí)iClassLoader加載的時(shí)候執(zhí)行的值等于"+i);類什么時(shí)候被加載?當(dāng)首次生成這個(gè)類的一個(gè)}對(duì)象時(shí),或者首次訪問(wèn)屬于那個(gè)類的靜態(tài)數(shù)據(jù)成員時(shí)publicA(){(即便從未生成過(guò)那個(gè)類的對(duì)象)i=10000;靜態(tài)初始化塊只執(zhí)行一次!System.out.println("構(gòu)造方法,這時(shí)i的值等于"+i);先執(zhí)行靜態(tài)初始化塊,再執(zhí)行動(dòng)態(tài)初始化塊,再執(zhí)行}構(gòu)造方法}*/publicclassTestStaticInit{/*.在類的內(nèi)部,變量定義的先后順序決定了初始化的順序.即使變量定義散布于方法定義之間,它們?nèi)耘f會(huì)在任何方法(包括構(gòu)造器)被調(diào)用之前得到初始化.*/classWindow{Window(intmarker){System.out.println("Window(" +感謝閱讀marker+")");}

}Windoww3=newWindow(3);//Atend精品文檔放心下載}publicclassOrderOfInitialization{精品文檔放心下載publicstaticvoidmain(String[]args){精品文檔放心下載Househ=newHouse();h.f();//Showsthatconstructionis謝謝閱讀done}}}classHouse{

final

最終的Windoww1=newWindow(1);//Before精品文檔放心下載

1.修飾變量(局部變量/實(shí)例變量)constructor

變量的值一旦確定就不能修改House(){

引用類型,則引用的值(內(nèi)存地址)不能修改//Showthatwe'reintheconstructor:感謝閱讀

2.修飾方法System.out.println("House()");精品文檔放心下載

這個(gè)方法不能被覆蓋(重寫/Override)w3=newWindow(33);//Reinitialize感謝閱讀

*能被繼承w3

*final定義的方法執(zhí)行效率會(huì)比較高}

3.修飾類Windoww2=newWindow(2);//After精品文檔放心下載

這個(gè)類不能被繼承String是final修飾的謝謝閱讀constructorvoidf(){

publicclassTestFinal1{System.out.println("f()");謝謝閱讀

publicstaticvoidmain(String[]args){謝謝閱讀finalinti=100; //修飾變量,變量的值一感謝閱讀旦確定就不能修改final Student stu = newStudent("Tom",30);//final修飾引用類型,引用地精品文檔放心下載址不變stu.age=20;="Jerry";System.out.println(stu);Ccc=newC();}}classStudent{ //如果用final修飾則不能被C類精品文檔放心下載繼承Stringname;intage;publicStudent(){System.out.println("我被調(diào)用了");謝謝閱讀}publicStudent(Stringname,intage){精品文檔放心下載=name;this.age=age;}@Override

.returnname+":"+age;}}classCextendsStudent{//注意這里沒(méi)有構(gòu)造器,所以會(huì)遞歸調(diào)用父類的無(wú)參構(gòu)造器!如果父類中只有有參構(gòu)造器,則要在這里寫出有參構(gòu)造器}運(yùn)行結(jié)果:Jerry:20我被調(diào)用了publicclassTestFinal2{publicstaticvoidmain(String[]args){謝謝閱讀Bbb=newB();bb.get(); //B類繼承了A類的方法}}classA{publicfinalvoidget(){System.out.println("我被調(diào)用了!");精品文檔放心下載}publicStringtoString(){}classBextendsA{}/*classBextendsA{@Overridepublicfinalvoidget(){System.out.println("新的get方法");精品文檔放心下載}}這段代碼錯(cuò)誤,final修飾的方法無(wú)法覆蓋*/abstract抽象的修飾類:這個(gè)類不能創(chuàng)建對(duì)象讓子類繼承它修飾方法:沒(méi)有方法體讓子類必須實(shí)現(xiàn)這個(gè)方法,如果不實(shí)現(xiàn),則子類必須是抽象的

.wangwang.eat();wangwang.run();}}abstractclassAnimal{ //修飾類,不能創(chuàng)建對(duì)象,精品文檔放心下載讓子類繼承它publicabstractvoidrun();//修飾方法,沒(méi)有方謝謝閱讀法體,讓子類必須實(shí)現(xiàn)這個(gè)方法publicabstractvoideat();精品文檔放心下載}abstractclassDogextendsAnimal{謝謝閱讀publicvoidrun(){System.out.println("狗用4條腿跑!");精品文檔放心下載}}classHaBaDogextendsDog{謝謝閱讀publicvoideat(){System.out.println("哈巴狗吃火腿腸!");精品文檔放心下載}}publicclassTestAbstract{ Interface接口謝謝閱讀publicstaticvoidmain(String[]args){ 什么叫接口?感謝閱讀Animalwangwang=newHaBaDog(); 接口=規(guī)范謝謝閱讀接口只能繼承(extends)接口 不能實(shí)現(xiàn)感謝閱讀(implements)接口類只能實(shí)現(xiàn)(implements)接口不能繼承(extends)接精品文檔放心下載口//接口的基本用法publicclassTest{publicstaticvoidmain(String[]args){謝謝閱讀Carb=newBenz();b.run();}}/*定義Car這個(gè)接口其實(shí)就是定義了車的規(guī)范而規(guī)范的內(nèi)容就是接口當(dāng)中的內(nèi)容:車必須要有run(),對(duì)于定義Car接口規(guī)范的人謝謝閱讀來(lái)講他根本不知道之后有什么品牌的車也不知道車的run()要如何去實(shí)現(xiàn),但他制定精品文檔放心下載了最簡(jiǎn)單的規(guī)范:只要是車必須得能開(必須要有run())*/interfaceCar{voidrun();}/*

.Java當(dāng)中你說(shuō)你是什么類型 你叫什么名字和你真正是什么類型毫無(wú)關(guān)系必須得實(shí)現(xiàn)Car接口當(dāng)中定義的抽象方法run()精品文檔放心下載要符合Car規(guī)范當(dāng)中定義的所有的內(nèi)容*/classBenzimplementsCar{感謝閱讀@Overridepublicvoidrun(){System.out.println("我是奔馳");精品文檔放心下載}}publicclassTestInterface{感謝閱讀publicstaticvoidmain(String[]args){謝謝閱讀Computerlenovo=newComputer();//感謝閱讀創(chuàng)建電腦對(duì)象Usbkb=newUsbKeyboard();//創(chuàng)建感謝閱讀USB鍵盤對(duì)象Usbms=newUsbMouse();//創(chuàng)建USB精品文檔放心下載鼠標(biāo)對(duì)象System.out.println(kb.額定電壓);謝謝閱讀lenovo.openUsb(kb);lenovo.openUsb(ms);}}classComputer{publicvoidopenUsb(Usbdevice){感謝閱讀device.connectToComputer();精品文檔放心下載}}interfaceUsb{/*接口當(dāng)中是不能出現(xiàn)方法體的 接口當(dāng)中定義的所有的方法都是抽象方法接口當(dāng)中所有的方法默認(rèn)的修飾符:publicabstract接口當(dāng)中所有的變量默認(rèn)的修飾符:publicstaticfinal(常量)*/int額定電壓=5;voidconnectToComputer();}classUsbKeyboardimplementsUsb{精品文檔放心下載publicvoidconnectToComputer(){謝謝閱讀System.out.println("USB鍵盤連接上計(jì)謝謝閱讀算機(jī)");}}

.classUsbMouseimplementsUsb{精品文檔放心下載publicvoidconnectToComputer(){謝謝閱讀System.out.println("USB鼠標(biāo)連接上計(jì)感謝閱讀算機(jī)");}}Day07Day08訪問(wèn)控制權(quán)限修飾符public protected default private感謝閱讀訪問(wèn)控制權(quán)限由寬松到狹窄的順序public:公共的 誰(shuí)都能使用protected:受保護(hù)的 同一個(gè)包內(nèi)可以使用 包外子感謝閱讀類可以使用default:默認(rèn)的 同一個(gè)包內(nèi)可以使用private:私有的 同一個(gè)類中可以使用單例模式/*單例模式Java當(dāng)中萬(wàn)事萬(wàn)物皆對(duì)象但是有些對(duì)象哪怕在現(xiàn)實(shí)生活中它也只有一個(gè)實(shí)例,比如說(shuō)精品文檔放心下載Sun/Moon一個(gè)類有且只有一個(gè)實(shí)例(對(duì)象).*/publicclassTestSingelton{ 內(nèi)部類感謝閱讀publicstaticvoidmain(String[]args){ 內(nèi)部類用來(lái)做什么?謝謝閱讀Sunsun1=Sun.getInstance(); 1實(shí)現(xiàn)數(shù)據(jù)共享 2實(shí)現(xiàn)Java的多重繼承感謝閱讀Sunsun2=Sun.getInstance(); 一個(gè)類的類體當(dāng)中出現(xiàn)了另一個(gè)類的定義這另一個(gè)精品文檔放心下載sun1.shine(); 類就是內(nèi)部類sun2.shine(); 內(nèi)部類分類:} 成員內(nèi)部類、靜態(tài)內(nèi)部類、局部?jī)?nèi)部類、匿名內(nèi)部類}成員內(nèi)部類classSun{//靜態(tài)屬性只有一份 publicclassTestInner{精品文檔放心下載privatestaticSuninstance=newSun(); publicstaticvoidmain(String[]args){感謝閱讀/*//構(gòu)造方法私有化防止本類之外的其他地方直 主方法代碼感謝閱讀接通過(guò)new得到新的Sun */privateSun(){} }publicstaticSungetInstance(){ }精品文檔放心下載returninstance; //將靜態(tài)屬性返回 classOuter{精品文檔放心下載} staticStringname;publicvoidshine(){ Stringstr; //成員變量依賴于對(duì)象存在謝謝閱讀System.out.println("sunshine"); classInner{謝謝閱讀} publicvoidshow(){} /*.1.如果show()被執(zhí)行了那說(shuō)明肯定有Inner對(duì)象.感謝閱讀

Inner()因?yàn)閟how非靜態(tài)方法必須通過(guò)對(duì)象來(lái)調(diào)用

內(nèi)部類中能訪問(wèn)什么?外部類所有的屬性和方2.因?yàn)橐呀?jīng)有Inner類型對(duì)象Inner類肯定可見(jiàn)精品文檔放心下載

法因?yàn)镮nner是成員內(nèi)部類肯定已經(jīng)有Outer對(duì)象了精品文檔放心下載3.有外部類對(duì)象了有沒(méi)有外部類屬性???所以只要有了成員內(nèi)部類對(duì)象就可以訪問(wèn)外部類的所有屬性和方法*/System.out.println(name);System.out.println(str);}}}

*/classA{//成員變量staticintj;intk;//成員內(nèi)部類classB{publicvoidchange(){j=100;k=1000;display();get();publicclassTestMemberInner{感謝閱讀

}publicstaticvoidmain(String[]args){謝謝閱讀

}A.Bab=newA().new

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論