母亲3免费完整高清全集在线观看,少妇aaa片,亚洲系列一区中文字幕,熟妇人妻一区二区三区四区,亚洲色成人www永久网站

課程(cheng)咨詢: 400-996-5531 / 投訴建議: 400-111-8989

認識達內從這里開始

認真做教育 專心促就業(ye)

java經典核心基礎(一)

  • 發布:IT培訓
  • 來源:達內
  • 時間:2014-12-04 00:32

參(can)賽(sai)學員:李云(yun)龍(long)

獲獎(jiang)獎(jiang)項(xiang):三(san)等獎(jiang)

寫代碼:

1,明(ming)確(que)需求。我要做什么?

2,分(fen)析思路(lu)。我要(yao)怎么做?1,2,3。

3,確定步驟(zou)。每一個(ge)思路(lu)部分用到哪些語句,方(fang)法(fa),和對象。

4,代碼實現。用具體的java語(yu)言(yan)代碼把思路體現出來。

學習新技(ji)術的四點(dian):

1,該技術是什么(me)?

2,該技術有什么特點(使(shi)用注意):

3,該技術怎么使用(yong)。demo

4,該技術什么(me)時候用?test。

-----------------------------------------------------------------------------------------------

一(yi):java概述:

1991 年Sun公(gong)司的(de)(de)James Gosling等人開(kai)始(shi)開(kai)發(fa)名稱為 Oak 的(de)(de)語言,希(xi)望用于控(kong)制嵌入在有線(xian)電(dian)視交換盒、PDA等的(de)(de)微處理(li)器;

1994年將Oak語言更(geng)名為;

Java的三種技(ji)術架構:

JAVAEE:Java Platform Enterprise Edition,開(kai)發企業(ye)環境下的(de)應用程(cheng)序,主要針(zhen)對web程(cheng)序開(kai)發;

JAVASE:Java Platform Standard Edition,完成(cheng)桌面應(ying)用程(cheng)序(xu)的開發,是其它(ta)兩者的基礎;

JAVAME:Java Platform Micro Edition,開發電子消費產品和嵌(qian)入式(shi)設備,如(ru)手(shou)機(ji)中的程(cheng)序;

1,JDK:Java Development Kit,java的(de)(de)開(kai)發和運行環境,java的(de)(de)開(kai)發工具和jre。

2,JRE:Java Runtime Environment,的(de)運行環境,java運行的(de)所需的(de)類庫(ku)+JVM(java虛(xu)擬機(ji))。

3,配置環境(jing)變量:讓java jdk\bin目錄(lu)下的工(gong)具,可以在任意目錄(lu)下運行,原因是,將該工(gong)具所在目錄(lu)告訴了系統,當(dang)使用(yong)該工(gong)具時,由系統幫我們去找(zhao)指定的目錄(lu)。

環(huan)境變量的配置:

1):永久配置方式:JAVA_HOME=%安裝路徑%\Java\jdk

path=%JAVA_HOME%\bin

2):臨(lin)時配置(zhi)方式:set path=%path%;C:\Program Files\Java\jdk\bin

特點(dian):系(xi)統默認先(xian)去當前路(lu)(lu)徑下(xia)找要執行的(de)(de)程序(xu),如果沒有(you),再去path中(zhong)設置的(de)(de)路(lu)(lu)徑下(xia)找。

classpath的配(pei)置:

1):永(yong)久配(pei)置(zhi)方(fang)式(shi):classpath=.;c:\;e:\

2):臨時(shi)配置方(fang)式(shi):set classpath=.;c:\;e:\

注意:在定義classpath環境(jing)變量時,需(xu)要注意的(de)情況

如(ru)果(guo)沒有(you)定義環(huan)境變量classpath,java啟動jvm后(hou),會在當(dang)前目錄下查找要(yao)運(yun)行的類文件;

如果指定了(le)classpath,那么會在指定的目錄下查找要運行的類文件。

還會在當前目錄找嗎(ma)?兩種情(qing)況(kuang):

1):如果classpath的(de)值結(jie)尾處有(you)分號(hao),在具體路徑中(zhong)沒有(you)找到運(yun)行的(de)類,會默認在當前目錄再找一次。

2):如果(guo)classpath的(de)(de)值結果(guo)出沒(mei)有分號,在具體的(de)(de)路徑中沒(mei)有找(zhao)到運行(xing)的(de)(de)類(lei),不(bu)會(hui)再當前目錄(lu)找(zhao)。

一般不(bu)指定分號,如果(guo)沒(mei)有(you)在指定目錄(lu)下(xia)找(zhao)到要運行的類(lei)文件,就報錯,這樣可以調(diao)試程序。

4,javac命令和java命令做什(shen)么事情(qing)呢(ni)?

要知道java是分兩部分的:一個是編譯,一個是運(yun)行。

javac:負(fu)責的(de)(de)是(shi)編(bian)(bian)譯的(de)(de)部(bu)分,當執(zhi)行javac時,會啟動java的(de)(de)編(bian)(bian)譯器程(cheng)序。對指定擴展名的(de)(de).java文件(jian)(jian)進行編(bian)(bian)譯。 生成了jvm可以(yi)識別(bie)的(de)(de)字節碼文件(jian)(jian)。也就是(shi)class文件(jian)(jian),也就是(shi)java的(de)(de)運行程(cheng)序。

 java:負責運行的(de)部分(fen).會啟動jvm.加載運行時所需的(de)類庫,并對class文(wen)件進行執行.

一(yi)個(ge)文件要(yao)被執行,必須要(yao)有一(yi)個(ge)執行的起(qi)(qi)始點(dian),這個(ge)起(qi)(qi)始點(dian)就是main函數.

----------------------------------------------------------------------------------------------

二:java語(yu)法基礎:

1,關鍵字:其實(shi)就(jiu)是某種(zhong)語言(yan)賦予了(le)特殊(shu)含義的單(dan)詞。

保(bao)留字:其實就是還沒有賦予特殊含義,但(dan)是準備日(ri)后(hou)要使用過的單詞(ci)。

2,標示(shi)符(fu):其實就(jiu)是在程(cheng)序中自定(ding)義的名(ming)詞。比(bi)如類名(ming),變量名(ming),函(han)數名(ming)。包含 0-9、a-z、$、_ ;

注意:

1),數(shu)字不可(ke)以開頭。

2),不可以(yi)使用關鍵字(zi)。

3,常量:是在程(cheng)序中的不會變化的數據。

4,變量:其(qi)實(shi)就是內(nei)存中的(de)一個存儲空間,用于(yu)存儲常量數(shu)據。

作(zuo)用(yong):方便(bian)于運算。因為有些數(shu)據(ju)不(bu)確定。所以(yi)確定該數(shu)據(ju)的名詞和存儲(chu)空間。

特點:變量空間可以(yi)重復使用。

什么(me)時候定(ding)義(yi)變量(liang)?只要是(shi)數據不確定(ding)的時候,就定(ding)義(yi)變量(liang)。

變(bian)量空(kong)間(jian)的開辟需要什(shen)么要素呢?

1,這(zhe)個空間(jian)要存儲(chu)什么數據?數據類型。

2,這個空間叫什么名(ming)(ming)字啊(a)?變量(liang)名(ming)(ming)稱。

3,這個空間的第一次的數據是什么(me)? 變(bian)量的初始化(hua)值(zhi)。

變(bian)量的(de)作用域和生存(cun)期:

變量的作用域:

 作用域從變(bian)量定義的(de)位置開始,到該變(bian)量所在的(de)那對(dui)大括號結束;

