Java基础-day09-重构随机点名器

时间:2022-05-04
本文章向大家介绍Java基础-day09-重构随机点名器,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Java基础-day09-重构随机点名器

1.案例介绍与演示

随机点名的案例由之前简单的Person对象,重构为相对完整的Person对象并使用。

2.案例回顾

在全班同学中随机地打印出一名同学名字。

共三个步骤:

(1)存储全班同学(Person对象)

(2)打印全班同学每一个人的名字

(3)在班级总人数范围内,随机产生一个随机数索引,查找该随机数索引所对应的同学(Person对象),并通过该对象访问name属性

3.重构内容分析

将原来使用的简单Person类,封装为包装成员变量和成员方法的相对完整的Person类,并将所有访问属性的地方改为通过get/set方法访问。

代码实现:

package StudentJavaSEday09;
/*
自定义类型 人类
属性 
姓名  String
年龄  int 
性别  String
身高  double
是否热爱java  boolean
*/
public class Person {
 // 姓名
 String name;
 // 年龄
 int age;
 // 性别
 String sex;
 // 身高
 double height;
 // 是否喜欢java
 boolean isLoveJava;
 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 String getSex() {
 return sex;
 }
 public void setSex(String sex) {
 this.sex = sex;
 }
 public double getHeight() {
 return height;
 }
 public void setHeight(double height) {
 this.height = height;
 }
 public boolean isLoveJava() {
 return isLoveJava;
 }
 public void setLoveJava(boolean isLoveJava) {
 this.isLoveJava = isLoveJava;
 }
}
package StudentJavaSEday09;
/*
随机点名器
 用集合存储所有同学
 总览全班同学姓名
 随机点名其中一人,打印到控制台
 1.定义一个集合用来存储所有同学
 导包  
 创建对象 存储的是Person
 调用方法
 2.向集合中添加人
 3.遍历集合,依次获取每个人,打印每个人的名字
 4.随机点名 
 生成一个最大不超过集合最大索引的随机数   0 - 集合最大索引的一个随机数
 依据随机数得到集合中相对应的人,打印其名字
*/
//导入集合ArrayList
import java.util.ArrayList;
import java.util.Random;;
public class RandomName {
 public static void main(String[] args) {
 // 定义一个集合用来存储所有人
 ArrayList<Person> list = new ArrayList<Person>();
 // 向集合中添加人 创建Person对象 将Person添加到集合中
 Person p = new Person(); 
 p.setName("柳岩");
 Person p2 = new Person();
 p2.setName("唐嫣");
 Person p3 = new Person();
 p3.setName("金莲");
 list.add(p);
 list.add(p2);
 list.add(p3);
 System.out.println("-----------------------");
 // 遍历集合,依次获取每个人,打印每个人的名字
 for (int i = 0; i < list.size(); i++) {
 Person thisP = list.get(i);
 // 调用getName方法 获取每个人的名字
 System.out.println(thisP.getName());
 }
 System.out.println("-----------------------");
 // 随机点名
 Random r = new Random();
 // 生成一个最大不超过集合最大索引的随机数 0 - 集合最大索引的一个随机数
 int randomIndex = r.nextInt(list.size());
 // 依据随机数得到集合中相对应的人
 Person person = list.get(randomIndex);
 System.out.println("今天你答题:" + person.getName());
 }
}

运行结果: