java總結

總結


1.java基礎入門
Java的基本語法
定義類格式:public class 類名{}
定義變量的格式(變量屬於方法或者循環添加等{}中間的變量):
數據類型 變量名;
數據類型 變量名 = 值;
屬性是類的一級變量。
定義for循環的格式:for(數據類型 變量名= 值;條件;自增量或者自減量){   //程序體  } 
定義if語句的格式:if(條件){  //程序體  }else if(條件){  //程序體  }
使用for和if語句的時候,如果只有一個語句就不加{}。


編寫java時應該注意的幾點:
1.文件名必須和類名保持一致
2.Java中區分大小寫
3.Java的命名規則:
1).命名類的名字時,首字母要大寫,如果類名是由多個單詞組成,則每個單詞的首字母都要大寫;
2).方法名和變量名命名時,首字母要小寫,如果方法名或變量是由多個單詞組成,則從第二個單詞起,每個單詞的首字母大寫;

3).常量的命名時,所有的字母都要大寫且每個字母之間用下劃線_分開.




Java的基本數據類型
字節型 byte
整型 int
短整型 short
長整型 long
字符型 char
浮點型 float
雙精度 double
布爾型 boolean
字符串 string




2.類和對象
對象:萬事萬物都是對象。
對象由特徵和行爲組成。

類:具有相同特徵和相同行爲的對象的集合。
類由屬性和方法組成。
類是一種自定義的數據類型。
類的結構:public class 類名{
//屬性
//屬性的結構
Private 數據類型 變量名;
Private 數據類型 變量名 = 值;
//構造函數
Public 類名([參數類型 參數名,......]){ 
      //賦值操作
} 

//方法 

//方法的結構
Public 返回類型 方法名{ 
      //程序體

}





方法傳遞參數
1.基本的類型
2.自定義的類類型

方法重載
必要條件:
1.方法必須要在同一個類中間。
2.方法的名字必須要相同
3.方法所帶的參數個數或者數據類型要不同
調用了實現了方法重載的方法時,是根據參數的個數或者參數的類型,來決定究竟要調用哪個方法的。

方法的分類:
1.按照有無返回值來分:
1).有返回值的方法
2).無返回值的方法
2.按照有無參數來分:
1).有參數的方法
2).無參數的方法