生命周期:

變量(liang)從定義的(de)位置開始就在內存中(zhong)活了;

變量到達(da)它所在的(de)(de)作(zuo)用域的(de)(de)時候就在內存(cun)中消失了;

數據類型:

1):基本數據類型(xing):byte、short、int、long、float、double、char、boolean

2):引用數據(ju)類(lei)型: 數組、類(lei)、接口。

級(ji)別(bie)從低到(dao)高為(wei):byte,char,short(這三個平級(ji))-->int-->float-->long-->double

自(zi)動類型轉換:從低級(ji)別到高(gao)級(ji)別,系統自(zi)動轉的;

強制類(lei)型轉換:什么(me)情況下使用?把一(yi)(yi)個高級別(bie)的(de)數賦給一(yi)(yi)個別(bie)該數的(de)級別(bie)低的(de)變量;

運算符號:

1)、算術運算符。

+ - * / % %:任何整數(shu)(shu)模(mo)2不是0就是1,所以只要改變被(bei)模(mo)數(shu)(shu)就可以實現開關運算。

+:連接符。

++,--

2)、賦值運算符。

= += -= *= /= %=

3)、比較運算符。

特(te)點(dian):該運算符的特(te)點(dian)是:運算完(wan)的結(jie)果,要么是true,要么是false。

4)、邏輯(ji)運(yun)算符。

& | ^ ! && ||

邏(luo)輯運算(suan)符除了(le) ! 外都是(shi)用于(yu)連接兩個boolean類型表(biao)達式(shi)。

&: 只有(you)兩邊(bian)都為true結果是true。否則就是false。

|:只(zhi)要兩邊都為false結果是false,否則就是true

^:異或:和或有點(dian)不(bu)一樣。

兩邊結果一樣(yang),就為false。

兩邊(bian)結果(guo)不(bu)一(yi)樣(yang),就為true.

& 和 &&區別: & :無論左(zuo)邊(bian)結果是什(shen)么,右邊(bian)都參與運(yun)算。

&&:短路與,如果左邊為false,那么(me)右邊不參(can)數(shu)與運(yun)算。

| 和|| 區別:|:兩邊(bian)都運算(suan)。

||:短路或,如(ru)果左邊(bian)為true,那么右邊(bian)不參(can)與運算。

5)、位運算符:用(yong)于操作二(er)進制位的(de)運算符。

& | ^

<< >> >>>(無(wu)符(fu)號右移)

練習:對兩(liang)個變(bian)(bian)量(liang)的(de)數(shu)據進(jin)行互換。不需(xu)要第三(san)方變(bian)(bian)量(liang)。

int a = 3,b = 5;-->b = 3,a = 5;

a = a + b; a = 8;

b = a - b; b = 3;

a = a - b; a = 5;

a = a ^ b;//

b = a ^ b;//b = a ^ b ^ b = a

a = a ^ b;//a = a ^ b ^ a = b;

練習:高效的算出(chu) 2*8 = 2<<3;

5,語句。

If switch do while while for

這(zhe)些(xie)語句什(shen)么時候用?

 1)、當判斷固定個數的(de)值的(de)時候,可(ke)以使用if,也可(ke)以使用switch。

但是(shi)建議使用switch,效率相對較高。

switch(變(bian)量(liang)){

case 值:要執行(xing)的語句;break;

default:要執行的語句;

}

工作(zuo)原理:用小括號中的(de)(de)變量的(de)(de)值依次和(he)case后面的(de)(de)值進(jin)行對比(bi),和(he)哪個case后面的(de)(de)值相同了

就執行哪(na)個case后面(mian)的語(yu)句,如果沒有(you)相(xiang)同(tong)的則(ze)執行default后面(mian)的語(yu)句;

細(xi)節(jie):1):break是可以省略的,如果省略了(le)就一直執行到(dao)遇到(dao)break為止;

2):switch 后(hou)面的(de)小括(kuo)號中的(de)變量應(ying)該是byte,char,short,int四種(zhong)(zhong)類(lei)型(xing)中的(de)一種(zhong)(zhong);

3):default可(ke)以寫在switch結構中的(de)任(ren)意位置(zhi);如果將default語句(ju)放在了第(di)一行,則不(bu)管expression與case中的(de)value是否匹配,程(cheng)序(xu)會從default開始執行直到第(di)一個break出現(xian)。

2)、當(dang)判(pan)斷數(shu)據范圍,獲取判(pan)斷運算結果boolean類型時,需要(yao)使用if。

3)、當某些語(yu)句(ju)需要執行很多次時,就(jiu)用循環結構。

while和for可以進行互換。

區(qu)別在于:如(ru)果需(xu)要(yao)定義(yi)變量(liang)控制循環次數。建議使用for。因為(wei)for循環完畢(bi),變量(liang)在內存中釋放。

break:作用于switch ,和(he)循環(huan)語句,用于跳出(chu),或(huo)者稱為結束(shu)。

break語(yu)句(ju)單獨存(cun)在時(shi),下面(mian)不要定義其他語(yu)句(ju),因(yin)為執行(xing)不到,編(bian)譯會(hui)失敗。當循環嵌套時(shi),break只(zhi)跳出當前所在循環。要跳出嵌套中的外部循環,只(zhi)要給循環起名字即可,這個名字稱(cheng)之為標號(hao)。

continue:只作用于循環結構,繼續循環用的。

作(zuo)用(yong):結束(shu)本次循環,繼續下次循環。該(gai)語句單獨(du)存在時(shi),下面不可以(yi)定義語句,執行不到。

6,函(han) 數:為(wei)了提高代碼的復用(yong)性(xing),可以將其定(ding)義成一個單獨(du)的功能,該功能的體現就是(shi)java中(zhong)的函(han)數。函(han)數就是(shi)體現之一。

java中的(de)函數的(de)定義(yi)格式:

修(xiu)飾符 返(fan)回值類(lei)(lei)型(xing) 函(han)數(shu)名(ming)(參(can)數(shu)類(lei)(lei)型(xing) 形(xing)式參(can)數(shu)1,參(can)數(shu)類(lei)(lei)型(xing) 形(xing)式參(can)數(shu)1,…){

執行語句;

return 返回值;

}

當函(han)數沒有具體的返(fan)回值時,返(fan)回的返(fan)回值類型用void關鍵字表示。

如果函數(shu)的返回值(zhi)類型是void時,return語句可以(yi)省略不寫(xie)的,系統會幫你自動加上。

return的作用(yong):結(jie)束(shu)函數。結(jie)束(shu)功能(neng)。

如(ru)何定義(yi)一個(ge)函數?

函(han)數(shu)其(qi)實(shi)就是(shi)一個(ge)功能(neng),定義函(han)數(shu)就是(shi)實(shi)現功能(neng),通過兩個(ge)明確來(lai)完成:

1)、明確該功能的(de)運算完的(de)結果,其實是(shi)在明確這個函數的(de)返回(hui)值類(lei)型。

2)、在(zai)實(shi)現該(gai)功能的(de)過程中是否(fou)有(you)未(wei)知內(nei)容參與了運算,其實(shi)就是在(zai)明確這個(ge)函數(shu)的(de)參數(shu)列表(參數(shu)類型&參數(shu)個(ge)數(shu))。

函數的作用:

1)、用于(yu)定義功(gong)能。

2)、用于封(feng)裝(zhuang)代碼提(ti)高(gao)代碼的復用性。

注意:函數中只能調(diao)用(yong)函數,不能定義(yi)函數。

