java10 OOP 對象數(shù)組與管理 2022-02-06

//對象數(shù)組與管理
import java.util.Arrays;
public class Test1 {
    public static void main(String[] args) {
        ChickenManager cm=new ChickenManager(5);
        //添加
        cm.add(new Chicken(1,"小一",10));
        cm.add(new Chicken(2,"小二",6));
        cm.add(new Chicken(3,"小三",6));
        cm.add(new Chicken(4,"小四",4));
        cm.add(new Chicken(5,"小五",3));

        cm.add(new Chicken(6,"小六",3));
        System.out.println(cm.length());//因為有第6個所以造成了數(shù)組擴充
        //查找
        System.out.println("++++++++find+++++++");
        Chicken c=cm.find(5);
        c.print();
        //打印所有
        System.out.println("++++++++printAll+++++++");
        cm.printAll();
        //更新
        System.out.println("++++++++update+++++++");
        cm.update(new Chicken(1,"下蛋公雞",20));
        cm.printAll();

    }
}
//小雞類(數(shù)據(jù)對象 value object(VO))
class Chicken{
    private int id;
    private String name;
    private int age;
    public Chicken() {}
    public Chicken(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    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 void print(){
        System.out.println("id="+id+"name="+name+"age="+age);
    }
}
//小雞管理類
class ChickenManager{
    private Chicken[] cs=null;//多個小雞(對象數(shù)組)
    private int count=0;//記錄當前數(shù)組的元素個數(shù)(下標)
    public ChickenManager(int size) {
        if (size>0){
            cs=new Chicken[size];
        }else{
            cs=new Chicken[5];//默認定義五只
        }
    }
    public int length(){
        return cs.length;
    }
    //添加:實現(xiàn)動態(tài)數(shù)組
    public void add(Chicken c){
        if (count>=cs.length){//數(shù)組已滿,需要擴充
            //算法一:擴充原數(shù)組大小的一半 cs.length*3/2+1
            //算法二:擴充原數(shù)組一倍 cs.length*2
            int newLen=cs.length*2;
            cs=Arrays.copyOf(cs,newLen);//創(chuàng)建新數(shù)組
        }
        cs[count]=c;
        count++;

    }
    //刪除
    public void delete(int id){
        for (int i = 0; i < count; i++) {
            if(cs[i].getId()==id){
                //找到了要刪除的對象,把該對象之后的對象向前移動一位
                for (int j = i; j <count-1; j++) {
                    cs[j]=cs[j+1];
                }
                //把最后一個對象賦值為空(刪除)
                cs[count-1]=null;
                count--;
                break;
            }
        }
    }
    //更新
    public void update(Chicken c){
        Chicken temp=find(c.getId());
        if(temp!=null){
            temp.setName(c.getName());
            temp.setAge(c.getAge());

        }
    }
    //查找
    public Chicken find(int id){
        for (int i = 0; i < count; i++) {
            if(cs[i].getId()==id){
                return cs[i];
            }
        }
        return null;
    }
    //輸出所有
    public void printAll(){
        for (int i = 0; i < count; i++) {
            cs[i].print();
        }
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容