【Java基础13】对象数组实例(宠物管理系统)

该代码示例展示了如何在Java中使用对象数组管理小鸡信息,包括增加、删除、查找、更新和打印所有信息的功能。Pet类表示小鸡,PetManager类用于管理这些对象。当数组满时,会自动扩展数组大小。用户通过命令行选择操作,系统响应相应操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对象数组实例

1、功能模块

1、定义一个小鸡类

2、定义一个小鸡管理类

(1)实现增加信息

(2)实现删除信息

(3)实现根据ID查找信息

(4)实现更新信息

(5)实现打印全部信息

2、代码实现

import java.util.Arrays;
import java.util.Scanner;
public class Test01 {
//对象数组实例:鸡舍管理
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("----------欢迎使用宠物管理系统----------");
		Scanner scan=new Scanner(System.in);
		PetManager p=new PetManager();
		boolean flag=true;
		while(flag){
			System.out.println("请选择您要进行的操作:1 增加、2 删除、3 查找、 4 更新、 5 打印 、6 退出");
			int option=scan.nextInt();
			switch(option){
				case 1:{
					System.out.println("已进入增加信息模块!");
					p.add(new Pet(1,"小小",3));
					continue;
					
				}
				case 2:{
					System.out.println("已进入删除信息模块!");
					System.out.println("请输入您要删除的宠物ID:");
					int id=scan.nextInt();
					p.delete(id);
					continue;
				}
				case 3:{
					System.out.println("已进入查找信息模块!");
					System.out.println("请输入您要查找的宠物ID:");
					int id=scan.nextInt();
					p.find(id);
					continue;
				}
				case 4:{
					System.out.println("已进入更新信息模块!");
					System.out.println("请输入您要更新的宠物ID:");
					int id=scan.nextInt();
					p.update(id);
					System.out.println("信息已更新!");
					continue;
				}
				case 5:{
					System.out.println("全部信息如下:");
					p.printAll();
					continue;
				}
				case 6:{
					flag=false;
					break;
				}
				
			}
		}
	}

}

class Pet{
	private int id;
	private String name;
	private int age;
	Pet(){}
	Pet(int id,String name,int age){
		this.id=id;
		this.name=name;
		this.age=age;
	}
	public  void setId(int id){
		this.id=id;
	}
	public  int getId(){
		return id;
	}
	public  void setName(String name){
		this.name=name;
	}
	public  String getName(){
		return name;
	}
	public  void setAge(int age){
		this.age=age;
	}
	public  int getAge(){
		return age;
	}
	
	public String toString(){
		return "id="+id+",name="+name+",age="+age+"\n";
	}
}

class PetManager{
	private Pet[] pet=new Pet[5];//创建小鸡数组
	private int count=0;//记录当前数组对象个数(下标)

	//实现动态数组
	public void add(Pet p){
		if(count>=pet.length){//数组已满,需要扩充
			//扩充原来数组大小的一半 :cs.length*3/2+1
			//扩充原来数组的一倍   :cs.length*2	 
			int newLen=pet.length*2;
			pet=Arrays.copyOf(pet,newLen);//复制数组后必须用一个数组来接收
		}
		pet[count]=p;
		count++;
	}
	
	public void delete(int id){
		for(int i=0;i<count;i++){
			if(id==pet[i].getId()){
				for(int j=i;j<count;j++){
					pet[j]=pet[j+1];
				}
			}else{
				System.out.println("未查找到数据!");
			}
		}
	}
	
	public void update(int id){
		for(int i=0;i<count;i++){
			if(id==pet[i].getId()){
				pet[i].setId(2);
				pet[i].setName("小白");
				pet[i].setAge(5);
			}
		}
	}
	
	public void find(int id){
		for(int i=0;i<count;i++){
			if(id==pet[i].getId()){
				System.out.println(pet[i].toString());
			}else{
				System.out.println("未查找到数据!");
			}
		}
	}

	public void printAll(){
		System.out.println(Arrays.toString(pet));
	}
}

3、不足——待实现

增加和更新数据,如何键盘输入引用类型的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值