主函數:

1)、保證該類的獨立運行。

2)、因為它是程序的入口。

3)、因(yin)為它在被jvm調(diao)用。

函數定義名稱是為什么呢?

答(da):1)、為了(le)對(dui)該(gai)功(gong)能進(jin)行標示,方便(bian)于(yu)調用(yong)。

2)、為了(le)通過名稱就(jiu)可以(yi)明(ming)確函(han)數的功能,為了(le)增加代碼(ma)的閱讀性。

重載(zai)的(de)定義是:在一個類(lei)中,如果出現了兩(liang)個或者兩(liang)個以上的(de)同名函(han)數(shu),只(zhi)要它們的(de)參數(shu)的(de)個數(shu),或者參數(shu)的(de)類(lei)型不同,即(ji)可稱之為該函(han)數(shu)重載(zai)了。

如(ru)何區分重載:當函(han)數(shu)同名時,只看參數(shu)列表(biao)。和返回值(zhi)類(lei)型沒關系。

7,數 組(zu):用于存(cun)儲同(tong)一類型數據(ju)的(de)一個容器。好(hao)處(chu):可以對該容器中的(de)數據(ju)進(jin)行編號,從(cong)0開(kai)始。數組(zu)用于封裝數據(ju),就(jiu)是一個具體(ti)的(de)實體(ti)。

如(ru)何在(zai)java中表(biao)現一個數(shu)組(zu)呢?兩種表(biao)現形式。

1)、元(yuan)素(su)類型[] 變量(liang)名 = new 元(yuan)素(su)類型[元(yuan)素(su)的個數];

2)、元(yuan)素類(lei)型[] 變量(liang)名 = {元(yuan)素1,元(yuan)素2...};

元(yuan)素(su)類型[] 變量名 = new 元(yuan)素(su)類型[]{元(yuan)素(su)1,元(yuan)素(su)2...};

---------------------------------------------------------

//二分查找法。必須有(you)前提:數組中的元素要有(you)序。

    public static int halfSeach_2(int[] arr,int key){
        int min,max,mid;
        min = 0;
        max = arr.length-1;
        mid = (max+min)>>1; //(max+min)/2;
        while(arr[mid]!=key){
            if(key>arr[mid]){
                min = mid + 1;
            }
            else if(key<arr[mid])
                max = mid - 1;
            if(max<min)
                return -1;
            mid = (max+min)>>1;
        }
        return mid;
    }

---------------------------------------------------------

java分了5片內存。

1:寄(ji)存器。2:本(ben)地(di)方(fang)法區。3:方(fang)法區。4:棧。5:堆。

棧:存儲的(de)(de)都是局部變(bian)量 ( 函數中(zhong)定義的(de)(de)變(bian)量,函數上的(de)(de)參數,語句中(zhong)的(de)(de)變(bian)量 );

只要數(shu)據運算完成所(suo)在(zai)的區域結束,該數(shu)據就會(hui)被釋放。

堆:用于存(cun)儲(chu)數組和對象,也就(jiu)(jiu)是實體(ti)。啥(sha)是實體(ti)啊?就(jiu)(jiu)是用于封裝多個數據的。

1:每一個實體都有(you)內存首地址值。

2:堆內(nei)存中的變(bian)量都有(you)默認初始化值(zhi)。因為數據類型不(bu)同,值(zhi)也不(bu)一(yi)樣。

3:垃圾回收機制。

----------------------------------------------------------------------------------------------

三:面向對象(xiang):★★★★★

特點:1:將復(fu)雜的(de)事情簡單化。

2:面向對象(xiang)將(jiang)以前的過程中(zhong)的執行者,變(bian)成了指(zhi)揮者。

3:面向(xiang)對象這(zhe)種(zhong)思想是(shi)符(fu)合現在(zai)人(ren)們思考(kao)習慣(guan)的(de)一種(zhong)思想。

過程(cheng)(cheng)和(he)對象(xiang)在我們的程(cheng)(cheng)序中是(shi)(shi)如何(he)體現(xian)的呢?過程(cheng)(cheng)其實(shi)就是(shi)(shi)函數;對象(xiang)是(shi)(shi)將函數等一些內(nei)容進(jin)行了(le)封裝。

匿名對象使用場景:

1:當(dang)對方法只進行一(yi)次調(diao)用的時候,可以(yi)使用匿名對象。

2:當對(dui)象對(dui)成員進行多(duo)次(ci)調(diao)用時,不能使用匿名對(dui)象。必須給(gei)對(dui)象起(qi)名字。

在類中定義(yi)其實(shi)都(dou)稱(cheng)之為(wei)成(cheng)員(yuan)。成(cheng)員(yuan)有兩種:

1:成員變(bian)量(liang):其(qi)實對應的就(jiu)是事物的屬性。

2:成(cheng)員函數(shu):其實對應的就是事物的行為。

所以(yi),其實定義類,就是(shi)(shi)在(zai)(zai)定義成員(yuan)變量和成員(yuan)函數。但是(shi)(shi)在(zai)(zai)定義前,必須先要(yao)對(dui)事物進行(xing)屬性(xing)和行(xing)為的分析,才可以(yi)用(yong)代碼來體(ti)現。

private int age;//私(si)有的(de)訪(fang)問(wen)權(quan)限最低,只有在本(ben)類(lei)中的(de)訪(fang)問(wen)有效。

注(zhu)意:私有(you)僅(jin)僅(jin)是封(feng)裝的一種體(ti)現形式而已。

私有(you)(you)的(de)成員:其(qi)他類不(bu)能直(zhi)接(jie)創建對(dui)(dui)(dui)(dui)象(xiang)訪(fang)問(wen),所以只有(you)(you)通過(guo)本(ben)類對(dui)(dui)(dui)(dui)外提供(gong)具體的(de)訪(fang)問(wen)方式來完成對(dui)(dui)(dui)(dui)私有(you)(you)的(de)訪(fang)問(wen),可以通過(guo)對(dui)(dui)(dui)(dui)外提供(gong)函數的(de)形式對(dui)(dui)(dui)(dui)其(qi)進(jin)行訪(fang)問(wen)。

好(hao)處(chu):可以在函數中加入邏(luo)輯判斷(duan)(duan)等操作(zuo),對數據進行(xing)判斷(duan)(duan)等操作(zuo)。

總結(jie):開發時,記住,屬性是用于存儲數據(ju)的(de),直接被(bei)訪問,容(rong)易出現安全(quan)隱(yin)患,所以,類中的(de)屬性通常被(bei)私有化,并對外提供(gong)公共的(de)訪問方法。

這個方(fang)法一般有兩(liang)個,規范寫法:對于屬性(xing) xxx,可以使(shi)用(yong)setXXX(),getXXX()對其進行操作。

類中怎么(me)沒(mei)有定義(yi)主函(han)數呢?

注(zhu)意:主(zhu)函(han)數的存(cun)在,僅為該類是否需(xu)要(yao)獨(du)立運行(xing),如果不(bu)需(xu)要(yao),主(zhu)函(han)數是不(bu)用定義(yi)的。

主函數(shu)的解釋(shi):保(bao)證所在類的獨(du)立(li)運行,是程序的入口(kou),被jvm調用。

成員變量和(he)局(ju)部變量的(de)區(qu)別:

1:成(cheng)員變量直接定義在類(lei)中。

局部(bu)變(bian)量定義(yi)在方法(fa)中,參數上,語句中。

2:成員變量(liang)在這個(ge)類(lei)中(zhong)有效。