構造函數
構造函數是一種特殊的方法。
定義格式:public 類名([參數類型 參數名,......]){ //賦值操作 }

用途:
1.給屬性賦值
2.用來創建對象

 

注意:當重寫了類的構造器後,系統默認的構造器就不能用了。

特殊的幾點(和普通方法的區別)
1.沒有返回類型
2.函數名和類名要保持一致
3.構造函數只有在創建對象的時候才被執行一次,其他時候都不可被使用。

This關鍵字
用途:
1.用來區分變量和屬性
2.用來表示當前的對象(是哪一個對象在調用方法,則this表示的就是調用方法的對象)

值傳遞和引用傳遞
值傳遞:適用於所有的基本數據類型
值傳遞:將目標變量的值重新拷貝一份,傳遞到新的變量中,這樣就形成了兩份獨立的數據。如果對新的變量的值做任何修改,是不會影響到目標變量的值;反之一樣。

引用傳遞:適用於所有的類類型。(自定義的類類型)
引用傳遞:創建對象的時候,對象名中保存的是對象實例在內存中的地址,如果對對象名做修改,對象實例是不會受到影響的。



3.類的繼承
爲什麼要繼承
降低工作量,降低程序的複雜性,使程序提高可擴展性......

繼承的實現
一個類繼承另一個類的關鍵字是:extends
繼承的格式:public class 子類名 extends 父類名{}

繼承到了什麼
子類繼承到了父類的所有公有屬性和公有方法,構造函數是不能被繼承的。

方法的重寫
方法重寫:保持方法的定義不變,但方法內部實現同父類中不同。
實現方法重寫的必要條件:
1.必須要有繼承關係;
2.子類的方法名必須和父類的方法名一致,子類重寫方法所帶的參數必須和父類方法中所帶的參數一致。

在實現了繼承的前提下,調用時會優先執行子類中的方法,如果子類中不存在該方法,則使用父類的方法。

自動轉型
自動轉型的必要條件是有繼承關係。
自動轉型的格式:父類名 對象名 = new 子類構造函數([參數類型 參數名,.......])
子類向父類轉型是自動的。

多態實現
多態實現的前提條件:存在繼承關係和方法重寫。
多態:jvm在調用方法時,是不確定調用的是子類的方法還是父類的方法,只有在調用的瞬間才知道調用的是誰的方法。

接口的定義
接口定義的格式:public interface 接口名{
//定義常量的語法
Public static final 常量名 = 值;

//定義方法的語法
Public 返回類型 方法名([參數類型 參數名,.......]);

}
接口是用來定義方法的,所定義的方法是沒有程序體的,如果要實現接口,則必須要重寫接口中定義的方法。
接口中的每一個方法都必須是公有的,並且沒有{},只能有;.
接口中的屬性都必須將其定義爲常量。
接口是不可以用來創建對象的,不能使用關鍵字new。
可以將接口作爲對象名的類型。
接口名 對象名 = new 實現接口的子類構造函數([參數類型 參數名,.......]);

接口的實現
接口實現的格式:public class 子類名 implements 接口名{ 
      //子類必須重寫接口中定義的方法
}

接口的繼承
接口可以繼承到另外的接口.
接口繼承的格式:public interface 子接口名 extends 父接口名{
       //如果父接口中定義了方法,子接口可以不重新定義
}

抽象類的定義
抽象類是介於接口和類之間的一種新類。
抽象類定義的格式:public abstract class 抽象類的名字{
       //可以實現方法,也可以不實現方法
Public 返回類型 方法名([參數類型 參數名,.....]){ 
       //程序體
}
Public abstract 返回類型 方法名([參數類型 參數名,.....]);


}

如果子類實現了抽象類,但是抽象類中定義了抽象的方法,則子類必須要重寫抽象方法,已被實現的方法,可以不重寫。

抽象類的實現
抽象類的實現格式:public class 子類名 extends 抽象父類名{
      //程序體
}


4.畫板的實現
所有的類的父類:object

Swing組件的分類
窗體類:javax.swing.JFrame
標籤類:javax.swing.JLabel
文本輸入框類:javax.swing.JTextField
按鈕類:javax.swing.JButton


佈局管理
分類:
流式佈局管理器:java.awt.FlowLayout
邊框佈局管理器:java.awt.BorderLayout
卡片佈局管理器:java.awt.CardLayout
網格佈局管理器:java.awt.GridLayout
網袋佈局管理器:java.awt.GridBagLayout



Swing的事件機制
事件:事件處理是界面處理的基本功能
事件處理的流程:事件源、事件處理對象、事件處理過程。
處理方法:編寫一個類實現事件接口,並實現其中的方法即可。



5.自定義隊列
數組的基本用法
數組是Java中最基本的一種數據結構,一旦定義,它的長度就是固定的,不能再改變。
取得數組的長度的語句:數組名. Length
取得數組中某一位置的值的語句:數組名[ 索引值]

定義數組的方法
1.定義時指定數組長度,這樣會使用內存空間創建數組對象,但數組中每個位置的元素會是其默認值,如是原始類型,默認值爲0,如是引用類型,默認值爲null;
定義格式:類型[] 數組變量名 = new 類型 [長度];
2.創建數組時就給數組中的元素賦值;
3.僅定義一個數組變量名,然後再來賦值。

數組也是一個對象,數組對象本身的類型就是數組類型,定義數組時,一定要指明數組中所裝元素的類型。要注意的是,當僅定義了一個數組變量時,是不能使用這個數組的。


數組的排序
排序是一類常用的算法實現。
四種排序方法:冒泡排序法、選擇排序法、插入排序法、希爾排序法。

多維數組
Java語言中並沒有像其他語言那樣定義多維數組,只是定義了數組的數組、數組的數組的數組.......
一個二維數組其實就是數組的數組。
數組的數組的定義格式:類型  數組變量名[][] = new 類型[長度][長度]
數組的數組中的每一個元素其實就是一個一維數組。

自定義對隊列的實現
隊列可以理解爲一個維數可變的數組。
隊列的定義接口格式:
Public interface 接口名{


//向隊列中加入一個對象
Public void add(類名 對象名);


//取得隊列中指定位置的一個對象
Public 類名 get(int  index);


/./得到隊列的長度,即隊列中元素的個數
Public int size();
}

簡單實現
實現隊列的思路:在實現類的內部,還是使用數組保存裝入隊列的對象;每次新加入對象時,則創建一個比原來數組長度大於一的數組。



泛型
泛型:就是在創建隊列時,指定隊列中所存放對象的類型。
改變接口的定義:
Public interface  接口名<E>{


//向隊列中加入一個對象
Public void add(E  e);


//取得隊列中某一指定位置的對象
Public  E  get(int index);


//得到隊列的長度,即隊列中元素的個數
Public int size();
}




6.JTable與TableModel
在界面上加上一個簡單的JTable對象: JTable table = new JTable(m,n)............m和n是int型,
這樣就在界面上得到了一個m行n列的表格

JTable只是一個界面,主要負責顯示功能,而關於數據提供和數據操作的實現,都是由這個JTable對象的TableModel對象所負責的。

TableModel就是一個接口,它的定義格式:
//通過調用JTable對象的setModel方法,傳入實現了TableModel接口類的對象
Public interface TableModel{


//決定表格上顯示多少行
Public int getRowCount();


//表格顯示多少列、
Public int getColumnCount();


//得到某一列的列名,columnIndex:列的序號,從0開始
Public String getColumnName(int columnIndex);


//得到某一列的數據類型,columnIndex:列的序號,從0開始
Public Class<?> getColumnClass(int columnIndex);


//某一單元格在界面上是否可直接編輯,rowIndex:行號,columnIndex:列好,從0開始
Public boolean isCellEditable(int rowIndex,int columnIndex);

 

//具體的JTable在顯示時,調用這個方法取得每一個單元格的值
Public Object getValueAt(int rowIndex,int columnIndex);


//如果表格可編輯,表格對象將調用這個方法將改變後的值反映到它的model對象中
//aValue代表修飾後的值,rowIndex,columnIndex表示所在的行列索引
Public void setValue(Object aValue,int rowIndex,int columnIndex);


//模型對象可調用這個方法爲自己加入一個監聽器
Public void addTableModelListener(TableModelListener l);


//移除模型對象中的監聽器
Public void removeTableModelListener(TableModelListener l);
}

實現:
根據該接口,只需要編寫一個實現了TableModel的類,通過代碼:
javax.swing.JTable table = new javax.swing.JTable();
table.setModel(new 實現了TableModel接口的類);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章