案例介紹:
隨機點名器,即在全班同學中隨機的找出一名同學,打印這名同學的個人信息。
需具備以下3個內容:
1)存儲所有同學姓名
2)總覽全班同學姓名
3)隨機點名其中一人,打印到控制台
案例需求分析:
全班同學中隨機的找出一名同學,打印這名同學的個人信息。
1)存儲全班同學信息(姓名、年齡)
2)打印全班同學每一個人的信息(姓名、年齡)
3)在班級總人數范圍內,隨機產生一個隨機數,查找該隨機數所對應的同學信息(姓名、年齡)
隨機點名器明確地分為了三個功能。如果將多個獨立功能的代碼寫到一起,則代碼相對冗長,我們可以針對不同的功能可以將其封裝到一個方法中,將完整獨立的功能分離出來。
而在存儲同學姓名時,如果對每一個同學都定義一個變量進行姓名存儲,則會出現過多孤立的變量,很難一次性將全部數據持有。此時,采用ArrayList集合來解決多個學生信息的存儲問題。
實現代碼步驟:
每名學生都擁有多項個人信息,為了方便管理每個人的信息,對學生信息進行封裝,Student.java
public class Student { String name; //姓名
int age; //年齡
}
編寫CallName.java文件
import java.util.ArrayList; import java.util.Scanner; import java.util.Random;
public class CallName { public static void main(String[] args) { ArrayList<Student> list = new ArrayList<Student>(); //1.1創建一個可以存儲多個同學名字的容器
/* * 1.存儲全班同學信息 */ addStudent(list); /* * 2.打印全班同學每一個人的信息(姓名、年齡) */ printStudent(list); /* * 3.隨機對學生點名,打印學生信息 */ randomStudent(list); } /** * 1.存儲全班同學名字 */
public static void addStudent(ArrayList<Student> list) { //鍵盤輸入多個同學名字存儲到容器中
Scanner sc = new Scanner(System.in); for (int i = 0; i < 3; i++) { //創建學生
Student s = new Student(); System.out.println("存儲第"+i+"個學生姓名:"); s.name = sc.next(); System.out.println("存儲第"+i+"個學生年齡:"); s.age = sc.nextInt(); //添加學生到集合
list.add(s); } } /** * 2.打印全班同學每一個人的信息(姓名、年齡) */
public static void printStudent (ArrayList<Student> list) { for (int i = 0; i < list.size(); i++) { Student s = list.get(i); System.out.println("姓名:"+s.name +",年齡:"+s.age); } } /** * 3.隨機對學生點名,打印學生信息 */
public static void randomStudent (ArrayList<Student> list) { //在班級總人數范圍內,隨機產生一個隨機數
int index = new Random().nextInt(list.size()); //在容器(ArrayList集合)中,查找該隨機數所對應的同學信息(姓名、年齡)
Student s = list.get(index); System.out.println("被隨機點名的同學:"+s.name + ",年齡:" + s.age); } }