局部變量只在自(zi)己所屬的(de)大括(kuo)號內有效,大括(kuo)號結束,局部變量失去作用(yong)域。

3:成員變量存(cun)在于(yu)堆內存(cun)中,隨著對象(xiang)的產生而存(cun)在,消失而消失。

局部變量(liang)存(cun)在(zai)于棧(zhan)內存(cun)中,隨著所屬(shu)區域的(de)運(yun)行而存(cun)在(zai),結束而釋放。

構造函數:用于給對(dui)象(xiang)進行初始化,是給與之對(dui)應的對(dui)象(xiang)進行初始化,它具有針對(dui)性(xing),函數中的一種。

特點:

1:該函數(shu)的名(ming)(ming)稱和所(suo)在類的名(ming)(ming)稱相同(tong)。

2:不需要定義返回(hui)值(zhi)類型(xing)。

3:該函數(shu)沒(mei)有具體的返回值。

記住:所有對象創(chuang)建時,都需要初始化才可以使用。

注意事項(xiang):一(yi)個類(lei)(lei)在定(ding)(ding)義(yi)(yi)時,如果沒(mei)(mei)有定(ding)(ding)義(yi)(yi)過構造(zao)函數(shu),那么該類(lei)(lei)中會(hui)自動生(sheng)成一(yi)個空參數(shu)的構造(zao)函數(shu),為了(le)方便該類(lei)(lei)創(chuang)建(jian)對象,完成初始化(hua)。如果在類(lei)(lei)中自定(ding)(ding)義(yi)(yi)了(le)構造(zao)函數(shu),那么默(mo)認的構造(zao)函數(shu)就沒(mei)(mei)有了(le)。

一(yi)個(ge)類(lei)中(zhong),可以(yi)(yi)有多個(ge)構(gou)(gou)造函數(shu),因為它們的(de)函數(shu)名稱(cheng)都相(xiang)同(tong),所以(yi)(yi)只能(neng)通過參數(shu)列表(biao)來區分(fen)。所以(yi)(yi),一(yi)個(ge)類(lei)中(zhong)如果出現(xian)多個(ge)構(gou)(gou)造函數(shu)。它們的(de)存在是(shi)以(yi)(yi)重載體現(xian)的(de)。

構造函數(shu)和(he)一般函數(shu)有什(shen)么區別呢(ni)?

1:兩個函(han)數定義(yi)格(ge)式(shi)不同。

2:構造(zao)函數是在對象創(chuang)建時,就被調用,用于初(chu)始化,而且初(chu)始化動作(zuo)只執(zhi)行一(yi)次。

一般函數,是對象創建后(hou),需要調用才(cai)執行,可以被調用多次。

什(shen)么時候(hou)使用構造函數呢?

分析事(shi)物時,發現(xian)具(ju)體事(shi)物一出現(xian),就具(ju)備了一些特(te)征(zheng),那就將這些特(te)征(zheng)定義到構造函數內。

構(gou)造(zao)代碼塊和構(gou)造(zao)函數有什么區別(bie)?

構造代(dai)(dai)碼(ma)塊(kuai):是(shi)給所有(you)的(de)對(dui)象(xiang)進行初始化(hua),也就是(shi)說(shuo),所有(you)的(de)對(dui)象(xiang)都會(hui)調(diao)用一個(ge)代(dai)(dai)碼(ma)塊(kuai)。只(zhi)要對(dui)象(xiang)一建(jian)立。就會(hui)調(diao)用這(zhe)個(ge)代(dai)(dai)碼(ma)塊(kuai)。

構造函(han)數:是(shi)給與(yu)之(zhi)對(dui)應的對(dui)象進(jin)行(xing)初始(shi)化。它具有針對(dui)性。

Person p = new Person();

創建(jian)一個對(dui)象都在內存(cun)中做(zuo)了什么事(shi)情?

1:先將(jiang)硬盤上指定位(wei)置的Person.class文(wen)件加載進內存(cun)。

2:執(zhi)行main方(fang)法(fa)時,在(zai)棧(zhan)內(nei)存中開(kai)辟(pi)了main方(fang)法(fa)的空間(壓棧(zhan)-進棧(zhan)),然后在(zai)main方(fang)法(fa)的棧(zhan)區分配了一(yi)個(ge)變量(liang)p。

3:在堆內存中(zhong)開辟一個(ge)(ge)實體空間,分配了一個(ge)(ge)內存首地址值。new

4:在該(gai)實體空間(jian)中進行(xing)屬性的空間(jian)分配(pei),并進行(xing)了默認初始化。

5:對空(kong)間中的屬性進行顯示初始化。

6:進(jin)行實體(ti)的構(gou)造(zao)代碼塊(kuai)初始化。

7:調用該實(shi)體對應的構造函數,進(jin)行構造函數初始化。()

8:將首地址賦值給p ,p變量就(jiu)引用了(le)該實體。(指向(xiang)了(le)該對(dui)象)

--------------------------------------------------------------------------------------------

封 裝(面向對(dui)象(xiang)特征之(zhi)一(yi)):是指隱藏對(dui)象(xiang)的屬性(xing)和實(shi)現細節(jie),僅對(dui)外提供公共訪問方(fang)式。

好處:將變化隔離(li);便于使用(yong)(yong);提(ti)高(gao)重用(yong)(yong)性;安全(quan)性。

封裝原(yuan)則:將不需(xu)要對外提(ti)供的內容都隱(yin)藏起來,把(ba)屬性(xing)都隱(yin)藏,提(ti)供公共方法對其訪(fang)問。

this:代表對象。就(jiu)是所(suo)在函數所(suo)屬對象的引(yin)用。

this到底代表什么呢?哪(na)個對象調用了this所在的函數,this就(jiu)代表哪(na)個對象,就(jiu)是哪(na)個對象的引(yin)用。

開發時(shi),什么時(shi)候使用this呢(ni)?

在定義(yi)功能(neng)(neng)時,如果該(gai)功能(neng)(neng)內(nei)部使用(yong)(yong)到(dao)了調(diao)用(yong)(yong)該(gai)功能(neng)(neng)的對象,這時就用(yong)(yong)this來表示這個對象。

this 還可(ke)以用(yong)于(yu)構造函數間的調(diao)用(yong)。

調(diao)用格式:this(實際參數);

this對象后面跟上 . 調用的是成(cheng)員屬性和成(cheng)員方法(fa)(一般方法(fa));

this對象(xiang)后面跟上 () 調用的(de)是本類中的(de)對應參數的(de)構造函數。

注(zhu)意(yi):用(yong)(yong)this調用(yong)(yong)構(gou)造函(han)數(shu),必須定(ding)義在構(gou)造函(han)數(shu)的第一行(xing)。因(yin)為構(gou)造函(han)數(shu)是(shi)用(yong)(yong)于(yu)初始化(hua)的,所以(yi)初始化(hua)動作一定(ding)要執行(xing)。否則(ze)編譯失(shi)敗(bai)。

static:★★★ 關鍵字,是一個(ge)修飾符(fu),用于(yu)修飾成(cheng)員(成(cheng)員變量和成(cheng)員函數)。

特點:

1,想要(yao)實現對象中(zhong)的(de)共性數據(ju)的(de)對象共享。可以將這個數據(ju)進行靜(jing)態修飾。

