6.1对象数组

本文介绍如何使用对象数组实现汽车信息的增删改查管理,包括创建汽车类和管理类,实现显示汽车信息、添加汽车、根据车牌号获取汽车信息等功能。

对象数组

1.定义

将对象作为一个数组来应用

2.示例

  1. 创建实例类Student

    public class Student {
    	private String name;
    	private int age;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	
    	public Student() {
    		super();
    	}
    	public Student(String name, int age) {
    		super();
    		this.name = name;
    		this.age = age;
    	}
    	public void info() {
    		System.out.println(name+""+age);
    		
    	}
    	
    }
    
  2. 测试

    public class Test {
    	public static void main(String[] args) {
    		Student stu1 = new Student("张三", 20);
    		Student stu2 = new Student("李四", 21);
    		Student stu3 = new Student("王五", 20);
    		
    		Student student[] = new Student[5];
    		student[0] = stu1;
    		student[1] = stu2;
    		student[2] = stu3;
    		
    		for (Student stu : student) {
    			if(stu!=null) {
    				stu.info();
    			}
    		}
    		
    		for (int i = 0; i < student.length; i++) {
    			Student stu=student[i];
    			if(stu!=null) {
    				System.out.println(stu.getName()+" "+stu.getAge());
    			}
    		}
    		
    	}	
    }
    

3.应用

