简单类的初步设计
来源:互联网 发布:旅游交友软件 编辑:程序博客网 时间: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
- 简单类的初步设计
- 基于DM642的JPEG压缩初步设计
- 跨平台并行库的初步设计
- 实时数据缓存管理的初步设计
- 初步设计对复杂系统的意义
- 基于TCP的STM32 IAP bootloader初步设计
- 菜鸟初步设计的开放平台框架
- 基于哈希数据结构的Ogre自定义文件系统初步设计方案
- 模拟交易初步设计——被枪毙了的设计
- 代理服务器从后端“多线程”下载文件的初步设计
- 数据交换平台的需求总结与初步设计
- 状态机--状态机1,关于战斗中兵种状态的初步设计
- 餐馆订餐系统表的初步设计思路
- 初步设计算法
- PHP编程——我的第一个框架(初步设计)
- zynq-7000系列基于zynq-zed的vivado初步设计之使用jtag->uart(MDM)
- 产品框架初步设计后,如何为每个部件定义一个清晰的职责范畴?
- 案例:贪吃蛇 第十天内容 食物类 节点类 主程序初步设计(静态)
- 制作网页---form与input
- 【BZOJ1711】[Usaco2007 Open]Dining吃饭【最大流】
- aop
- a毛 jquery 学习记 3 常规选择器(2)
- 第六周作业 武器类
- 简单类的初步设计
- [SPOJ7258]SUBLEX - Lexicographical Substring Search
- java环境配置
- 在android中如何获取显示器屏幕大小
- 快速排序
- 扩展欧几里得算法
- 生物信息学菜鸟成长日记开通!
- aop
- Java重写equals与hashCode的注意事项 | Java基础