javase部分3
3.1函數
修飾符 返回值類型 函數名(參數類型 形式參數 1,參數類型 形式參數2...){
執行語句;
return 返回值;
}
void 空 返回值類型
3.2重載與重寫
重載:同一個類中,兩個或多個函數名相同,返回值類型可以不相同,但參數列表不同(參數個數,參數類型) 與變量名無關
public class Overload { /** * @param args */ public static void main(String[] args) { add(1, 2); add(0.1, 2.1, 3.1); }public static int add(int x, int y) { System.out.println(x + y); return x + y; } public static int add(double x, double y, double z) { System.out.println((int) (x + y + z));//為了達到效果強制轉換成int類型 return (int) (x + y + z);//返回int類型參數 } }
//結果 為3 5
重寫:子類繼承父類方法,可重寫父類方法。在接口中實現接口必須實現接口方法 只有方法體不同
class People { public void eat() { System.out.println("people 吃飯!"); } public void say() { System.out.println("people 說話!"); } } class Children extends People { public void eat() { System.out.println("Children 吃飯!");// 重寫父類方法 } publicvoid say() { System.out.println("Children 說話!"); } } public class Override { public static void main(String[] args) { Children cd = new Children(); cd.eat(); cd.say(); People pp = new People(); pp.eat(); pp.say(); } } //結果為 Children 吃飯! Children 說話! people 吃飯! people 說話!
3.3 數組(引用數據類型中的一種)
數組:存儲同一種類型數據的集合 內存:棧空間:數據使用完畢,會自動釋放(存儲局部變量) 堆空間:存儲對象,new出來的東西 是一塊內存空間
eg: int [] x=new int[3]; 首先先在堆空間申請一塊內存 ,內存被劃分為3塊存儲默認數據,再在棧空間申請一塊名為x的內存,存儲堆空間中的內存地址
當堆內存中的實體與棧內存中變量沒有聯系時會自動回收內存
數組初始化:1.靜態初始化數組:int[] a={ 1,2,3,4} 缺點 數組的內容已經明確
2.動態初始化數組:int[] a=new int[4]; a[1]=1;...
數組遍歷:通過屬性length for循環打印數組
求最值:冒泡法
排序:選擇排序 (一與多比較 卡住遊標求最小值) 冒泡排序(相鄰比,多輪後)
查找:二分法
拓展:二維數組 是一維數組中存放的數據為一維數組 定義的話也分靜態與動態 遍歷的話也是a.length,a[i].length
class ArraysEg { /* * 選擇排序 */ public void sort(int[] a) { for (int x = 0; x < a.length - 1; x++) {//控制比較的次數 for (int y = x + 1; y < a.length; y++) {//控制和那些比較 int temp = 0; if (a[x] > a[y]) {//將當前遊標位置和其他位置比較求出最小值 temp = a[x]; a[x] = a[y]; a[y] = temp; } } } for (int i = 0; i < a.length; i++) { System.out.print(a[i] + "\t"); } } } public class ArraysText { public static void main(String args[]) { int[] a = { 2, 1, 5, 7, 3 }; ArraysEg ae = new ArraysEg(); ae.sort(a); } } //結果 1 2 3 5 7
/* *冒泡排序 */ class bubble { public void sort(int[] a) { for (int x = 0; x < a.length - 1; x++) {// 控制比較次數 for (int y = 0; y < a.length - 1 - x; y++) {// 每一輪冒泡,都會少一次比較 if (a[y] > a[y + 1]) { int temp = 0; temp = a[y]; a[y] = a[y + 1]; a[y + 1] = temp; } } } } } public class ArrayText2 { public static void main(String args[]) { int[] a = { 4, 1, 5, 7, 3 }; ArraysEg ae = new ArraysEg(); ae.sort(a); } } //結果: 1 3 4 5 7
註:以上內容是博主覺得比較關鍵的地方,僅供有一定編程基礎的朋友參考,歡迎糾錯。
javase部分3