我们都知道,数组是存放同一类型的数据,并在内存空间中连续存放的,数组的大小一旦确定就不能修改.
而对于在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);
}
}