关注
注:以下三个类代码通过了阿里巴巴Java规范插件验证。 1、Student类 /**
* 牛客网第三题——学生类
*/
package com.finersoft.nowcoder;
/**
* 名称:学生类 说明:
*
* @author Finersoft
* @date 2018年3月1日
*/
public class Student {
/** 定义最长寿命为200岁 */
public final int MAXAGE= 200;
/** * 姓名 */
private String name;
/** * 年龄 */
private int age;
/** * @return the name */
public String getName() {
return name;
}
/** * @param name * the name to set to a student */
public void setName(String name) {
if (name != null && name != "") {
this.name = name;
} else {
System.out.println("姓名不能为空");
}
}
/** * @return the age */
public int getAge() {
return age;
}
/** * @param age the age to set to a student */
public void setAge(int age) {
if (age >= 0 && age <= MAXAGE) {
this.age = age;
} else {
System.out.println("请输入一个正常现代人的年龄");
}
}
/**
* 默认构造函数
*/
public Student() {
this("张三", 18);
}
/**
* 带一参数的构造函数
*
* @param name
* 学生姓名
*/
public Student(String name) {
this(name, 18);
}
/**
* 完整参数构造函数
*
* @param name
* 学生姓名
* @param age
* 学生年龄
*/
public Student(String name, int age) {
this.name = name;
this.age = age;
}
/**
* 打印学生信息
*/
public void show() {
System.out.println(this.toString());
}
/**
* 转换成字符串操作
*/
@Override
public String toString() {
return "学生信息:\r\n\t姓名:" + this.getName ()+ "\r\n\t年龄:" + this.getAge();
}
public static void main(String[] args) {
//无参构造函数
Student stu1= new Student();
stu1.show();
//一参构造函数
stu1=new Student("牛牛");
stu1.show();
//两参构造函数
stu1=new Student("牛牛",16);
stu1.show();
//修改年龄和姓名
stu1.setAge(20);
stu1.setName("牛可");
stu1.show();
//不能输入错误的年龄
stu1.setAge(-20);
stu1.show();
//不能输入错误的姓名
stu1.setName("");
stu1.show();
}
}
2、Undergraduate类 /**
* 牛客网第三题——研究生类
*/
package com.finersoft.nowcoder;
/**
* 名称:研究生 说明:
*
* @author Finersoft
* @date 2018年3月1日
*/
public class Undergraduate extends Student {
/** 学位 */
private String degree;
/** * @return 学位信息 */
public String getDegree() {
return degree;
}
/** * @param degree 学位信息 */
public void setDegree(String degree) {
if (degree != null && degree != "") {
this.degree = degree;
} else {
System.out.println("学位不能为空");
}
}
/**
* 无参构造
*/
public Undergraduate() {
this("李四", 22, "Java开发");
}
/**
* 单参构造
*
* @param name
* 研究生姓名
*/
public Undergraduate(String name) {
this(name, 22, "Java开发");
}
/**
* 双参构造
*
* @param name
* 研究生姓名
* @param age
* 研究生年龄
*/
public Undergraduate(String name, int age) {
this(name, age, "Java开发");
}
/**
* 完整参数构造
*
* @param name
* 研究生姓名
* @param age
* 研究生年龄
* @param degree
* 学位信息
*/
public Undergraduate(String name, int age, String degree) {
super(name, age);
this.degree = degree;
}
/**
* 转换成字符串操作
*
* @see com.finersoft.nowcoder.Student#toString()
*/
@Override
public String toString() {
return "研究生"+ super.toString() + "\r\n\t学位:" + this.getDegree();
}
/**
* 打印研究生信息
*
* @see com.finersoft.nowcoder.Student#show()
*/
@Override
public void show() {
System.out.println(this.toString());
}
/**
* @param args
*/
public static void main(String[] args) {
// 无参构造函数
Undergraduate stu1 = new Undergraduate();
stu1.show();
// 一参构造函数
stu1 = new Undergraduate("牛牛");
stu1.show();
// 两参构造函数
stu1 = new Undergraduate("牛牛", 23);
stu1.show();
// 完整参数构造函数
stu1 = new Undergraduate("牛客", 24, "Java架构");
stu1.show();
// 修改学位信息
stu1.setDegree("JavaEE");
stu1.show();
// 修改学位信息——报错,学位不能为空
stu1.setDegree("");
stu1.show();
}
}
3、 TestStudent类 /**
* 牛客网第三题——测试类
*/
package com.finersoft.nowcoder;
/**
* 名称:测试学生类
* 说明:
* @author Finersoft
* @date 2018年3月1日
*/
public class TestStudent {
/**
* @param args
*/
public static void main(String[] args) {
Student stu = new Student("牛珂",18);
stu.setAge(20);
stu.setName("牛可可");
stu.show();
Undergraduate stu2= new Undergraduate(stu.getName(),stu.getAge(),"Java虚拟机");
stu2.show();
}
}
查看原帖
点赞 评论
相关推荐
牛客热帖
正在热议
# 25届秋招总结 #
344609次浏览 3315人参与
# 我的实习求职记录 #
6079893次浏览 83628人参与
# 阿里云管培生offer #
40102次浏览 592人参与
# 地方国企笔面经互助 #
4923次浏览 13人参与
# 职场吐槽大会 #
89914次浏览 740人参与
# 选完offer后,你后悔学本专业吗 #
22625次浏览 162人参与
# 北方华创开奖 #
39426次浏览 412人参与
# 运营商笔面经互助 #
92152次浏览 1330人参与
# ai智能作图 #
1677次浏览 38人参与
# 如果有时光机,你最想去到哪个年纪? #
23769次浏览 478人参与
# 海康威视求职进展汇总 #
401865次浏览 3414人参与
# 软件开发2024笔面经 #
2324515次浏览 48210人参与
# 风评不好的公司,你会去吗? #
20578次浏览 94人参与
# 国企还是互联网,你怎么选? #
89912次浏览 698人参与
# 如何一边实习一边秋招 #
999113次浏览 12693人参与
# 腾讯求职进展汇总 #
197931次浏览 1650人参与
# 银行笔面经互助 #
84460次浏览 893人参与
# 第一份工作应该选择高薪还是大平台 #
88795次浏览 590人参与
# bilibili求职进展汇总 #
33795次浏览 361人参与
# 许愿池 #
215351次浏览 2536人参与
# 上班苦还是上学苦呢? #
79109次浏览 731人参与
# 国央企薪资爆料 #
13640次浏览 102人参与