學習總結
1.
類和對象
??? 一個月來,我所做的就是編寫一個個類,并用這些類創建對象,現在對于類和對象我已經有了初步的理解。
?? 首先,
類是一個模板
,用來生成具體對象。類中定義了具體對象所共有的屬性(形態描述)和方法(行為和功能)。
?? 其次,
類是一種數據類型
。
?? 創建類: public? class? ClassName{?????????????????????????
???????????????? ........
?
???????????????? }
?? 創建對象通過關鍵字new:如果類中沒有重寫構造器?? ClassName? cn =? new? ClassName() ;?
??
2.數據類型
?? 數據類型主要包括
基本數據類型
和
類類型
2種。
?? Java中一共有8種基本數據類型:byte,short,int,long,float,double,char,Boolean
???????????????????? 所占字節數分別為:? 1??? ,??? 2? , 4 ,? 8?? , 4?? ,??? 8??? ,?? 2?? ,??? 1
??
字符串類型不屬于基本數據類型,在Java中字符串類型被定義成類,但可以被直接引用。
3.值傳遞和引用傳遞
?
? 值傳遞
: 在Java中,如果方法中的參數是基本數據類型,那么就是值傳遞,
接受的是數值
。當參數接受了基本數據變量所傳遞的值以后,就與傳遞這個值的標量沒有關系了。下面是一個例子:
????????????????? private? int?? x = 5 ;
????????????????? num =? method(x);
????????????????? ...............
????????????????? public? int?? method(int? x ){
????????????????? x *=? 10? ;
????????????????? return? x? ;
????????????????? }
????????????????? System.out.println("x="+x + "? num="+num);
????????????????? 運行后x=5 , num=50;
??
引用傳遞
:如果參數是一個對象,那么就是引用傳遞,
接受的是一個對象的引用地址
,指向代表這個參數的對象,任何對這個參數的改變都是對那個對象變量的改變。下面是一個例子:
????????????????
???????????????? SomeClass? sc = new SomeClass(5);//對對象sc的變量x賦初值5;
???????????????? method(sc);
???????????????? .................
????????????????? public void method(SomeClass sc){
??????????????????????????? sc.setX(50);//將一個SomeClass類的對象的屬性值x賦值為50 ;
????????????????? }
????????????????? 運行后sc的屬性x值為50;
4.構造器和方法
???
構造器
的主要作用是在創建對象的時候對其變量初始化。其格式如下:
???????????????? public? ClassName(param1,param2...){
??????????????? ? ..............
??????????????? }
??? 構造器名和類名必須相同,不允許有返回值,也不用void。
??? 構造器可以重載,即一個類可以有多個不同的構造器。
???
構造器重載
:每個構造器和其他構造器的參數個數或則參數次序排列不同。
???
方法
:方法就是對象的行為,執行對象要進行的運算與操作。格式如下:
?????????????? ?public? void(或者任一數據類型) method(param1,param2......){
????????????? ? ...................
?????????????? ?}
?? 若方法有返回值,要滿足所有情況下對返回對應數據類型的值。
?
??? 方法重載 與構造器重載規則相同。
?
???
多態
:?子類可以重寫繼承父類的方法,但該方法的訪問權,返回類型,方法名,參數必須相同,方法的實現不同。
???
5.接口
??? 接口和類有所不同,類對其對象提供了具體了具體的運算與操作代碼,而接口只是對實現該接口的類提供了一些協議,有點像所有實現一個接口的類共享該接口的方法與常量。
接口中只規定靜態常量,方法不能有實現代碼
。
?? 如下是一個創建接口的例子:
??????????????? public? interface? InterfaceName{
??????????????? static? final? int? price =? 8 ;
??????????????? public? void? calculateTotal(int? quantity ,int?? price ) ;
?????????????? ?..........
?????????????? }
6.隊列
?
?? 隊列和數組不同,數組是一組相關元素的集合,這些元素必須是相同的類型,可以是基本變量類型,也可以是對象?。
?? 數組一經創建,其元素類型和大小就被確定,不可以再更改。
?? 但是很多時候,只使用數組無法解決問題,比如通訊錄的存儲,無法得知要存儲多少個號碼,若是數組長度定義過大就
?? 太浪費內存,于是就有了隊列。可以隨意添加元素,其長度自動增加,也可以刪除,在指定位置插入刪除元素。 隊列其實
?? 是數組的一種運用。
?
?? 如下是一個基本隊列的類:
?public class Que {
?private String sa[] = new String[0] ;
?
????? //增添元素至最后一位
????? public void add(String s){?//復制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 ;
??? }
????
?????//得到隊列的大小
????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元素值,復制到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 ;
??? }
????
??? //刪除隊列指定位置上的元素?????
? ? public void remove(int index ){
??? ?String[] s4 = new String[sa.length-1] ;
??? ?int i ;
??? ?//復制index位之前的元素到s4中
??? ?for(i =0 ;i<index;i++){
??? ??s4[i] = sa[i] ;
??? ?}
??? ?//復制index位之后的元素到s4中
??? ?for(i=index ;i<s4.length ;i++){
??? ??s4[i] = sa[i+1] ;
??? ?}
????????sa = s4 ;
??? }
???}
???
?
?這是一個基本隊列,但是每次添加一次元素,就要新建一個數組,程序運行所需的時間長,于是就有了 隊列的優化 ,使程序更加友好。比如:可以初始化數組sa的長度,設置每次隊列長度的增加值。
? 隊列的優化問題主要要注意數組越界問題。比如,增添元素時要判斷是否超出sa的長度,在指定位置刪除第index個元素時要判斷index是否超出隊列的size等等。? 由于時間有點晚了,代碼我就不敲了。
?
?
7.Swing組件的繼承體系
?? 所有的swing組件都繼承于javax.swing.JComponent這個抽象類,這樣做的好處就是可以 規范所有JComponent類的子類的方法屬性,使之擁有一些比較統一的方法 。
?
?
8.文件格式
?? 文件格式是電腦存儲文件時對數據流采取的不同編碼方式,不同的文件格式讀入讀出數據的方式不同,如果讀出方式不對就讀不出數據或讀不到正確的數據。 每個文件都有擴展名,擴展名主要用來幫助區分不同文件按格式,提示系統采用什么程序讀取文件。如果擴張名與文件實際類型不同,系統讀取文件就會出錯。
?? 比如我們保存所畫的圖形時,依次讀入形狀的個數,每個形狀對象的坐標,顏色的RGB值,可以把保存的圖像定義為一種新的文件格式ipg,該圖像系統無法讀取,因為讀出數據的方法不對。
??
?
??
?
?
?
???
???
????
???????????????
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
