學(xué)習(xí)總結(jié)
        
        
      
    
    
    
    
      
        
           1.
        
        
          類和對(duì)象
          1.
        
        
          類和對(duì)象
        
      
      
    
    
    ??? 一個(gè)月來,我所做的就是編寫一個(gè)個(gè)類,并用這些類創(chuàng)建對(duì)象,現(xiàn)在對(duì)于類和對(duì)象我已經(jīng)有了初步的理解。 
    
    
    ?? 首先,
    
      類是一個(gè)模板
    
    ,用來生成具體對(duì)象。類中定義了具體對(duì)象所共有的屬性(形態(tài)描述)和方法(行為和功能)。 
    
    
    ?? 其次,
    
      類是一種數(shù)據(jù)類型
    
    。 
    
    
    ?? 創(chuàng)建類: public? class? ClassName{????????????????????????? 
    
    
    ???????????????? ........ 
    
    ? 
    
    ???????????????? } 
    
    
    ?? 創(chuàng)建對(duì)象通過關(guān)鍵字new:如果類中沒有重寫構(gòu)造器?? ClassName? cn =? new? ClassName() ;?
    
    
    ?? 
    
    
    
       2.數(shù)據(jù)類型
      2.數(shù)據(jù)類型 
      
    
    
    ?? 數(shù)據(jù)類型主要包括
    
      基本數(shù)據(jù)類型
    
    和
    
      類類型
    
    2種。 
    
    
    ?? Java中一共有8種基本數(shù)據(jù)類型:byte,short,int,long,float,double,char,Boolean 
    
    
    ???????????????????? 所占字節(jié)數(shù)分別為:? 1??? ,??? 2? , 4 ,? 8?? , 4?? ,??? 8??? ,?? 2?? ,??? 1 
    
    
    ?? 
    
      字符串類型不屬于基本數(shù)據(jù)類型,在Java中字符串類型被定義成類,但可以被直接引用。
    
    
    
    
    
       3.值傳遞和引用傳遞
      3.值傳遞和引用傳遞 
      
    
    
    ?
    
      ? 值傳遞
    
     : 在Java中,如果方法中的參數(shù)是基本數(shù)據(jù)類型,那么就是值傳遞,
    
      接受的是數(shù)值
    
    。當(dāng)參數(shù)接受了基本數(shù)據(jù)變量所傳遞的值以后,就與傳遞這個(gè)值的標(biāo)量沒有關(guān)系了。下面是一個(gè)例子: 
    
    
    ????????????????? private? int?? x = 5 ; 
    
    
    ????????????????? num =? method(x); 
    
    
    ????????????????? ............... 
    
    
    ????????????????? public? int?? method(int? x ){ 
    
    
    ????????????????? x *=? 10? ; 
    
    
    ????????????????? return? x? ; 
    
    
    ????????????????? } 
    
    
    ????????????????? System.out.println("x="+x + "? num="+num); 
    
    
    ????????????????? 運(yùn)行后x=5 , num=50; 
    
    
    
    ?? 
    
      引用傳遞
    
    :如果參數(shù)是一個(gè)對(duì)象,那么就是引用傳遞,
    
      接受的是一個(gè)對(duì)象的引用地址
    
    ,指向代表這個(gè)參數(shù)的對(duì)象,任何對(duì)這個(gè)參數(shù)的改變都是對(duì)那個(gè)對(duì)象變量的改變。下面是一個(gè)例子: 
    
    
    ???????????????? 
    
    
    ???????????????? SomeClass? sc = new SomeClass(5);//對(duì)對(duì)象sc的變量x賦初值5; 
    
    
    ???????????????? method(sc); 
    
    
    ???????????????? ................. 
    
    
    ????????????????? public void method(SomeClass sc){ 
    
    
    ??????????????????????????? sc.setX(50);//將一個(gè)SomeClass類的對(duì)象的屬性值x賦值為50 ; 
    
    
    ????????????????? } 
    
    
    ????????????????? 運(yùn)行后sc的屬性x值為50; 
    
    
    
    
    
       4.構(gòu)造器和方法
      4.構(gòu)造器和方法 
      
    
    
    ??? 
    
      構(gòu)造器
    
    的主要作用是在創(chuàng)建對(duì)象的時(shí)候?qū)ζ渥兞砍跏蓟F涓袷饺缦拢?
    
    
    ???????????????? public? ClassName(param1,param2...){ 
    
    
    ??????????????? ? .............. 
    
    
    ??????????????? } 
    
    
    ??? 構(gòu)造器名和類名必須相同,不允許有返回值,也不用void。 
    
    
    ??? 構(gòu)造器可以重載,即一個(gè)類可以有多個(gè)不同的構(gòu)造器。 
    
    
    ??? 
    
      構(gòu)造器重載
    
    :每個(gè)構(gòu)造器和其他構(gòu)造器的參數(shù)個(gè)數(shù)或則參數(shù)次序排列不同。 
    
    
    
    ??? 
    
      方法
    
    :方法就是對(duì)象的行為,執(zhí)行對(duì)象要進(jìn)行的運(yùn)算與操作。格式如下: 
    
    
    ?????????????? ?public? void(或者任一數(shù)據(jù)類型) method(param1,param2......){ 
    
    
    ????????????? ? ................... 
    
    
    ?????????????? ?} 
  
