Java基礎篇之對象數(shù)組練習
商品對象信息獲取
題目要求是這樣的:
定義數(shù)組存儲3個商品對象。
商品的屬性:商品的id,名字,價格,庫存。
創(chuàng)建三個商品對象,并把商品對象存入到數(shù)組當中。
創(chuàng)建Goods類封裝商品信息類管理商品數(shù)據(jù),里面有商品的私有信息,以及獲取和設置成員變量的值的方法,通過調用Goods對象中的方法來對數(shù)據(jù)進行增刪改查操作:
public class Goods { private String id; private String name; private double price; private int count; // 創(chuàng)建構造函數(shù) public Goods(String id, String name, double price, int count) { this.id = id; this.name = name; this.price = price; this.count = count; } // 創(chuàng)建getter和setter public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } }
新創(chuàng)建一個Java類,這個類包含了一個main()方法,該方法用于測試Goods類的功能。在 main()方法中,首先創(chuàng)建了一個 Goods 類型的數(shù)組 arr,并且創(chuàng)建了三個 Goods 對象 g1、g2 和 g3,分別表示三種手機商品。然后,將這三個商品對象添加到數(shù)組中。最后,通過循環(huán)遍歷數(shù)組,輸出每個商品對象的信息(id、name、price、count):
public class GoodsTest { public static void main(String[] args) { // 創(chuàng)建一個數(shù)組 Goods[] arr = new Goods[3]; // 創(chuàng)建三個商品對象 Goods g1 = new Goods("001", "華為手機", 8000, 5); Goods g2 = new Goods("002", "蘋果手機", 11000.0, 7); Goods g3 = new Goods("003", "安卓手機", 6000.9, 1); // 將商品添加到數(shù)組當中 arr[0] = g1; arr[1] = g2; arr[2] = g3; // 遍歷數(shù)組 for (int i = 0; i < arr.length; i++) { Goods goods = arr[i]; System.out.println(goods.getId()+", "+goods.getName()+", "+goods.getPrice()+", "+goods.getCount()); } } }
最終呈現(xiàn)的效果如下:
商品對象信息輸入
題目要求是這樣的:
定義數(shù)組存儲3部汽車對象。
汽車的屬性:品牌,價格,顏色。
創(chuàng)建三個汽車對象,數(shù)據(jù)通過鍵盤錄入而來,并把數(shù)據(jù)存入到數(shù)組當中。
創(chuàng)建Car類封裝汽車信息類管理汽車數(shù)據(jù),里面有汽車的私有信息,以及獲取和設置成員變量的值的方法,通過調用Car對象中的方法來對數(shù)據(jù)進行增刪改查操作:
public class Car { private String brand; private int price; private String color; // 創(chuàng)建構造函數(shù) public Car() {} public Car(String brand, int price, String color) { this.brand = brand; this.price = price; this.color = color; } // 創(chuàng)建getter和setter方法 public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } }
創(chuàng)建了一個名為CarTest的Java類。這個類用于測試Car類的功能。首先創(chuàng)建了一個 Car 類型的數(shù)組 arr,用來存儲三個汽車對象。然后使用 Scanner 類從鍵盤輸入汽車的品牌、價格和顏色,并將這些信息設置到每個汽車對象中。接著,將每個汽車對象添加到數(shù)組中。最后,通過循環(huán)遍歷數(shù)組,輸出每個汽車對象的品牌、價格和顏色。
import java.util.Scanner; public class CarTest { public static void main(String[] args) { // 創(chuàng)建一個數(shù)組用來存儲3個汽車對象 Car[] arr = new Car[3]; // 創(chuàng)建汽車對象,數(shù)據(jù)鍵盤錄入 Scanner sc = new Scanner(System.in); for (int i = 0; i < arr.length; i++) { // 創(chuàng)建空的汽車對象 Car c = new Car(); // 錄入品牌 System.out.println("請輸入汽車的品牌"); String brand = sc.next(); c.setBrand(brand); // 間鍵盤錄入的數(shù)據(jù)寫入 // 錄入價格 System.out.println("請輸入汽車的價格"); int price = sc.nextInt(); c.setPrice(price); // 錄入顏色 System.out.println("請輸入汽車的顏色"); String color = sc.next(); c.setColor(color); // 把汽車對象添加到數(shù)組中 arr[i] = c; } // 遍歷數(shù)組 for (int i = 0; i < arr.length; i++) { Car car = arr[i]; System.out.println(car.getBrand()+", "+car.getPrice()+", "+car.getColor()); } } }
最終呈現(xiàn)的效果如下:
商品對象信息計算
題目要求是這樣的:
定義數(shù)組存儲3部手機對象。
手機的屬性:品牌,價格,顏色。
要求計算出三部手機的平均價格。
創(chuàng)建Phone類封裝手機信息類管理手機數(shù)據(jù),里面有手機的私有信息,以及獲取和設置成員變量的值的方法,通過調用Phone對象中的方法來對數(shù)據(jù)進行增刪改查操作:
public class Phone { private String brand; private int price; private String color; // 創(chuàng)建構造函數(shù) public Phone() {} public Phone(String brand, int price, String color) { this.brand = brand; this.price = price; this.color = color; } // 創(chuàng)建getter和setter方法 public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } }
創(chuàng)建了一個名為 PhoneTest 的 Java 類。這個類用于測試 Phone 類的功能。在 main() 方法中,首先創(chuàng)建了一個 Phone 類型的數(shù)組 arr,用來存儲三個手機對象。然后,通過使用 Phone 類的構造函數(shù),創(chuàng)建了三個手機對象,并分別設置了品牌、價格和顏色。
接下來,將每個手機對象添加到數(shù)組中的對應位置。然后,通過循環(huán)遍歷數(shù)組,計算所有手機的總價格,并將結果保存在變量 sum 中。最后,計算手機價格的平均值,并輸出結果。
public class PhoneTest { public static void main(String[] args) { // 創(chuàng)建一個數(shù)組 Phone[] arr = new Phone[3]; // 創(chuàng)建手機對象 Phone p1 = new Phone("小米", 4900, "黑色"); Phone p2 = new Phone("蘋果", 7900, "白色"); Phone p3 = new Phone("華為", 4200, "藍色"); // 將手機對象添加到數(shù)組當中 arr[0] = p1; arr[1] = p2; arr[2] = p3; // 獲取三部手機的總價格 int sum = 0; for (int i = 0; i < arr.length; i++) { Phone phone = arr[i]; sum+= phone.getPrice(); } // 獲取平均值 int avg = sum / arr.length; System.out.println(avg); } }
最終呈現(xiàn)的效果如下:
商品對象信息統(tǒng)計
定義數(shù)組存儲4個電腦的對象
電腦的屬性:品牌、價格、顏色、種類
要求1:計算出4個電腦的平均價格
要求2:統(tǒng)計價格比平均值低的電腦有幾個?并把它們的所有信息打印出來。
創(chuàng)建Computer類封裝電腦信息類管理電腦數(shù)據(jù),里面有電腦的私有信息,以及獲取和設置成員變量的值的方法,通過調用Computer對象中的方法來對數(shù)據(jù)進行增刪改查操作:
public class Computer { private String brand; // 品牌 private double price; // 價格 private String color; // 顏色 private String type; // 種類 public Computer() { } public Computer(String brand, double price, String color, String type) { this.brand = brand; this.price = price; this.color = color; this.type = type; } public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getType() { return type; } public void setType(String type) { this.type = type; } }
下面這段代碼主要展示了面向對象編程中類和對象的使用,以及數(shù)組的操作和循環(huán)遍歷的應用。通過這個例子可以更好地理解 Java 中的類和對象的概念,以及如何進行簡單的數(shù)據(jù)處理和統(tǒng)計分析:
public class ComputerTest { public static void main(String[] args) { // 定義數(shù)組存入電腦對象 Computer[] arr = new Computer[4]; // 創(chuàng)建電腦對象 Computer cp1 = new Computer("戴爾", 4900.0, "白色", "筆記本"); Computer cp2 = new Computer("神舟", 8200.0, "藍色色", "臺式"); Computer cp3 = new Computer("聯(lián)想", 6900.0, "黑色", "筆記本"); Computer cp4 = new Computer("機器人", 3900.0, "紅色", "臺式"); // 把對象添加到數(shù)組中 arr[0] = cp1; arr[1] = cp2; arr[2] = cp3; arr[3] = cp4; // 求和 double sum = 0; for (int i = 0; i < arr.length; i++) { Computer cp = arr[i]; sum += cp.getPrice(); } System.out.println("求和值為:"+ sum); // 平均值 double avg = sum / arr.length; System.out.println("平均值為:"+ avg); // 統(tǒng)計價格比平均值低的有幾個,并打印其信息 int count = 0; for (int i = 0; i < arr.length; i++) { Computer cp = arr[i]; if(cp.getPrice()<avg){ System.out.println(cp.getBrand()+", "+cp.getPrice()+", "+cp.getColor()+", "+cp.getType()); count++; } } System.out.println("低于平均價格的數(shù)量為:"+ count); } }
最終呈現(xiàn)的效果如下:
學生數(shù)據(jù)管理實現(xiàn)
定義數(shù)組存儲4個電腦的對象
定義一個長度為3的數(shù)組,數(shù)組存儲1~3名學生對象作為初始數(shù)據(jù),學生對象的學號,姓名各不相同,學生的屬性:學號,姓名,年齡。
要求1:再次添加一個學生對象,并在添加的時候進行學號的唯一性判斷。
要求2:添加完畢之后,遍歷所有學生信息。
要求3:通過id刪除學生信息,如果存在,則刪除,如果不存在,則提示刪除失敗。
要求4:刪除完畢之后,遍歷所有學生信息。
要求5:查詢數(shù)組id為“heima002”的學生,如果存在,則將他的年齡+1歲
創(chuàng)建Students類封裝學生信息類管理學生數(shù)據(jù),里面有學生的私有信息,以及獲取和設置成員變量的值的方法,通過調用Students對象中的方法來對數(shù)據(jù)進行增刪改查操作:
public class Students { private int id; private String name; private int age; public Students() { } public Students(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; } }
下面這段代碼實現(xiàn)了對一個學生對象數(shù)組的增、刪、改、查操作,具體實現(xiàn)思路如下:
1)創(chuàng)建一個存儲學生對象的數(shù)組,長度為3:
Students[] arr = new Students[3];
2)創(chuàng)建三個學生對象,將它們添加到數(shù)組中:
Students stu1 = new Students(1,"zhangsan",20); Students stu2 = new Students(2,"lisi",35); Students stu3 = new Students(3,"wangwu",10); arr[0] = stu1; arr[1] = stu2; arr[2] = stu3;
3)添加一個新學生對象,并進行學號的唯一性判斷:
Students stu4 = new Students(4,"xiaoming",15); boolean flag = contains(arr, stu4.getId()); if (flag) { System.out.println("當前id值重復,請修改id后再進行添加"); } else { // 執(zhí)行添加操作 }
4)如果數(shù)組已滿,則創(chuàng)建一個新數(shù)組,否則直接在原數(shù)組上添加:
if(count == arr.length){ Students[] newArr = createNewArr(arr); newArr[count] = stu4; printArr(newArr); } else { arr[count] = stu4; printArr(arr); }
5)通過學號刪除一個學生對象,先找到該學生在數(shù)組中的位置,然后將其刪除:
int index = getIdIndex(newArr, 4); if (index >= 0) { if (arr.length < index){ arr[index] = null; printArr(arr); }else { newArr[index] = null; printArr(newArr); } } else { System.out.println("當前的id不存在,刪除失敗"); }
6)修改一個學生對象的年齡,先找到該學生在數(shù)組中的位置,然后將其年齡加1:
int index1 = getIdIndex(newArr, 2); if (index1>0){ Students stu = arr[index1]; int newAge = stu.getAge() + 1; stu.setAge(newAge); printArr(newArr); }else { System.out.println("當前的id不存在,修改失敗"); }
還有其他輔助方法包括:打印數(shù)組元素、創(chuàng)建新數(shù)組、獲取數(shù)組元素個數(shù)、判斷學號是否重復等??傮w思路是基于一個學生數(shù)組對象進行操作,對其增刪改查等多個操作都需要先找到該學生在數(shù)組中的索引位置,然后再進行相關操作。同時還需要注意學號唯一性等問題,具體代碼如下:
public class StudentsTest { public static void main(String[] args) { // 創(chuàng)建一個數(shù)組用來存儲學生對象 Students[] arr = new Students[3]; // 創(chuàng)建學生對象并添加到數(shù)組當中 Students stu1 = new Students(1,"zhangsan",20); Students stu2 = new Students(2,"lisi",35); Students stu3 = new Students(3,"wangwu",10); // 把學生對象添加到數(shù)組當中 arr[0] = stu1; arr[1] = stu2; arr[2] = stu3; // 再次添加一個學生對象,并在添加的時候進行學號的唯一性判斷 Students stu4 = new Students(4,"xiaoming",15); // 唯一性判斷 boolean flag = contains(arr, stu4.getId()); Students[] newArr = createNewArr(arr); if (flag) { // 數(shù)組元素已存在,不用添加 System.out.println("當前id值重復,請修改id后再進行添加"); }else { // 數(shù)組元素不存在,可以把學生對象添加進數(shù)組中 int count = getCount(arr); if(count == arr.length){ // 數(shù)組長度已經(jīng)存滿,創(chuàng)建一個新數(shù)組,長度=老數(shù)組的長度+1,然后把老數(shù)組的元素拷貝到新數(shù)組當中 newArr[count] = stu4; // 添加完畢之后,遍歷所有的學生信息 System.out.println("-----當前原數(shù)組元素為------"); printArr(newArr); } else { // 數(shù)組長度沒有存滿,假設數(shù)組已經(jīng)存了兩個 [stu1, stu2, null] // getCount獲取到的是2,表示數(shù)組當中已經(jīng)有了2個元素,如果下一次要添加數(shù)據(jù),就是添加到數(shù)組長度的位置,即2索引,值就是count arr[count] = stu4; // 添加完畢之后,遍歷所有的學生信息 printArr(arr); System.out.println("-----當前原數(shù)組元素為------"); } } // 通過id刪除學生信息 int index = getIdIndex(newArr, 4); if (index >= 0) { System.out.println("-----刪除完數(shù)組某元素為------"); if (arr.length < index){ arr[index] = null; printArr(arr); }else { newArr[index] = null; printArr(newArr); } }else { // 如果不存在,則表示刪除失敗 System.out.println("當前的id不存在,刪除失敗"); } // 查詢數(shù)組id為2的學生,如果存在則將他的年齡+1 int index1 = getIdIndex(newArr, 2); if (index1>0){ // 存在 System.out.println("-----修改年齡后數(shù)組元素為------"); Students stu = arr[index1]; int newAge = stu.getAge() + 1; stu.setAge(newAge); printArr(newArr); } else { // 不存在直接顯示 System.out.println("當前的id不存在,修改失敗"); } } // 找到id在數(shù)組當中的索引 public static int getIdIndex(Students[] arr, int id) { for (int i = 0; i < arr.length; i++) { // 依次得到每一個學生對象 Students stu = arr[i]; // 對stu進行一個非空判斷 if (stu != null) { int sid = stu.getId(); if(sid == id){ return i; } } } return -1; } // 打印數(shù)組元素 public static void printArr(Students[] arr) { for (int i = 0; i < arr.length; i++) { Students stu = arr[i]; if (stu != null) { System.out.println(stu.getId()+", "+stu.getName()+", "+stu.getAge()); } } } // 創(chuàng)建新數(shù)組用于添加新元素 public static Students[] createNewArr(Students[] arr) { Students[] newArr = new Students[arr.length + 1]; // 循環(huán)遍歷老數(shù)組中的元素 for (int i = 0; i < arr.length; i++) { newArr[i] = arr[i]; } // 把新數(shù)組返回 return newArr; } // 定義一個方法判斷數(shù)組中已經(jīng)存在了幾個元素 public static int getCount(Students[] arr) { // 統(tǒng)計變量 int count = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] != null){ count++; } } // 返回數(shù)組元素個數(shù) return count; } // 添加新數(shù)據(jù)到數(shù)組中進行學號的唯一性判斷 public static boolean contains(Students[] arr, int id) { // 依次獲取到數(shù)組里面的每一個學生對象 for (int i = 0; i < arr.length; i++) { // 依次獲取到數(shù)組里面的每一個學生對象 Students stu = arr[i]; if (stu != null){ // 獲取數(shù)組中學生對象的id int sid = stu.getId(); // 比較 if (sid == id) { return true; } } } // 當循環(huán)結束之后,沒有找到id那么就表示數(shù)組中要查找的id是不存在的 return false; } }
得到的結果如下:
總結
到此這篇關于Java基礎篇之對象數(shù)組練習的文章就介紹到這了,更多相關Java對象數(shù)組練習內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
spring的構造函數(shù)注入屬性@ConstructorBinding用法
這篇文章主要介紹了關于spring的構造函數(shù)注入屬性@ConstructorBinding用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12spring session同域下單點登錄實現(xiàn)解析
這篇文章主要介紹了spring session同域下單點登錄實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-10-10spring cloud gateway中如何讀取請求參數(shù)
這篇文章主要介紹了spring cloud gateway中如何讀取請求參數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07spring boot集成mongodb的增刪改查的示例代碼
這篇文章主要介紹了spring boot集成mongodb的增刪改查的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03SpringBoot?SpringSecurity?JWT實現(xiàn)系統(tǒng)安全策略詳解
Spring?Security是Spring的一個核心項目,它是一個功能強大且高度可定制的認證和訪問控制框架。它提供了認證和授權功能以及抵御常見的攻擊,它已經(jīng)成為保護基于spring的應用程序的事實標準2022-11-11