对象数组实例
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、不足——待实现
增加和更新数据,如何键盘输入引用类型的数据。