整体思路:我们需要保存很多个用户,所以使用数组比较好,而用户各自都有他们的属性,比如名字,性别等。所以需要将用户当做数组的一个个元素保存在数组中。需要调取某人的某个属性,直接使用数组下标定位,调取getter setter方法就可以了。对数组层面的操作有添加元素,删除某个元素,修改某个元素,可以在一个类中完成。最后就是界面层了,显示项目运行的各种信息,提示怎么输入等功能都需要在这个层面来完成。
分为四个大类,
1.工具类 CMUtility
工具类就像一个工具箱,里面方法用static修饰,写好工具后我们有需要直接取出来用就可以了。工具类作用主要为读取键盘的各种值,比如名字String类型,性别char类型等
而且每种方法都重载了两个,一个是没有默认值的,一个可以导入默认值。导入默认值后当你什么都不输入直接回车时,可以让信息保持原来的默认值。这两种重载方法一个用来添加用户,另一个用来修改用户。
另外,工具类中还写了读1-5的数字,读Y/N等。这种方法因为可以考虑到具体用在哪,可以加一个判断,比如输入的不是1-5的数字的话输出一句话:”请输入1-5之间的数字“,继续回到主循环接受新的输入值。
我把工具类自己大概写了一下。基本功能都有。
2.用户类 Member
用户类主要是写封装起来的一个用户。其中有用户各自的属性。getter setter方法。需要一个构造方法,把信息可以传入,同时生成一个新的对象。我们添加、修改成员都需要用到这个构造方法。
3.数组类 MemberList
数组类主要负责用户数组的一些变动方法。增删改查方法都要有。注意需要从具体应用层面来思考,比如我需要修改,那么修改数组中哪一个对象?肯定需要传入一个数,同时也需要传入一个新的对象来替换它。删除某一个对象需要一个定位用的数,并且后面的对象都需要往前挪一位。这些都需要在数组类当中实现。另外输出的时候不能直接遍历,会输出很多后面空的位置,可以考虑获取成员数,遍历前几个,或者直接赋一个新的短的数组。
数组类需要两个成员变量,一个是total,代表数组中的成员数。另一个是Number[] 对象。需要对这两个变量进行操作。
4.界面类 CustomerView
需要一个变量 MemberList的对象,调用其中方法用得到。这一层的写、改方法,利用工具类中的方法把数据从键盘读出来,导入到Number[]数组中的对象当中去。用数组类当中的方法对数组进行同步操作,根据不同的情况改变下标位置。
还需要考虑到输入错误的情况,加几个判断。
因为几个层面像嵌套一样,高层需要底层的属性方法,底层需要高层往里输入一些数据。那么就需要在高层new一个对象,通过构造器传入一些数据到底层,并且通过对象高层可以使用低层的方法和属性。在new对象的时候可以考虑把它放在构造器中,声明在类中,new对象赋值在构造器中。这样比较合理。
代码如下: