javaSE-day04--ArrayList基本用方法、類內定義方法和方法過載、靜態方法static(類的方法)、工具方法(static)的定義和使用

猩猩_Integer發表於2020-10-10

ArrayList基本用方法

package day04;

import java.util.ArrayList;

public class ArrayListDemo {
	public static void main(String[] args) {
		ArrayList<Integer> a = new ArrayList<Integer>();
		//向ArrayList中新增資料
		a.add(1);
		a.add(2);
		a.add(3);
		//讀取ArrayList中的資料
		int a1 = a.get(0);
		int a2 = a.get(2);
		System.out.println(a1+","+a2);
		System.out.println("-----------");
		//遍歷ArrayList
		for(int i = 0;i<a.size();i++) {
			System.out.println(a.get(i));
		}
		System.out.println("-----------");
		//刪除ArrayList中的資料
		a.remove(0);
		for(int i = 0;i<a.size();i++) {
			System.out.println(a.get(i));
		}
		System.out.println("------");
		//修改數值
		a.set(0, 5);
		System.out.println(a);
	}
}

總結:
操作物件類似於陣列
<>中填入泛型引數:要裝入的資料型別。Integer、String等或者自己建立的類的物件
ArrayList:是一種集合資料型別,可以有任意多個資料,長度可以改變。
a.add()新增的是元素。 a.get()、a.remove() 引數都是索引。a.set(x,y) x為索引值,y為具體數值。
獲得ArrayList的方法用:a.size();

類內定義方法和方法過載

package day04;
public class Function {
	int a;
	int b;
	
	//沒有引數,有返回值
	public int getSum() {
		return this.a + this.b;
	}
	//帶引數且有返回值的方法
		public int sum(int a,int b) {
			return a+b;
		}
	//沒有返回值的發方法,返回值型別為void
	public void say() {
		System.out.println("i miss you");
	}
	//帶引數但沒有返回值的方法.同名方法,但是引數列表不一樣,叫做方法過載
	public void say(String name) {
		System.out.println(name+"i miss you");
	}
	//帶有多個引數但沒有返回值型別
	public void say(String a,String b) {
		System.out.println(a+"miss"+b);
	}
	
}



package day04;
public class FunctionDemo {
	public static void main(String[] args) {
		Function a = new Function();
		a.a = 50;
		a.b = 30;
		//呼叫無參,有返回值方法
		System.out.println(a.getSum());
		//呼叫有參,有返回值發方法
		int aa = a.sum(5,9);
		System.out.println(aa);
		//呼叫無參,無返回值方法
		a.say();
		//呼叫有參、無返回值方法
		a.say("xx ");
		//呼叫多個引數但沒有返回值方法
		a.say("xx "," yy");
	}
}

總結:
方法:用來封裝一段邏輯
方法格式:public 返回值型別 方法名(){//邏輯}
同名方法,但是引數列表不一樣,叫做方法過載。
在類中定義方法,在main中用物件呼叫方法。

通過呼叫靜態方法來排序並列印

package day04;

import java.util.ArrayList;

public class Arraylist {
	//對list進行排序
	public static void sort(ArrayList<Integer> list) {
		for(int i = 0;i < list.size()-1;i++) {
			for(int j = 0;i < list.size()-1-j;j++) {
				if(list.get(j) > list.get(j+1)) {
				int temp = list.get(j);
				list.set(j, list.get(j+1));
				list.set(j+1, temp);				
				}
			}
		}
	}
	//列印list
	public static void print(ArrayList<Integer> aa){
		for(int i =0;i<aa.size();i++) {
			System.out.println(aa.get(i));
		}
	}
}



package day04;
import java.util.ArrayList;

pblic class ArraylistTest {
	public static void main(String[] args) {
		
		ArrayList<Integer> list = new ArrayList<Integer>();
		list.add(8);
		list.add(58);
		list.add(45);
		list.add(35);
		list.add(78);
		list.add(84);
		//呼叫排序
		Arraylist.sort(list);
		//呼叫列印
		Arraylist.print(list);
	}
}

總結:
普通類需要生成一個類物件才能呼叫函式:Arraylist bb = new Arraylist(); bb.sort(list); bb.print(list);
和具體得物件沒有任何關係可以用靜態方法來定義。靜態方法,就可以直接用類名呼叫,稱為類得方法。

工具方法的定義和使用

package day04;

import java.util.ArrayList;

public class ListUtils {
	// 類方法:對list排序
	public static void sort(ArrayList<Integer> list) {
		for (int i = 0; i < list.size() - 1; i++) {
			for (int j = 0; i < list.size() - 1 - j; j++) {
				if (list.get(j) > list.get(j + 1)) {
					int temp = list.get(j);
					list.set(j, list.get(j + 1));
					list.set(j + 1, temp);
				}
			}
		}
	}

	// 類方法:求最大值
	public static int getMax(ArrayList<Integer> list) {
		int temp = list.get(0);
		for (int i = 0; i < list.size(); i++) {
			if (list.get(i) > temp) {
				temp = list.get(i);
			}
		}
		return temp;
	}
	
	// 類方法:求最小值
	public static int getMin(ArrayList<Integer> list) {
		int temp = list.get(0);
		for (int i = 0; i < list.size(); i++) {
			if (list.get(i) < temp) {
				temp = list.get(i);
			}
		}
		return temp;
	}
	
	//類方法:求平均值
	public static float getAvg(ArrayList<Integer> list) {
		float temp = 0;
		for(int i = 0;i < list.size();i++) {
			temp +=list.get(i);
		}
		temp = temp/list.size();
		return temp;
	}
}




package day04;

import java.util.ArrayList;

public class ListUtilsTest {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
		list.add(85);
		list.add(87);
		list.add(65);
		list.add(95);
		list.add(47);
		list.add(54);
		list.add(58);
		//呼叫類發方法排序
		ListUtils.sort(list);
		System.out.println(list);
		//呼叫類方法求最大值
		int a = ListUtils.getMax(list);
		System.out.println("最大值:"+a);
		//呼叫類方法求最小值
		int b = ListUtils.getMin(list);
		System.out.println("最小值:"+b);
		//呼叫類方法求平均值
		float c = ListUtils.getAvg(list);
		System.out.println("平均值:"+c);
		
	}
}

總結:
將不涉及到物件呼叫,只是對資料進行處理,可以定義為工具類;
工具類中不封裝資料屬性;
使用類方法的類名來呼叫其封裝的靜態方法;

相關文章