此java學習筆記謹為個人學習用處,主要內容為布局組件布局管理器、類和對象、抽象類和接口、繼承、正則表達式、數組等內容其中難免有不少錯誤,敬請糾正。
布局組件 布局管理器
FlowLayout是最簡單的布局管理器,將組件從左到右,從上到下順序布局
GridLayout將組件按行列分格來布局,要指定行列數目
BorderLayout框架的上下兩部分只在水平方向拉伸,而在垂直方向不變。
類和對象筆記
1.因為主方法是靜態的,所以要想在主方法中直接調用其他,則其他方法也必須是靜態的。
2.mainline中的(String[] args)行參實際上為數組。args[0]~args[n],分別代表第一個到第n個參數,可以使用args.length獲取參數的個數。
3.包裝類
調用BigInteger時,BigInteger instance=BigInteger(“2”);其中的省略號不能省略。
4.引用對象
有兩種方法,使用運算符“==”或equals()方法,兩者有著本質的不同.
5.類的可見性
private只有在本類中可見
protected只有在本包中可見
public在本包和其他包裡都可見
6.基本數據類型的對象處理
java可以把基本數據類型作為對象來處理,在java中一切皆為對象,int型有Integer對象,boolean型有Boolean對象等。
抽象類和接口筆記
將父類定義為抽象類,使用父類進行繼承和多態處理。
public abstract class Test{
abstract void testAbstract();//定義抽象方法
}
抽象類除了被繼承外沒有任何意義。
抽象類不可以實例化對象。
只要類中有一個抽象方法就被定義為抽象類。
接口是抽象類的延伸,是純粹的抽象類,接口中的所有方法都沒有方法體。
public interface drawTest{
void draw();//接口內的方法省略abstract關鍵字
}
接口中的方法必須被定義為public或abstract。
一個類實現一個接口使用implements關鍵字。
繼承筆記
重構時權限只能由低到高,如父類中是protected在重構中只能是pubic
實例化子類對象時首先實例化父類對象,然後再實例化子類對象。
java.lang.Object類是java中的最高層類,java中任何一個類都是它的子類。Object類主要包括clone(),finalize(),euqals(),toString()等方法。final類型不能被重寫。
對象類型轉換包括向上轉型和向下轉型。將父類對象強制轉換為某個子類對象的方式叫做顯示類型轉換,用於向下類型轉換中。在向下類型轉換中要先判斷子類對象是否是父類對象的一個實例,由instanceof操作符來完成。
定義不定長參數的方法: public static int add(int …a)相當於(int[]a)
正則表達式
A? A出現0或一次
A* A出現0或多次
A+ A出現一次或多次
A{2} A正好出現2次
A{2,} A至少出現2次
A{2,4}A出現2到4次
[abc]2:a2或b2或c2
[^abc]:除了abc
[a-r]:代表a到r的任意一個
[a-zA-Z]:可表示任意一個英文字母
[a-c[e-g]]:a到c或e到g任意一個字母
[a-o&&[def]]:a到o交def
數組
初始化:
int arr[]=new int[]={1,22};
排序:
Arrays.sorts(arr);
填充:
Arrays.fill(arr); Arrays.fill(arr,from,end,number);
復制:
Arrays.copyOf(arr,5); 5是復制之後的新數組的長度。
Arrays.copyOfRange(arr,from,end);
查詢:
Arrays.binarySearch(arr,from,end,index)index是查查詢變量,返回值是index所在的索引值(若不存在,則返回第一個大於index的元素索引)(二分查找)
Arrays.binarySearch(arr,key); arr所查找的數組,key關鍵字