1、请运行下面code,指出其功能;
Driver.java的功能就是随机生成三个姓和三个名作为人的名字,再生成一个以及随机生成18-38以内的随机整数作为年龄;
2、请将该code进行代码重构,使之模块化,并易于阅读和维护;
重构两个for循环的内容,一个用put(studentList)来输出随机产生的姓名和年龄;一个 generate_radom(studentList, random)来产生随机的姓、名和年龄;这样就方便其他人能读懂程序的功能室再干啥;使用的是myeclipse 中的refactor进行重构。除此之外,今天(5月26日),经过昨天老师的讲解,我再次对代码进行重构,把循环上限和年龄下限重构成常量。分别是:generate_threepepople和age_floor
1 import java.util.ArrayList; 2 import java.util.List; 3 import java.util.Random; 4 5 6 public class Driver { 7 8 private static final int age_floor = 18; 9 private static final int generate_threepepople = 3; 10 private static String[] lastNames = {"Doe", "Smith", "Jones", "Adams", "Marshall", "Thompson", "Bradley", "Brown", "White", "Franklin", "Davis", "Cohn", "Clark"}; 11 private static String[] firstNames = {"Mary", "John", "Susan", "Michael", "David", "Lisa", "Wendy", "Diane", "Kelly", "Claire", "Elizabeth", "Mitchell", "Richard"}; 12 13 public static void main(String[] args) { 14 15 // create an empty list 16 List<Student> studentList = new ArrayList<Student>(); 17 18 // initialize random generator 19 Random random = new Random(); 20 21 // create random number of students 22 generate_radom(studentList, random); 23 24 25 //print out the students 26 put(studentList); 27 28 } 29 30 private static void put(List<Student> studentList) { 31 for (Student temp : studentList) { 32 System.out.println(temp); 33 34 } 35 } 36 37 private static void generate_radom(List<Student> studentList, Random random) { 38 for (int i=0; i < generate_threepepople; i++) { 39 40 // get random first name 41 String tempFirstName = firstNames[random.nextInt(firstNames.length)]; 42 43 // get random last name 44 String tempLastName = lastNames[random.nextInt(lastNames.length)]; 45 46 // get random age 47 int age = age_floor + random.nextInt(20); 48 49 // create student 50 Student tempStudent = new Student(tempLastName, tempFirstName, age); 51 52 // add them to the list 53 studentList.add(tempStudent); 54 } 55 } 56 57 }
3、观看视频The Expert (Short Comedy Sketch),写出观后感(内容是什么,说明了什么问题,有什么启示),提交到博客!
在这个视频中讲的是场景是用户需求和老板与真正开发人员之间的一个幽默喜剧。用户的需求是“我们需要七根直线,两两垂直,有一些是绿色墨水,有一些是透明墨水”,作为开发人员的他认为是不可能的,但是他的老板认为只要有钱没有不可能的,用户又说“透明墨水画红线”,在短片中用户与开发人员的对话处处透着讽刺。短片中一直说“他是专家‘,用户认为只要我能提出来,工程师就一定能满足用户的需求,其实这是不可能的。第一点,从开人员与用户的交流上来看,用户对自己的需求表达不清楚,没有明确自己想要的产品是什么和想要什么效果,以及开发者也没有明确获取用户提供的信息。第二,从开发人员对用户的需求分析来看,用户提出的要求不可能完成,而负责开发的公司却接受了任务,觉得工程师就是专家,用户的需求就一定能完成,这是不合理的。这样会导致最后开发结果根本就不是用户所”期望“的结果。
在这其中也提醒作为开发者的我们,在开发之前一定搞清楚用户真正的需求是什么,看这个需求是否合理,是否可行,可执行程度高不,不要先夸下海口,到最后达不到想要的结果。
4、学习在项目中使用 jar 文件:
1)在下列code中导入jar文件“commons-lang3-3.3.2.jar”,并运行,将运行结果截图提交到博客:
2)将四则运算程序的功能部分和界面部分分离,并将功能部分封装为jar文件(对java语言)或dll(对c语言);