2,被(bei)(bei)靜(jing)(jing)態(tai)修飾(shi)的(de)成員,可以直接被(bei)(bei)類名(ming)(ming)所調用(yong)(yong)。也(ye)就是說,靜(jing)(jing)態(tai)的(de)成員多了一種調用(yong)(yong)方(fang)式。類名(ming)(ming).靜(jing)(jing)態(tai)方(fang)式。

3,靜態(tai)隨(sui)著(zhu)類的加載而加載。而且優先于對象(xiang)存(cun)在。

弊端:

 1,有(you)些數(shu)據是對(dui)象特(te)有(you)的(de)(de)數(shu)據,是不可以被(bei)靜態修(xiu)飾的(de)(de)。因為那樣的(de)(de)話(hua),特(te)有(you)數(shu)據會變成對(dui)象的(de)(de)共享(xiang)數(shu)據。這樣對(dui)事物的(de)(de)描(miao)述就出了問題。所以,在定義靜態時,必(bi)須要(yao)明確,這個數(shu)據是否(fou)是被(bei)對(dui)象所共享(xiang)的(de)(de)。

2,靜(jing)態(tai)方法(fa)只能訪問靜(jing)態(tai)成員(yuan),不可以訪問非靜(jing)態(tai)成員(yuan)。

因為靜(jing)態方法加(jia)載時,優先于(yu)對象存在,所以(yi)沒有(you)辦(ban)法訪問對象中(zhong)的成員。

3,靜態方法中不能(neng)使用this,super關鍵字。

因為this代表對象(xiang),而(er)靜態在時,有可(ke)能(neng)沒(mei)有對象(xiang),所以(yi)this無(wu)法(fa)使用。

4,主函數是靜態的。

什(shen)么時候定義(yi)靜(jing)態成員(yuan)呢?或者說:定義(yi)成員(yuan)時,到(dao)底需不需要(yao)被靜(jing)態修飾呢?

成員分兩種:

1,成員變量(liang)。(數據共享時靜(jing)態化)

該成(cheng)員變(bian)量的數據是否是所有對象(xiang)都一(yi)樣:

如(ru)果(guo)是,那么該變(bian)量需要被靜態修飾(shi),因為是共享(xiang)的數(shu)據。

如(ru)果不(bu)是,那(nei)么(me)就說這是對象的特有數(shu)據,要存(cun)儲到對象中。

2,成員函數。(方法中沒有(you)調用特有(you)數據時(shi)就定(ding)義成靜態)

如果判斷成員函(han)數(shu)是否需要被靜態修飾呢?

只要(yao)參考,該(gai)函(han)數內是(shi)否(fou)訪問了(le)對象中的特有數據:

如果有訪問特有數據,那方法不能被(bei)靜態修飾。

如果沒(mei)有訪(fang)問(wen)過(guo)特(te)有數據,那么這個方法需要被(bei)靜態修飾。

成員變量(liang)和靜態(tai)變量(liang)的區(qu)別:

1,成員(yuan)變量(liang)所屬于對象。所以也(ye)稱為實例變量(liang)。

靜態變(bian)量(liang)所(suo)屬(shu)于類。所(suo)以也稱為類變(bian)量(liang)。

2,成員變量存(cun)在于堆內存(cun)中。

靜態(tai)變量存(cun)在于(yu)方法區中。

3,成員變量(liang)隨著對(dui)象(xiang)創建而存(cun)在。隨著對(dui)象(xiang)被回(hui)收而消失。

靜態變(bian)量(liang)隨(sui)(sui)著(zhu)(zhu)類(lei)的加載而存在。隨(sui)(sui)著(zhu)(zhu)類(lei)的消失而消失。

4,成員(yuan)變量只能被對象所調用 。

靜態變量可以(yi)被(bei)對(dui)象調(diao)用,也(ye)可以(yi)被(bei)類(lei)名(ming)調(diao)用。

所以,成員(yuan)變(bian)量可(ke)以稱為對象的特有數據,靜態變(bian)量稱為對象的共享數據。

靜態的注意:靜態的生(sheng)命(ming)周(zhou)期很長。

靜態代(dai)碼塊(kuai)(kuai):就是一個(ge)有靜態關鍵(jian)字標示的一個(ge)代(dai)碼塊(kuai)(kuai)區(qu)域。定義在類中。

作用:可(ke)以完成類的初始化。靜(jing)態代碼塊隨著(zhu)類的加載而執行,而且只執行一次(ci)(new 多個對(dui)象就(jiu)只執行一次(ci))。如果(guo)和(he)主函(han)數在同一類中,優先于主函(han)數執行。

Public:訪問權限最大。

static:不(bu)需要對象,直接(jie)類名即可。

void:主函數沒有返回(hui)值。

Main:主函數特定的名(ming)稱。

(String[] args):主函(han)數(shu)的(de)參(can)數(shu),是一個字符串數(shu)組類(lei)型的(de)參(can)數(shu),jvm調用main方(fang)法時,傳遞(di)的(de)實(shi)際參(can)數(shu)是 new String[0]。

jvm默認傳(chuan)(chuan)遞的(de)是長度為(wei)0的(de)字符(fu)串數(shu)組(zu),我們在(zai)(zai)運行(xing)該類(lei)時,也可以(yi)(yi)指定具體的(de)參(can)(can)數(shu)進(jin)行(xing)傳(chuan)(chuan)遞。可以(yi)(yi)在(zai)(zai)控制臺,運行(xing)該類(lei)時,在(zai)(zai)后面加入(ru)參(can)(can)數(shu)。參(can)(can)數(shu)之間(jian)通過空格隔(ge)開。jvm會自動將(jiang)這些字符(fu)串參(can)(can)數(shu)作(zuo)為(wei)args數(shu)組(zu)中的(de)元(yuan)素(su),進(jin)行(xing)存儲。

靜態代(dai)碼塊(kuai)(kuai)、構造(zao)代(dai)碼塊(kuai)(kuai)、構造(zao)函數同時存在(zai)時的執行順序:靜態代(dai)碼塊(kuai)(kuai) à 構造(zao)代(dai)碼塊(kuai)(kuai) à 構造(zao)函數;

生成Java幫助文(wen)檔:命(ming)令格式:javadoc –d 文(wen)件(jian)夾名 –auther –version *.java

/** //格式

*類描述

*@author 作者名

*@version 版本號(hao)

*/

/**

*方法描述

*@param 參(can)數(shu)描述

*@return 返回值(zhi)描述

*/

---------------------------------------------------------------------------------------------

設(she)計(ji)模式:解決問題最(zui)行之有(you)效的思想。是一套被反復(fu)使用、多(duo)數人(ren)知曉的、經過分類(lei)編目的、代(dai)(dai)碼(ma)設(she)計(ji)經驗的總結。使用設(she)計(ji)模式是為了可重(zhong)用代(dai)(dai)碼(ma)、讓代(dai)(dai)碼(ma)更容易被他人(ren)理(li)解、保(bao)證代(dai)(dai)碼(ma)可靠性(xing)。

java中有23種設計模式:

單例(li)設計(ji)模式:★★★★★

解決的問(wen)題:保證一(yi)個類(lei)在內存中的對象唯(wei)一(yi)性。

比如:多程(cheng)序讀(du)(du)取一(yi)個配(pei)置(zhi)文(wen)件時(shi),建議配(pei)置(zhi)文(wen)件封裝成對象(xiang)。會方便操作其中(zhong)(zhong)數據,又(you)要(yao)保(bao)證多個程(cheng)序讀(du)(du)到(dao)的是同一(yi)個配(pei)置(zhi)文(wen)件對象(xiang),就(jiu)需要(yao)該配(pei)置(zhi)文(wen)件對象(xiang)在內存中(zhong)(zhong)是唯(wei)一(yi)的。

