我們都知道,數組是存放同一類型的數據,並在內存空間中連續存放的,數組的大小一旦確定就不能修改.
而對於在Java中,數組類型的變量可以同時存儲多個同類型基礎數據類型的變量或對象.,通過索引進行區分,數組中的第一個元素的索引爲0,在Java中,創建數組有兩個步驟:
1.聲明一個對數組的引用.即: 數據類型 [ ] 數組變量名; 如:int [ ] sums;
2.使用new關鍵字初始化數組,並一定要指定數組的大小.即: 數組變量名=new 數據類型[ 長度]; 如: sums=new int [5];
以下程序是創建一個引用型的數組,並對每個對象賦初值,通過調用ageMax方法來找出所有人中年齡最大的,同時打印出年齡最大的那個人的姓名.
public class TestMain {
public static void main(String[] args) {
//引用類型的數組
Scanner scan = new Scanner(System.in);
System.out.println("請確定你一共要記錄多少個人的信息?");
int len = scan.nextInt();
Person[] allPersons = new Person[len]; //聲明引用類型的數組,有len個對象(元素)
for(int i = 0; i < len; i++){
allPersons[i] = new Person(); //如果沒有每個對象new實例化,將拋出一個nullpointerException的異常
System.out.println("請輸入第" + (i + 1) + "個人的名字:");
allPersons[i].setName( scan.next());
System.out.println("請輸入第" + (i + 1) + "個人的年齡:");
allPersons[i].setAge(scan.nextInt());
}
System.out.println("記錄完畢,請檢查!");
for(int i = 0; i < len; i++){
System.out.println(allPersons[i].getName() + " " + allPersons[i].getAge());
}
//ageMax(allPersons); //用static靜態申明後就可以不用new一個對象,就能直接調用方法了
TestMain person=new TestMain();// 由於沒使用static修飾符,所以要new一個TestMain引用型的
person.ageMax(allPersons); //通過對象來調用ageMaxf方法
}
//public static void ageMax(Person[] person){ //用static靜態申明一個方法
public void ageMax(Person[] person){
String name=person[0].getName();
int ageMax=person[0].getAge();
for(int i=1;i<person.length;i++){
if(ageMax<person[i].getAge()){
ageMax=person[i].getAge();
name=person[i].getName();
}
}
System.out.println("姓名爲 "+name+" 的這個人年齡最大,並且他的年齡爲 :"+ageMax);
}
}