请使用面向对象的思想,设计自定义类完成如下功能要求: 接收用户输入的信息,选择需要完成的工作任务。其中,可供选择的有:测试工作和研发工作。 关于类型设定描述如下: - 测试工作 属性:工作名称、编写的测试用例个数、发现的Bug数量 方法:工作描述 - 研发工作 属性:工作名称、有效编码行数、目前没有解决的Bug个数 方法:工作描述 程序运行参考效果图如下: **父类信息测试:开心工作** **测试工作类信息测试:测试工作的日报是:今天编写了10个测试用例,发现了5个BUG。** **研发工作类信息测试:研发工作的日报是:今天编写了1000行代码,目前仍有10个BUG没有解决** 任务 思路分析: **第一步:分析测试工作和研发工作的共性:** 1. 都是工作类型 2. 都有工作名称的属性,工作描述的方法 **第二步:根据共性,定义工作类** 属性:工作名称 方法: 1. 编写无参构造方法、带参构造方法完成对属性的赋值 2. 编写工作描述的方法,描述内容为:开心工作。 **第三步:定义测试工作类、研发工作类分别继承工作类,要求:** - **测试工作类:** 1. 增加属性:编写的测试用例个数、发现的Bug数量 2. 在构造方法中调用父类相关赋值方法,完成属性赋值 3. 重写运行方法,描述内容为:**的日报是:今天编写了**个测试用例,发现了**bug。其中**的数据由属性提供 - **研发工作类:** 1. 增加属性:有效编码行数、目前没有解决的Bug个数 2. 在构造方法中调用父类相关赋值方法,完成属性赋值 3. 重写运行方法,描述内容为:**的日报是:今天编写了**行代码,目前仍然有**个bug没有解决。其中**的数据由属性提供 **代码:** ```java package me.feihong.work; public class Work { // 属性:工作ming private String name ; public Work() { }// 无参构造方法 public Work(String name) { this.name=name; }// 带参构造方法,完成工作类型的赋值 public String getName() { return name; } public void setName(String name) { this.name = name; } // 公有的get***/set***方法完成属性封装 // 方法:工作描述,描述内容为:开心工作 public String work() { String str="开心工作"; return str; } } ``` ```java package me.feihong.work; public class TestWork extends Work { //属性:编写的测试用例个数、发现的Bug数量 private int testNum=10; private int bugNum=5; // 编写构造方法,并调用父类相关赋值方法,完成属性赋值 public TestWork() { super("测试工作"); } // 公有的get***/set***方法完成属性封装 public int getTestNum() { return testNum; } public void setTestNum(int testNum) { this.testNum = testNum; } public int getBugNum() { return bugNum; } public void setBugNum(int bugNum) { this.bugNum = bugNum; } // 重写运行方法,描述内容为:**的日报是:今天编写了**个测试用例,发现了**bug。其中**的数据由属性提供 public String work() { String str=getName()+"的日报是:今天编写了"+testNum+"个测试用例,发现了"+bugNum+"个BUG。" ; return str; } } ``` ```java package me.feihong.work; public class DevelopmentWork extends Work { // 属性:有效编码行数、目前没有解决的Bug个数 private int yline=1000; private int unSovleBug=10; //编写构造方法,并调用父类相关赋值方法,完成属性赋值 public DevelopmentWork() { super("研发工作"); } // 公有的get***/set***方法完成属性封装 public int getYline() { return yline; } public void setYline(int yline) { this.yline = yline; } public int getUnSovleBug() { return unSovleBug; } public void setUnSovleBug(int unSovleBug) { this.unSovleBug = unSovleBug; } // 重写运行方法,描述内容为:**的日报是:今天编写了**行代码,目前仍然有**个bug没有解决。其中**的数据由属性提供 public String work() { String str=getName()+"的日报是:今天编写了"+yline+"行代码,目前仍有"+unSovleBug+"个BUG没有解决" ; return str; } } ``` ```java package me.feihong.work; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub System.out.print("父类信息测试:"); Work fwork=new Work(); System.out.println(fwork.work()); System.out.print("测试工作类信息测试:"); TestWork twork=new TestWork(); System.out.println(twork.work()); System.out.print("研发工作类信息测试:"); DevelopmentWork dwork=new DevelopmentWork(); System.out.println(dwork.work()); } } ``` Loading... 请使用面向对象的思想,设计自定义类完成如下功能要求: 接收用户输入的信息,选择需要完成的工作任务。其中,可供选择的有:测试工作和研发工作。 关于类型设定描述如下: - 测试工作 属性:工作名称、编写的测试用例个数、发现的Bug数量 方法:工作描述 - 研发工作 属性:工作名称、有效编码行数、目前没有解决的Bug个数 方法:工作描述 程序运行参考效果图如下: **父类信息测试:开心工作** **测试工作类信息测试:测试工作的日报是:今天编写了10个测试用例,发现了5个BUG。** **研发工作类信息测试:研发工作的日报是:今天编写了1000行代码,目前仍有10个BUG没有解决** 任务 思路分析: **第一步:分析测试工作和研发工作的共性:** 1. 都是工作类型 2. 都有工作名称的属性,工作描述的方法 **第二步:根据共性,定义工作类** 属性:工作名称 方法: 1. 编写无参构造方法、带参构造方法完成对属性的赋值 2. 编写工作描述的方法,描述内容为:开心工作。 **第三步:定义测试工作类、研发工作类分别继承工作类,要求:** - **测试工作类:** 1. 增加属性:编写的测试用例个数、发现的Bug数量 2. 在构造方法中调用父类相关赋值方法,完成属性赋值 3. 重写运行方法,描述内容为:**的日报是:今天编写了**个测试用例,发现了**bug。其中**的数据由属性提供 - **研发工作类:** 1. 增加属性:有效编码行数、目前没有解决的Bug个数 2. 在构造方法中调用父类相关赋值方法,完成属性赋值 3. 重写运行方法,描述内容为:**的日报是:今天编写了**行代码,目前仍然有**个bug没有解决。其中**的数据由属性提供 **代码:** ```java package me.feihong.work; public class Work { // 属性:工作ming private String name ; public Work() { }// 无参构造方法 public Work(String name) { this.name=name; }// 带参构造方法,完成工作类型的赋值 public String getName() { return name; } public void setName(String name) { this.name = name; } // 公有的get***/set***方法完成属性封装 // 方法:工作描述,描述内容为:开心工作 public String work() { String str="开心工作"; return str; } } ``` ```java package me.feihong.work; public class TestWork extends Work { //属性:编写的测试用例个数、发现的Bug数量 private int testNum=10; private int bugNum=5; // 编写构造方法,并调用父类相关赋值方法,完成属性赋值 public TestWork() { super("测试工作"); } // 公有的get***/set***方法完成属性封装 public int getTestNum() { return testNum; } public void setTestNum(int testNum) { this.testNum = testNum; } public int getBugNum() { return bugNum; } public void setBugNum(int bugNum) { this.bugNum = bugNum; } // 重写运行方法,描述内容为:**的日报是:今天编写了**个测试用例,发现了**bug。其中**的数据由属性提供 public String work() { String str=getName()+"的日报是:今天编写了"+testNum+"个测试用例,发现了"+bugNum+"个BUG。" ; return str; } } ``` ```java package me.feihong.work; public class DevelopmentWork extends Work { // 属性:有效编码行数、目前没有解决的Bug个数 private int yline=1000; private int unSovleBug=10; //编写构造方法,并调用父类相关赋值方法,完成属性赋值 public DevelopmentWork() { super("研发工作"); } // 公有的get***/set***方法完成属性封装 public int getYline() { return yline; } public void setYline(int yline) { this.yline = yline; } public int getUnSovleBug() { return unSovleBug; } public void setUnSovleBug(int unSovleBug) { this.unSovleBug = unSovleBug; } // 重写运行方法,描述内容为:**的日报是:今天编写了**行代码,目前仍然有**个bug没有解决。其中**的数据由属性提供 public String work() { String str=getName()+"的日报是:今天编写了"+yline+"行代码,目前仍有"+unSovleBug+"个BUG没有解决" ; return str; } } ``` ```java package me.feihong.work; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub System.out.print("父类信息测试:"); Work fwork=new Work(); System.out.println(fwork.work()); System.out.print("测试工作类信息测试:"); TestWork twork=new TestWork(); System.out.println(twork.work()); System.out.print("研发工作类信息测试:"); DevelopmentWork dwork=new DevelopmentWork(); System.out.println(dwork.work()); } } ``` 最后修改:2019 年 12 月 31 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