8.13 实例:学生类的设计
我们来写一个比较完整的类,Student类:
练习题
-
按照要求设计Student类,每一道题都是在上一题的基础上增加方法,例如第X题完成的代码是AABB,那么第X+1题的代码就在AABB的基础上增加方法。不要删除上一题已完成的方法。1.完成别的getter和setter函数 (10分) [编程]模仿name的getter和setter,为以下属性设计getter和setter函数:
String id;//学号
String gender;//性别
String clazz;//班级
String major;//专业
本题不需要main函数public String getName(){ return name;}public void setName(String name){ this.name=name;}2.(*)设计函数isSameClazz,接收一个Student对象作为参数,测试他们是不是同班同学,是的话返回true,否则返回false (10分) [编程]特别注意,此函数接受Student对象作为参数,不是String类型的clazz属性!
st.isSameClazz(st2);例如这样的代码,st和st2都是Student对象,假如他们是同班同学(也就是clazz内容是一样的,clazz是字符串,比较内容要用equals方法),返回true,否则返回false
此题不需要main函数3.(*)写一个函数isSameMajor,接收一个student参数,测试他们是不是同专业,是的话返回true,否则返回false (10分) [编程]参照上一题4.(**)设计没有参数没有返回值的函数checkId,用来检测Id是否为空(id==null||id.equals("")),假如为空值,那么打印“id值为空,请设置”,否则打印出id值。 (10分) [编程]id值是字符串,判断一个字符串是否为空,需要判断它是null,或者它的值是空串"",比较内容的时候注意,要用到equals方法比较内容,或者用length方法判断长度是否为05.现在我们要写一个方法info,打印一些信息。 (10分) [编程]这个函数没有参数、没有返回值,它的行为是组织了语言并打印信息。调用这个函数之前,很明显需要设置name、major和clazz属性。在main函数里面就可以像代码所示那样调用。
打印样例是:"我的名字是张二铁,男,我的专业是建筑工程,我是17建筑2班的学生"
本题需要用到所有的setter和getter函数,不需要main函数public static void main(String[]args){ Student st=new Student(); st.setName("上官渡云"); st.setClazz("16软件5班"); st.setGender("男"); st.setMajor("计算机软件"); st.info();}6.设计一个类Student (10分) [编程]含有以下属性:
String name;//姓名
String id;//学号
String gender;//性别
String clazz;//班级
String major;//专业
所有属性必须设置为private7.添加一个构造函数,接受一个字符串参数,参数将赋值到对象的id属性 (10分) [编程]8.添加静态函数isSameClazz (16分) [编程]静态函数isSameClazz,接收两个Student对象作为参数,如果这两个对象是同班,返回true,否则返回false。
静态函数不需要对象就能调用,调用类似这样:
Student.isSameClazz(st,st2);
此题需要上一题的带一个整数的构造函数,需要setClazz方法9.添加一个构造函数,接受一个整数为参数,参数将赋值给对象的id属性 (10分) [编程]需要把整数转化成字符串再赋值
此题是重载构造函数