?? 若方法有返回值,要滿足所有情況下對(duì)返回對(duì)應(yīng)數(shù)據(jù)類型的值。
?
??? 方法重載 與構(gòu)造器重載規(guī)則相同。
?
    ??? 
    
      多態(tài)
    
     :?子類可以重寫繼承父類的方法,但該方法的訪問權(quán),返回類型,方法名,參數(shù)必須相同,方法的實(shí)現(xiàn)不同。
    
    
    ??? 
    
    
    
    
    
       5.接口
      5.接口
    
    
    
    ??? 接口和類有所不同,類對(duì)其對(duì)象提供了具體了具體的運(yùn)算與操作代碼,而接口只是對(duì)實(shí)現(xiàn)該接口的類提供了一些協(xié)議,有點(diǎn)像所有實(shí)現(xiàn)一個(gè)接口的類共享該接口的方法與常量。
    
      接口中只規(guī)定靜態(tài)常量,方法不能有實(shí)現(xiàn)代碼
    
    。 
    
    
    ?? 如下是一個(gè)創(chuàng)建接口的例子: 
    
    
    ??????????????? public? interface? InterfaceName{ 
    
    
    ??????????????? static? final? int? price =? 8 ; 
    
    
    ??????????????? public? void? calculateTotal(int? quantity ,int?? price ) ; 
    
    
    ?????????????? ?.......... 
    
    
    ?????????????? } 
    
    
    
    
    
       6.隊(duì)列
      6.隊(duì)列
    
  