Runtime()方法就是單例設(she)計模式進行設(she)計的。

如何保證(zheng)對象唯一性(xing)呢?

思想:

1,不(bu)讓其他程序(xu)創建該類對象。

2,在本類(lei)中創建(jian)一個本類(lei)對象。

3,對外(wai)提供方法,讓其他(ta)程(cheng)序獲取(qu)這個對象(xiang)。

步驟:

1,因為創(chuang)建對(dui)象(xiang)都需要構(gou)造函數(shu)初始化(hua),只要將本(ben)類中(zhong)的構(gou)造函數(shu)私有化(hua),其他(ta)程序就無法再(zai)創(chuang)建該類對(dui)象(xiang);

2,就在類中(zhong)創建一個本類的對象;

3,定(ding)義一個方法,返回該對象(xiang),讓(rang)其(qi)他程序可以通(tong)過方法就得到本類對象(xiang)。(作用:可控)

代碼體現:

1,私(si)有(you)化構造函(han)數;

2,創建私有并靜(jing)態的本(ben)類對象;

3,定義公有并靜態的方法,返回該(gai)對象(xiang)。

---------------------------------------------

//餓漢式

class Single{

private Single(){} //私有化構造函數。

private static Single s = new Single(); //創建私有并(bing)靜態(tai)的本類對象。

public static Single getInstance(){ //定義公有(you)并靜態的方(fang)法,返回該對象。

return s;

}

}

---------------------------------------------

//懶(lan)漢(han)式:延(yan)遲(chi)加載方式。

class Single2{

private Single2(){}

private static Single2 s = null;

public static Single2 getInstance(){

if(s==null)

s = new Single2();

return s;

}

}

-------------------------------------------------------------------------------------------------

繼 承(面向(xiang)對象特征之(zhi)一)

好處:

1:提高了代碼的復用性。

2:讓類與類之(zhi)間產生了關系(xi),提供了另一個特征(zheng)多態的前(qian)提。

父類的由來:其實是由多個(ge)類不斷向上抽(chou)取共性內容而來的。

java中對于繼(ji)承,java只(zhi)支持(chi)單(dan)繼(ji)承。java雖然不(bu)直接(jie)支持(chi)多(duo)繼(ji)承,但是(shi)保留了這種多(duo)繼(ji)承機制,進行改良。

單繼承:一(yi)個類只能有一(yi)個父(fu)類。

多繼承:一個類(lei)可以(yi)有(you)多個父(fu)類(lei)。

為什么(me)不支(zhi)持多繼承呢?

因為當一個類(lei)同時(shi)繼(ji)承兩個父類(lei)時(shi),兩個父類(lei)中有相同的(de)功(gong)能,那么子類(lei)對象調用該(gai)功(gong)能時(shi),運行哪一個呢?因為父類(lei)中的(de)方法中存在方法體。

但(dan)是java支(zhi)持(chi)多重繼(ji)承。A繼(ji)承B B繼(ji)承C C繼(ji)承D。

多重繼承的出現,就(jiu)有了繼承體(ti)系。體(ti)系中的頂層父類是通過不斷向上(shang)抽取而來(lai)的。它里(li)面定(ding)義的該(gai)體(ti)系最基本(ben)最共性內容的功(gong)能。

所以(yi),一(yi)個體系要想(xiang)被使用(yong),直接查閱該系統(tong)中的(de)(de)(de)父類(lei)的(de)(de)(de)功能(neng)即(ji)可(ke)知(zhi)道該體系的(de)(de)(de)基本用(yong)法。那么想(xiang)要使用(yong)一(yi)個體系時,需要建(jian)立對象。建(jian)議建(jian)立最子(zi)(zi)類(lei)對象,因(yin)為最子(zi)(zi)類(lei)不僅可(ke)以(yi)使用(yong)父類(lei)中的(de)(de)(de)功能(neng)。還可(ke)以(yi)使用(yong)子(zi)(zi)類(lei)特有(you)的(de)(de)(de)一(yi)些(xie)功能(neng)。

簡單說:對(dui)于(yu)一(yi)個繼承體系的(de)使用,查閱頂層(ceng)(ceng)父類中的(de)內容(rong),創建最底層(ceng)(ceng)子類的(de)對(dui)象(xiang)。

子父類出現(xian)后,類中的(de)成員都有了哪些(xie)特點:

1:成員變量。

當子(zi)(zi)父類中出現一樣的(de)(de)屬性(xing)時,子(zi)(zi)類類型(xing)的(de)(de)對象(xiang),調(diao)用該屬性(xing),值(zhi)是子(zi)(zi)類的(de)(de)屬性(xing)值(zhi)。

如果想要調用父(fu)類中(zhong)的(de)屬性值,需要使用一(yi)個關鍵字:super

This:代表(biao)是本(ben)類類型(xing)的對(dui)象引用。

Super:代表是子類(lei)(lei)所屬的(de)(de)父類(lei)(lei)中的(de)(de)內存空間引(yin)用。

注意(yi):子父類中(zhong)通常是不(bu)(bu)會出現(xian)同名成員變量(liang)的,因為父類中(zhong)只要(yao)定義(yi)了,子類就不(bu)(bu)用在定義(yi)了,直接繼承過來用就可(ke)以了。

2:成員函數。

當子父類中出現了(le)一模一樣的方(fang)法(fa)時(shi),建(jian)立子類對象會運行子類中的方(fang)法(fa)。好像父類中的方(fang)法(fa)被覆蓋掉一樣。所以(yi)這種情況(kuang),是函數的另一個特性:覆蓋(復寫(xie),重寫(xie))

什么(me)時(shi)候使(shi)用覆蓋(gai)呢?當一(yi)個類(lei)的功能內容需要修改時(shi),可以通過覆蓋(gai)來實(shi)現。

3:構造函數。

發現子類構(gou)造(zao)函數運(yun)行(xing)時,先運(yun)行(xing)了父類的構(gou)造(zao)函數。為什么呢?

原因:子類的(de)所有(you)(you)構造函數(shu)中的(de)第一行,其實都有(you)(you)一條隱身的(de)語(yu)句super();

super(): 表示父類的(de)(de)構造函數(shu),并會調用于參數(shu)相(xiang)對應的(de)(de)父類中(zhong)(zhong)的(de)(de)構造函數(shu)。而super():是在調用父類中(zhong)(zhong)空參數(shu)的(de)(de)構造函數(shu)。

為什(shen)么(me)子(zi)類對象初始化時,都需要調用父類中的函(han)數(shu)?(為什(shen)么(me)要在子(zi)類構(gou)造函(han)數(shu)的第一行加(jia)入(ru)這個super()?)

因(yin)為(wei)子類(lei)繼承父(fu)類(lei),會繼承到父(fu)類(lei)中的數據(ju),所以(yi)必須要看父(fu)類(lei)是(shi)如何對(dui)(dui)自己(ji)的數據(ju)進行(xing)初始(shi)(shi)化的。所以(yi)子類(lei)在進行(xing)對(dui)(dui)象(xiang)初始(shi)(shi)化時,先(xian)調用父(fu)類(lei)的構造(zao)函數,這就是(shi)子類(lei)的實例化過程。

注意:子類(lei)中所(suo)有的(de)(de)構(gou)造函(han)數都會默認訪問父類(lei)中的(de)(de)空參數的(de)(de)構(gou)造函(han)數,因(yin)為每一個子類(lei)構(gou)造內第一行都有默認的(de)(de)語句(ju)super();

如果(guo)父(fu)類(lei)中沒有空(kong)參(can)數的(de)構造(zao)函數,那么子類(lei)的(de)構造(zao)函數內,必(bi)須通(tong)過super語句(ju)指定要(yao)訪問(wen)的(de)父(fu)類(lei)中的(de)構造(zao)函數。

如果子類構造(zao)(zao)函數(shu)中用this來指定調(diao)用子類自己的構造(zao)(zao)函數(shu),那(nei)么被調(diao)用的構造(zao)(zao)函數(shu)也一樣(yang)會訪問父類中的構造(zao)(zao)函數(shu)。

問題:super()和this()是否可以同時出現的構(gou)造(zao)函數中(zhong)。

兩個(ge)語(yu)句(ju)只能有一(yi)(yi)個(ge)定義在第一(yi)(yi)行,所以只能出現其中(zhong)一(yi)(yi)個(ge)。

super()或者this():為什么一定(ding)要定(ding)義在第一行(xing)?

因為super()或(huo)者this()都是調(diao)用(yong)構造函數(shu),構造函數(shu)用(yong)于初始化(hua),所(suo)以初始化(hua)的動作要先完成。

繼承的細節:

什么時(shi)候(hou)使用繼承呢(ni)?

當(dang)類(lei)與類(lei)之間(jian)存在著所屬(shu)關系時,才(cai)具備了繼(ji)承的前提。a是b中的一(yi)種。a繼(ji)承b。狼是犬科(ke)中的一(yi)種。

英文書中,所屬關(guan)系:" is a "

注意:不要僅僅為了獲取其他類中(zhong)的已有(you)成員進(jin)行繼承。

所(suo)以判斷所(suo)屬(shu)關(guan)系(xi),可(ke)以簡(jian)單看,如果繼承后,被(bei)繼承的(de)類(lei)中的(de)功能,都可(ke)以被(bei)該子類(lei)所(suo)具備,那么(me)繼承成立。如果不是,不可(ke)以繼承。

細節二:

在方(fang)法覆蓋時(shi),注意兩點:

1:子類(lei)(lei)覆蓋父類(lei)(lei)時,必須要保證,子類(lei)(lei)方(fang)法(fa)的權限(xian)必須大于等于父類(lei)(lei)方(fang)法(fa)權限(xian)可以實現(xian)繼承。否則(ze),編譯失(shi)敗。

2:覆(fu)蓋時,要(yao)么都靜(jing)態(tai),要(yao)么都不(bu)靜(jing)態(tai)。 (靜(jing)態(tai)只能(neng)覆(fu)蓋靜(jing)態(tai),或(huo)者被靜(jing)態(tai)覆(fu)蓋)

繼承的(de)一個(ge)弊端:打(da)破了封裝性。對于一些類,或(huo)者類中(zhong)功能(neng),是(shi)需要被繼承,或(huo)者復(fu)寫的(de)。

這時如何解(jie)決問題呢?介紹一個關鍵字,final:最終。

final特點:

1:這個關鍵字是(shi)一個修飾符,可以修飾類,方法,變量。

2:被final修飾的類是一(yi)個最終類,不可以(yi)被繼承。

3:被(bei)final修飾(shi)的方法(fa)是一(yi)個最終方法(fa),不(bu)可以被(bei)覆蓋。

4:被final修(xiu)飾的變量是一個常量,只能賦值一次。

其實這(zhe)樣的(de)原(yuan)因的(de)就(jiu)是給一些固定的(de)數據起個閱讀性(xing)較強的(de)名稱。

不加(jia)final修(xiu)飾(shi)不是(shi)(shi)也可以使用嗎?那么這個值是(shi)(shi)一個變(bian)量,是(shi)(shi)可以更(geng)改的(de)。加(jia)了final,程序更(geng)為嚴謹。常量名稱定義(yi)時,有(you)規范,所有(you)字母(mu)都大寫,如果(guo)由多(duo)個單詞組成,中間(jian)用 _ 連接。

抽(chou)象(xiang)類: abstract

抽象(xiang):不(bu)具體,看(kan)不(bu)明白(bai)。抽象(xiang)類表(biao)象(xiang)體現。

在不(bu)斷抽取(qu)過(guo)程中,將共性內容中的(de)方法聲明抽取(qu),但是(shi)方法不(bu)一樣,沒有抽取(qu),這時抽取(qu)到的(de)方法,并不(bu)具體,需要被指定關(guan)鍵字abstract所標示,聲明為抽象方法。

抽象方法所在類(lei)(lei)一定要標示為抽象類(lei)(lei),也就是說該類(lei)(lei)需要被abstract關(guan)鍵字所修飾。

抽象類的特點:

1:抽象(xiang)(xiang)方法只能定義在抽象(xiang)(xiang)類(lei)中,抽象(xiang)(xiang)類(lei)和抽象(xiang)(xiang)方法必(bi)須(xu)由abstract關(guan)鍵字(zi)修飾(可以描(miao)述類(lei)和方法,不可以描(miao)述變量(liang))。

2:抽象方法(fa)只定義方法(fa)聲明,并(bing)不(bu)定義方法(fa)實現。

3:抽(chou)象(xiang)(xiang)類(lei)不可以被創(chuang)建對象(xiang)(xiang)(實例化(hua))。

4:只有(you)通過子類(lei)(lei)(lei)繼承抽(chou)(chou)(chou)象(xiang)(xiang)類(lei)(lei)(lei)并覆蓋(gai)了抽(chou)(chou)(chou)象(xiang)(xiang)類(lei)(lei)(lei)中(zhong)的所有(you)抽(chou)(chou)(chou)象(xiang)(xiang)方法后,該子類(lei)(lei)(lei)才可以實(shi)例化。否則,該子類(lei)(lei)(lei)還是(shi)一個(ge)抽(chou)(chou)(chou)象(xiang)(xiang)類(lei)(lei)(lei)。

抽象類的細節:

1:抽象類(lei)中是否有(you)構造(zao)函數?有(you),用于給(gei)子類(lei)對象進行初(chu)始化。

2:抽象(xiang)(xiang)類中是否(fou)可以定義非抽象(xiang)(xiang)方(fang)法?

可以(yi)。其實,抽象類(lei)(lei)(lei)和一(yi)(yi)般類(lei)(lei)(lei)沒有太大的(de)區(qu)別(bie),都是在(zai)描述事物(wu),只(zhi)不(bu)過抽象類(lei)(lei)(lei)在(zai)描述事物(wu)時,有些功能不(bu)具體(ti)。所(suo)以(yi)抽象類(lei)(lei)(lei)和一(yi)(yi)般類(lei)(lei)(lei)在(zai)定義上,都是需(xu)要定義屬性和行為的(de)。只(zhi)不(bu)過,比一(yi)(yi)般類(lei)(lei)(lei)多了一(yi)(yi)個抽象函數。而且比一(yi)(yi)般類(lei)(lei)(lei)少了一(yi)(yi)個創(chuang)建對(dui)象的(de)部分。

3:抽象關鍵字abstract和(he)哪(na)些不(bu)可以(yi)共存?final , private , static

4:抽象類(lei)中可(ke)不(bu)可(ke)以不(bu)定義抽象方法(fa)(fa)?可(ke)以。抽象方法(fa)(fa)目的僅僅為了不(bu)讓該類(lei)創建對象。

-----------------------------------------------------------------------------------------------

