//對象數(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();
}
}
}
java10 OOP 對象數(shù)組與管理 2022-02-06
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內容
- 1、組件傳值——$attrs、$listeners $attrs:父作用域的綁定,props中的內容除外。(接收了...
- 問題: jmeter腳本需要傳輸一個不定長的對象數(shù)組; 解決: 按往常情況,我們要么通過beanshell,要么寫...
- 1、養(yǎng)成隨時記錄到清單的習慣 記錄-排程-執(zhí)行 1)記錄雜事可以清空大腦,把大腦用在更需要腦力勞動的事件中。 2)...
- 對象數(shù)組:數(shù)組里的每個元素都是類的對象,賦值時先定義對象,然后將對象直接賦值給數(shù)組 練習:設計一個Chicken類...