简单类的初步设计

来源:互联网 发布:旅游交友软件 编辑:程序博客网 时间:2024/05/19 20:20

一、代码

方案一:

package cn.javase.demo;/** * Copyright (c) 2016 深圳大学信工电子 *  * ALL right reserved *  * 作者:简生 *  * 完成日期2016年4月4日 *  * 问题描述:1.假设我们现在有三组不同的兴趣小组,第一组由三位同学组成,进行通讯项目的研发,第二组由两位同学组成,对手持设备进行研究,第三组由四位同学组成  *             进行多媒体项目研究。  *      2.每个同学基本情况由以下信息构成: 姓名 专业 项目号 项目得分 *      3.用数组来完成项目的管理工作,定义各自的类,对每个对象进行初始化,并输出每个小组的基本情况。 * * 输入描述:初始化创建的对象 *  * 程序输出:三个兴趣小组的项目情况 *  */public class GroupDemo {public static void main(String[] args) {// 创建对象并且初始化TongXun[] t = new TongXun[3];t[0] = new TongXun("小赵", "信工", 1, 80);t[1] = new TongXun("小李", "计软", 1, 80);t[2] = new TongXun("小王", "机电", 1, 80);ShouChi[] s = new ShouChi[2];s[0] = new ShouChi("小张", "文院", 2, 90);s[1] = new ShouChi("小黄", "传院", 2, 90);DuoMeiTi[] d = new DuoMeiTi[4];d[0] = new DuoMeiTi("小吴", "生科", 3, 100);d[1] = new DuoMeiTi("小周", "法院", 3, 100);d[2] = new DuoMeiTi("小郭", "光电", 3, 100);d[3] = new DuoMeiTi("小杨", "师范", 3, 100);// 输出每个小组的基本情况System.out.println("通讯小组的基本情况如下:");new Student().show(t);System.out.println("手持小组的基本情况如下:");new Student().show(s);System.out.println("多媒体小组的基本情况如下:");new Student().show(d);}}class Student {String name;String major;int num;int score;Student() {}Student(String name, String major, int num, int score) {this.name = name;this.major = major;this.num = num;this.score = score;}public void show(Student[] arr){System.out.println("名字" + "" + "专业" + "" + "项目号" + "" + "项目得分");for (int i = 0; i < arr.length; i++) {System.out.println(arr[i].name + "" + arr[i].major + "" + arr[i].num + "" + arr[i].score);}}}class TongXun extends Student {TongXun(String name, String major, int num, int score) {super(name, major, num, score);}}class ShouChi extends Student {ShouChi(String name, String major, int num, int score){super(name, major, num, score);}}class DuoMeiTi extends Student {DuoMeiTi(String name, String major, int num, int score) {super(name, major, num, score);}}


方案二:

package cn.javase.demo;/**
 *面对兴趣小组: * 仅设计一个类,创建二维数组对象来管理三个小组的基本情况 */public class GroupsDemo {public static void main(String[] args) { StudentInfo[][]group=new StudentInfo[3][]; group[0]=new StudentInfo[3]; group[1]=new StudentInfo[2]; group[2]=new StudentInfo[4];  //对每个对象进行初始化 group[0][0]=new StudentInfo("小赵","信工",1,100); group[0][1]=new StudentInfo("小李","计软",1,100); group[0][2]=new StudentInfo("小王","机电",1,100); group[1][0]=new StudentInfo("小张","文院",2,90);  group[1][1]=new StudentInfo("小黄","传院",2,90); group[2][0]=new StudentInfo("小吴","生科",3,80); group[2][1]=new StudentInfo("小周","法院",3,80); group[2][2]=new StudentInfo("小郭","光电",3,80); group[2][3]=new StudentInfo("小杨","师范",3,80);         //输出每个小组的基本情况: System.out.println("通讯小组的基本情况如下:"); show(group,0); System.out.println("手持小组的基本情况如下:"); show(group,1); System.out.println("多媒体小组的基本情况如下:"); show(group,2);}public static void show(StudentInfo [][] arr,int i){System.out.println("名字"+""+"专业"+""+"项目号"+""+"项目得分");for(int j=0;j<arr[i].length;j++){ System.out.println(arr[i][j].name+""+arr[i][j].major+ ""+arr[i][j].num+""+arr[i][j].score);}}  }class StudentInfo{String name;String major;int num;int score;StudentInfo(String name,String major,int num,int score){this.name=name;this.major=major;this.num=num;this.score=score;}public static void show(StudentInfo [][] arr,int i){System.out.println("名字"+""+"专业"+""+"项目号"+""+"项目得分");for(int j=0;j<arr[i].length;j++){ System.out.println(arr[i][j].name+""+arr[i][j].major+ ""+arr[i][j].num+""+arr[i][j].score);}}  }   


二、运行结果

方案一:

方案二:



三、总结

1.面对一个需求,我们可以用多种方法来设计类去满足需求。其中,我觉得方案一的设计虽然代码比较长,但是更符合面向对象这一特点。

2.在编写代码的时候,犯了一些语法错误。比如在给二维数组对象初始化时,{}写成了();又如,在主方法中调用了非静态的方法,导致编译错误。

3.在设计对象完成对象的封装时,要注重代码的简洁,提高代码的复用性。如需求中的输出小组的基本情况,我们编写循环方法来遍历数组,如不考虑代码的简洁,就会出现多个极其相似的循环,为了提高代码的复用性,我们可以抽取这一部分代码写成方法来调用,也可以把它封装进类,通过多态这一特点来传递函数调用。






0 0
原创粉丝点击