通过对象数组实现汽车的增删改查管理

  1. 创建汽车类

    /**
     * 	汽车类
     * 
     *
     */
    public class Car {
    	//汽车品牌
    	private String name;
    	//汽车颜色
    	private String color;
    	//汽车车牌号
    	private int carNo;
    	
    	public Car() {
    		super();
    	}
    
    	public Car(String name, String color, int carNo) {
    		super();
    		this.name = name;
    		this.color = color;
    		this.carNo = carNo;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getColor() {
    		return color;
    	}
    
    	public void setColor(String color) {
    		this.color = color;
    	}
    
    	public int getCarNo() {
    		return carNo;
    	}
    
    	public void setCarNo(int carNo) {
    		this.carNo = carNo;
    	}
    
    	//展示汽车信息
    	public void showCar() {
    		System.out.println("品牌:" + this.name+"\t颜色:" + this.color+ "\t车牌号:"+this.carNo);
    		
    	}
    	
    }
    
  2. 创建管理类

    /**
     * 	汽车管理类
     * 	对汽车增删改查
     * @author Administrator
     *
     */
    
    import java.util.Scanner;
    
    public class CarManager {
    	
    	//创建对象数组,创建了一个能存10个Car类型对象的数组
    	static Car cars[]=new Car[10];
    	Scanner input = new Scanner(System.in);
    	
    	//静态代码块存储车库初始信息
    	static {
    		//由于static修饰的都属于类,在加载类的时候就会执行static代码块
    		//所以一般可以把需要初始化的数据在static进行执行
    		cars[0] = new Car("兰博基尼","蓝色",1001);
    		cars[1] = new Car("保时捷","黑色",1002);
    		cars[2] = new Car("宝马","白色",1003);
    		cars[3] = new Car("奥迪","红色",1004);
    		cars[4] = new Car("奔驰","棕色",1005);
    	}
    	
    	//汽车管理功能目录
    	public void showMenu() {
    		System.out.println("*************欢迎进入豪车管理系统********************");
    		do {
    			System.out.println("1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统");
    			System.out.println("请选择:");
    			int choise = input.nextInt();
    			switch (choise) {
    			case 1:
    				//显示汽车信息
    				this.showCarInfo();
    				continue;
    			case 2:
    				//添加汽车
    				this.addCar();
    				continue;
    			case 3:
    				//根据车牌号得到汽车信息
    				this.getByCar();
    				continue;
    			case 4:
    				//删除车牌信息
    				this.deleteCar();
    				continue;
    			case 5:
    				//修改车辆信息
    				this.updateCar();
    				continue;
    			case 6:
    				//退出系统
    				System.out.println("系统退出>>>>>>>>>>>");
    				break;
    			default:
    				System.out.println("选择错误,请重新选择");
    				continue;
    			}
    			break;
    		} while (true);
    		System.out.println("欢迎下次光临");
    	}
    	
    	//输出车辆信息
    	private void showCarInfo() {
    		System.out.println("汽车信息:");
    		for (Car car : cars) {
    			if(car!=null) {
    				car.showCar();
    			}	
    		}
    	}
    		
    	//添加汽车
    	private void addCar() {
    		Car carinfo=this.inputCar();
    		boolean flag=this.addCarInfo(carinfo);
    		if(flag) {
    			System.out.println("增加成功!");
    		}else {
    			System.out.println("增加失败!");
    		}
    	}
    	
    	//根据车牌号得到汽车信息
    	private void getByCar() {
    		System.out.println("请输入要查找的车牌号:");
    		int findCarNo = input.nextInt();
    		int num=this.findCar(findCarNo);
    		if(num>=0) {
    			System.out.println("查找成功!");
    			cars[num].showCar();
    		}else {
    			System.out.println("很遗憾,车库中没有该车!");
    		}	
    	}
    	
    	//删除车牌信息
    	private void deleteCar() {
    		System.out.println("请输入要删除的车牌号:");	
    		int deleteCar = input.nextInt();
    		int num=this.findCar(deleteCar);
    		if(num>=0) {
    			for (int i = num; i < cars.length-1; i++) {
    				cars[i]=cars[i+1];
    			}
    			System.out.println("删除成功");
    		}else {
    			System.out.println("很遗憾,车库中没有该车!");
    		}
    		cars[cars.length-1]=null;
    	}
    	
    	//修改车辆信息
    	private void updateCar() {
    		System.out.println("请输入要修改的车牌号:");
    		int updateCar = input.nextInt();
    		int num=this.findCar(updateCar);
    		if(num>=0) {
    			Car car=this.inputCar();
    			cars[num]=car;
    			System.out.println("修改成功");
    		}else {
    			System.out.println("很遗憾,车库中没有该车!");
    		}
    	}
    	
    	//寻找车牌号
    	private int findCar(int findCarNo) {
    		for (int i = 0; i < cars.length; i++) {
    			if(cars[i]!=null&&cars[i].getCarNo()==findCarNo) {
    				return i;
    			}
    			
    		}
    		return -1;
    	}
    	
    	//输入车辆信息
    	private Car inputCar() {
    		System.out.println("请输入要添加的汽车信息:");
    		System.out.print("品牌:");
    		String newName = input.next();
    		System.out.print("颜色:");
    		String newColor = input.next();
    		System.out.print("车牌号:");
    		int newCarNo = input.nextInt();
    		Car carinfo=new Car(newName,newColor,newCarNo);
    		return carinfo;
    	}
    	
    	//添加车辆信息
    	private boolean addCarInfo(Car carinfo) {
    		for (int i = 0; i < cars.length; i++) {
    			if(cars[i]==null) {
    				cars[i]=carinfo;
    				return true;
    			}
    		}
    		return false;
    	}
    		
    }
    
  3. 测试

    public class Test {
    	public static void main(String[] args) {
    		CarManager carman=new CarManager();
    		carman.showMenu();
    	}
    }
    
  4. 结果

    *************欢迎进入豪车管理系统********************
    1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统
    请选择:
    1
    汽车信息:
    品牌:兰博基尼	颜色:蓝色	车牌号:1001
    品牌:保时捷	颜色:黑色	车牌号:1002
    品牌:宝马	颜色:白色	车牌号:1003
    品牌:奥迪	颜色:红色	车牌号:1004
    品牌:奔驰	颜色:棕色	车牌号:1005
    1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统
    请选择:
    2
    请输入要添加的汽车信息:
    品牌:大众
    颜色:白色
    车牌号:1006
    增加成功!
    1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统
    请选择:
    1
    汽车信息:
    品牌:兰博基尼	颜色:蓝色	车牌号:1001
    品牌:保时捷	颜色:黑色	车牌号:1002
    品牌:宝马	颜色:白色	车牌号:1003
    品牌:奥迪	颜色:红色	车牌号:1004
    品牌:奔驰	颜色:棕色	车牌号:1005
    品牌:大众	颜色:白色	车牌号:1006
    1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统
    请选择:
    3
    请输入要查找的车牌号:
    1006
    查找成功!
    品牌:大众	颜色:白色	车牌号:1006
    1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统
    请选择:
    4
    请输入要删除的车牌号:
    1006
    删除成功
    1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统
    请选择:
    1
    汽车信息:
    品牌:兰博基尼	颜色:蓝色	车牌号:1001
    品牌:保时捷	颜色:黑色	车牌号:1002
    品牌:宝马	颜色:白色	车牌号:1003
    品牌:奥迪	颜色:红色	车牌号:1004
    品牌:奔驰	颜色:棕色	车牌号:1005
    1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统
    请选择:
    5
    请输入要修改的车牌号:
    1005
    请输入要添加的汽车信息:
    品牌:比亚迪
    颜色:红色
    车牌号:1005
    修改成功
    1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统
    请选择:
    3
    请输入要查找的车牌号:
    1007
    很遗憾,车库中没有该车!
    1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统
    请选择:
    4
    请输入要删除的车牌号:
    1007
    很遗憾,车库中没有该车!
    1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统
    请选择:
    5
    请输入要修改的车牌号:
    1007
    很遗憾,车库中没有该车!
    1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统
    请选择:
    8
    选择错误,请重新选择
    1.显示汽车信息2.添加汽车3.根据车牌号得到汽车信息4.删除车牌信息5.修改车辆信息6.退出系统
    请选择:
    6
    系统退出>>>>>>>>>>>
    欢迎下次光临
    

4.总结

  1. 对象数组的应用和数组差不多,只是传递的参数类型、返回值类型是多了对象这一选择。
  2. 对象数组能够存储不同的数据类型,解决数组类型单一的问题。
  3. 对象数组为我们了解集合有了一个过渡阶段。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值