?
?? 隊(duì)列和數(shù)組不同,數(shù)組是一組相關(guān)元素的集合,這些元素必須是相同的類型,可以是基本變量類型,也可以是對(duì)象?。
?? 數(shù)組一經(jīng)創(chuàng)建,其元素類型和大小就被確定,不可以再更改。
?? 但是很多時(shí)候,只使用數(shù)組無法解決問題,比如通訊錄的存儲(chǔ),無法得知要存儲(chǔ)多少個(gè)號(hào)碼,若是數(shù)組長(zhǎng)度定義過大就
?? 太浪費(fèi)內(nèi)存,于是就有了隊(duì)列。可以隨意添加元素,其長(zhǎng)度自動(dòng)增加,也可以刪除,在指定位置插入刪除元素。 隊(duì)列其實(shí)
?? 是數(shù)組的一種運(yùn)用。
?
?? 如下是一個(gè)基本隊(duì)列的類:
    ?public class Que {
    
    ?private String sa[] = new String[0] ;
    
    ?
    
    ????? //增添元素至最后一位
    
    ????? public void add(String s){?//復(fù)制sa中的值到s2
    
    ???????? String[] s2 = new String[sa.length+1];
    
    ???????? for(int i=0;i<sa.length;i++){
    
    ??? ????? s2[i] = sa[i];
    
    ???????? }
    
    ?????????s2[sa.length] = s ;?? // 將要添加的值加到s2的最后一位
    
    ?????????sa = s2 ;
    
    ??? }
    
    ????
    
    ?????//得到隊(duì)列的大小
    
    ????public int getSize(){
    
    ??? ?return sa.length ;
    
    ??? }
    
    ????
    
    ????//得到指定位置的元素值
    
    ????public String? getAtIndex(int index){
    
    ??? ?return sa[index];
    
    ??? }
    
    ?????
    
    ??? //在指定位置添加元素????
  
    ??? public void add(int index , String s){
    
    ??? ?String[] s3 = new String[sa.length+1] ;
    
    ??? ?int i;
    
    ?????//得到index位之前sa中de元素值,復(fù)制到s3中
    
    ??? ?for(i=0;i< index ;i++){
    
    ??? ??s3[i] = sa[i] ;
    
    ??? ?}
    
    ??????s3[index] = s ;????//將 s 添加到 index為上
    
    ?????for(i=index+1 ; i<s3.length ;i++){
    
    ??? ??s3[i] = sa[i-1] ;
    
    ??? ?}
    
    ????????sa = s3 ;
    
    ??? }
    
    ????
    
    ??? //刪除隊(duì)列指定位置上的元素?????
  
    ? ? public void remove(int index ){
    
    ??? ?String[] s4 = new String[sa.length-1] ;
    
    ??? ?int i ;
    
    ??? ?//復(fù)制index位之前的元素到s4中
    
    ??? ?for(i =0 ;i<index;i++){
    
    ??? ??s4[i] = sa[i] ;
    
    ??? ?}
    
    ??? ?//復(fù)制index位之后的元素到s4中
    
    ??? ?for(i=index ;i<s4.length ;i++){
    
    ??? ??s4[i] = sa[i+1] ;
    
    ??? ?}
    
    ????????sa = s4 ;
    
    ??? }
    
    ???}
  
???
?
?這是一個(gè)基本隊(duì)列,但是每次添加一次元素,就要新建一個(gè)數(shù)組,程序運(yùn)行所需的時(shí)間長(zhǎng),于是就有了 隊(duì)列的優(yōu)化 ,使程序更加友好。比如:可以初始化數(shù)組sa的長(zhǎng)度,設(shè)置每次隊(duì)列長(zhǎng)度的增加值。
? 隊(duì)列的優(yōu)化問題主要要注意數(shù)組越界問題。比如,增添元素時(shí)要判斷是否超出sa的長(zhǎng)度,在指定位置刪除第index個(gè)元素時(shí)要判斷index是否超出隊(duì)列的size等等。? 由于時(shí)間有點(diǎn)晚了,代碼我就不敲了。
?
?
    
       7.Swing組件的繼承體系
      7.Swing組件的繼承體系
    
  
?? 所有的swing組件都繼承于javax.swing.JComponent這個(gè)抽象類,這樣做的好處就是可以 規(guī)范所有JComponent類的子類的方法屬性,使之擁有一些比較統(tǒng)一的方法 。
?
?
    
       8.文件格式
      8.文件格式
    
  
?? 文件格式是電腦存儲(chǔ)文件時(shí)對(duì)數(shù)據(jù)流采取的不同編碼方式,不同的文件格式讀入讀出數(shù)據(jù)的方式不同,如果讀出方式不對(duì)就讀不出數(shù)據(jù)或讀不到正確的數(shù)據(jù)。 每個(gè)文件都有擴(kuò)展名,擴(kuò)展名主要用來幫助區(qū)分不同文件按格式,提示系統(tǒng)采用什么程序讀取文件。如果擴(kuò)張名與文件實(shí)際類型不同,系統(tǒng)讀取文件就會(huì)出錯(cuò)。
?? 比如我們保存所畫的圖形時(shí),依次讀入形狀的個(gè)數(shù),每個(gè)形狀對(duì)象的坐標(biāo),顏色的RGB值,可以把保存的圖像定義為一種新的文件格式ipg,該圖像系統(tǒng)無法讀取,因?yàn)樽x出數(shù)據(jù)的方法不對(duì)。
??
?
??
?
?
    ?
    
    ???
    
    
    ???
    
    
    ????
    
    
    ??????????????? 
    
  
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
 
					微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
 
					