模(mo)(mo)板方(fang)法(fa)設計模(mo)(mo)式:

解(jie)決的問題:當功能內部(bu)一(yi)部(bu)分(fen)實(shi)現時(shi)確定(ding)(ding),一(yi)部(bu)分(fen)實(shi)現是不(bu)確定(ding)(ding)的。這時(shi)可以把不(bu)確定(ding)(ding)的部(bu)分(fen)暴(bao)露(lu)出去(qu),讓(rang)子類去(qu)實(shi)現。

abstract class GetTime{

public final void getTime(){ //此(ci)功(gong)能如果不需要復(fu)寫,可加final限定

long start = System.currentTimeMillis();

code(); //不確(que)定的功能(neng)部分,提取出來(lai),通(tong)過抽(chou)象方法實現

long end = System.currentTimeMillis();

System.out.println("毫秒是:"+(end-start));

}

public abstract void code(); //抽(chou)象不(bu)確定的功能(neng),讓(rang)子類復寫(xie)實現

}

class SubDemo extends GetTime{

public void code(){ //子類復寫(xie)功能方法

for(int y=0; y<1000; y++){

System.out.println("y");

}

}

}

---------------------------------------------------------------------------------------------

接 口:★★★★★

1:是用關鍵(jian)字interface定義的(de)。

2:接口中包含的(de)成員,最(zui)常見的(de)有全局常量、抽象方法(fa)。

注(zhu)意:接口中(zhong)的成員都(dou)有固定的修飾(shi)符。

成員變量:public static final

成(cheng)員方法:public abstract

interface Inter{

public static final int x = 3;

public abstract void show();

}

3:接口中有抽象方(fang)法,說明接口不(bu)可以(yi)實(shi)例化。接口的子類必須(xu)實(shi)現了接口中所有的抽象方(fang)法后,該子類才可以(yi)實(shi)例化。否則,該子類還(huan)是一個抽象類。

4:類(lei)與類(lei)之間存在著繼承關(guan)系,類(lei)與接口(kou)中間存在的是實現關(guan)系。

繼承用extends ;實現用implements ;

5:接口(kou)(kou)和(he)類不一樣的地方,就(jiu)(jiu)是,接口(kou)(kou)可以被多(duo)實現(xian)(xian),這就(jiu)(jiu)是多(duo)繼承改(gai)良后的結果。java將多(duo)繼承機制(zhi)通過多(duo)現(xian)(xian)實來(lai)體現(xian)(xian)。

6:一個類在繼承(cheng)(cheng)另一個類的同時,還(huan)可以(yi)實現多個接口(kou)。所(suo)以(yi)接口(kou)的出現避免了(le)單繼承(cheng)(cheng)的局限性。還(huan)可以(yi)將(jiang)類進行功能的擴展。

7:其實java中是(shi)有(you)多(duo)繼(ji)承(cheng)的。接口(kou)與接口(kou)之間存在著繼(ji)承(cheng)關(guan)系,接口(kou)可以多(duo)繼(ji)承(cheng)接口(kou)。

接(jie)口都用于設計上,設計上的特點:(可(ke)以理解主板上提供的接(jie)口)

1:接口是對外(wai)提供的規(gui)則。

2:接口是功(gong)能的擴展。

3:接口的出現降低了耦合性。

抽象類與接口:

抽(chou)象類:一般用于描(miao)述(shu)一個體系(xi)單元,將(jiang)一組共性內(nei)容(rong)進行抽(chou)取,特點:可(ke)以在(zai)類中定(ding)義抽(chou)象內(nei)容(rong)讓子類實現,可(ke)以定(ding)義非抽(chou)象內(nei)容(rong)讓子類直接使(shi)用。它里(li)面定(ding)義的(de)都是一些體系(xi)中的(de)基本內(nei)容(rong)。

接口:一(yi)般用于(yu)定義對象(xiang)的擴展功(gong)能,是在繼承(cheng)之外還需(xu)這個對象(xiang)具備的一(yi)些功(gong)能。

抽象類和(he)接(jie)口(kou)的(de)共性:都是不斷(duan)向上抽取的(de)結果。

抽象類和接口的區別:

1:抽象類只能(neng)被繼(ji)承,而且只能(neng)單繼(ji)承。

接口(kou)需要被實現,而(er)且可以多實現。

2:抽象類中可以定(ding)義非抽象方法,子類可以直接繼(ji)承使用。

接口中都有抽象方法(fa),需要子類(lei)去實現。

3:抽象類使用的是 is a 關系(xi)。

接口使(shi)用的(de) like a 關(guan)系。

4:抽象類的成員(yuan)修飾符可(ke)以自定義(yi)。

接口中的(de)(de)成員(yuan)修飾符是固定的(de)(de)。全都是public的(de)(de)。7

在開發之前,先(xian)定義規(gui)則,A和B分別(bie)開發,A負責(ze)實現(xian)(xian)這(zhe)(zhe)個規(gui)則,B負責(ze)使用(yong)這(zhe)(zhe)個規(gui)則。至于A是如何對規(gui)則具體(ti)實現(xian)(xian)的,B是不需要知道的。這(zhe)(zhe)樣這(zhe)(zhe)個接(jie)口的出現(xian)(xian)就降(jiang)低了A和B直(zhi)接(jie)耦合性(xing)。

【免(mian)責聲明】本(ben)文部(bu)分系(xi)轉載(zai)(zai),轉載(zai)(zai)目的(de)在于傳遞(di)更多信(xin)息,并不(bu)代表本(ben)網(wang)贊同其觀點和(he)對其真實性負責。如涉及作品內(nei)容(rong)、版(ban)權和(he)其它問題,請在30日內(nei)與聯系(xi)我們,我們會予以(yi)更改或刪除(chu)相關(guan)文章(zhang),以(yi)保證您(nin)的(de)權益!

下(xia)一篇(pian):android系統學習步驟  >
相關推薦
最新資訊
免費試聽課程
  • 全部課程
  • IT課程
  • 設計課程
  • 運營課程
Free courses
最新開班時間
  • 北京
  • 上海
  • 廣州
  • 深圳
  • 南京
  • 成都
  • 武漢
  • 西安
  • 青島
  • 天津
  • 杭州
  • 重慶
  • 哈爾濱
  • 濟南
  • 沈陽
  • 合肥
  • 鄭州
  • 長春
  • 蘇州
  • 長沙
  • 昆明
  • 太原
  • 無錫
  • 石家莊
  • 南寧
  • 佛山
  • 珠海
  • 寧波
  • 保定
  • 呼和浩特
  • 洛陽
  • 煙臺
  • 運城
  • 濰坊
  • 開課名稱
  • 開班時間
  • 搶座
  • 咨詢
  • 開課名稱
  • 開班時間
  • 搶座
  • 咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 云計算全棧開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 人工智能工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 數據分析與商業智能
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業設計變現
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運營
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 云計算全棧開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 云計算全棧開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 云計算全棧開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業設計變現
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運營
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 云計算全棧開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業設計變現
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運營
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 云計算全棧開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 云計算全棧開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 數據分析與商業智能
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業設計變現
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運營
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運營
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業設計變現
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 云計算全棧開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業設計變現
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運營
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 云計算全棧開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運營
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業設計變現
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業設計變現
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 云計算全棧開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業設計變現
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業設計變現
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業設計變現
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 網絡安全工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯網工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測試工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應用開發
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場辦公
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業視效設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設計
    • 10月31日
    • 火熱搶座中
    • 立即咨詢
預約(yue)申(shen)請試聽課
收起