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());
 }
}

运行结果:

原文发布于微信公众号 - Java帮帮(javahelp)

原文发表时间:2017-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

P3709 大爷的字符串题(50分)

题目背景 在那遥远的西南有一所学校 /*被和谐部分*/ 然后去参加该省省选虐场 然后某蒟蒻不会做,所以也出了一个字符串题: 题目描述 给你一个字符串a,每次询问...

35170
来自专栏noteless

[一]基础类型概述

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

13730
来自专栏目标检测和深度学习

常用排序算法总结(1)

14020
来自专栏JavaEdge

Collections.sort()源码分析(基于JAVA8)java.lang.Object java.util.Collections简介Collections的sort方法代码:TimSort.

459120
来自专栏糊一笑

排序算法总结与实现

写在前面 一直很惧怕算法,总是感觉特别伤脑子,因此至今为止,几种基本的排序算法一直都不是很清楚,更别说时间复杂度、空间复杂度什么的了。 今天抽空理了一下,其实感...

35190
来自专栏软件开发 -- 分享 互助 成长

经典算法学习之分治法(以排列、组合程序为例)

分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归的求解这些子问题,然后再合并这些子问题的解来建立原问题的解。 分治法在每层递归是遵循的三个步...

42970
来自专栏武培轩的专栏

排序算法-冒泡排序

算法简介 冒泡排序(Bubble Sort)是一种典型的交换排序算法,持续比较相邻元素,大的挪到后面,因此大的会逐步往后挪,故称之为冒泡。 算法描述 比较相邻的...

35770
来自专栏zhisheng

Java常用排序算法/程序员必须掌握的8大排序算法

Java常用排序算法/程序员必须掌握的8大排序算法 分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排...

53280
来自专栏轮子工厂

快速搞定8大排序算法

11220
来自专栏小小挖掘机

各种排序算法的分析及java&python实现

排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。...

40470

扫码关注云+社区

领取腾讯云代金券