请帮忙看下问题,谢谢!

请帮忙看下问题,谢谢!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
public class Work {
    // 属性:工作ming
    private String name ;
 
    // 无参构造方法
    public Work(){
         
    }
 
    // 带参构造方法,完成工作类型的赋值
    public Work(String name){
        this.setName(name);
    }
 
   // 公有的get***/set***方法完成属性封装
   public void setName(String name){
       this.name=name;
   }
   public String getName(){
       return name;
   }
 
    // 方法:工作描述,描述内容为:开心工作
    public String workDescribe() {
        String str="开心工作";
        return str;
    }
}
============================================================
public class TestWork extends Work {
    //属性:编写的测试用例个数、发现的Bug数量
    private int excempleNum;
    private int bugNum;
 
    // 编写构造方法,并调用父类相关赋值方法,完成属性赋值
    public TestWork(String name,int excempleNum,int bugNum){
        this.Work(name);
        this.setExcempleNum(excempleNum);
        this.setBugNum(bugNum);
    }
    //无参构造
    public TestWork(){
         
    }
     
    // 公有的get***/set***方法完成属性封装
    public void setExcempleNum(int excempleNum){
        this.excempleNum=excempleNum;
    }
    public int getExcempleNum(){
        return excempleNum;
    }
     
    public void setBugNum(int bugNum){
        this.bugNum=bugNum;
    }
    public int getBugNum(){
        return bugNum;
    }
 
    // 重写运行方法,描述内容为:**的日报是:今天编写了**个测试用例,发现了**bug。其中**的数据由属性提供
    public String workDescribe() {
        String str=this.getName()+"的日报是:今天编写了"+this.getExcempleNum()+"个测试用例,发现了"+this.getBugNum()+"个bug";
        return str;
    }
}
 
================================================================
public class DevelopmentWork extends Work {
    // 属性:有效编码行数、目前没有解决的Bug个数
    private int rowNum;
    private int bugAlso;
    //编写构造方法,并调用父类相关赋值方法,完成属性赋值
    public DevelopmentWork(String name,int rowNum,int bugAlso){
        this.Work(name);
        this.setRowNum(rowNum);
        this.setBugAlso(bugAlso);
    }
     
    //无参构造
    public DevelopmentWork(){
         
    }
    // 公有的get***/set***方法完成属性封装
    public void setRowNum(int rowNum){
        this.rowNum=rowNum;
    }
    public int getRowNum(){
        return rowNum;
    }
     
    public void setBugAlso(int bugAlso){
        this.bugAlso=bugAlso;
    }
    public int getBugAlso(){
        return bugAlso;
    }
    // 重写运行方法,描述内容为:**的日报是:今天编写了**行代码,目前仍然有**个bug没有解决。其中**的数据由属性提供
    public String workDescribe() {
        String str=this.getName()+"的日报是:今天编写了"+this.getRowNum()+"行代码,目前仍然有"+this.getBugAlso()+"个bug没有解决";
        return str;
    }
}
 
======================================================================
 
public class Test {
    public static void main(String[] args) {
        System.out.print("父类信息测试:");
        Work w=new Work();
        System.out.println(w.workDescribe());
     
        System.out.print("测试工作类信息测试:");
        TestWork tw=new TestWork("测试工作",10,5);
        System.out.println(tw.workDescribe());
     
        System.out.print("研发工作类信息测试:");
        DevelopmentWork dw=new DevelopmentWork("研发工作",1000,10);
        System.out.println(dw.workDescribe());
     
    }
}

DevelopmentWork.java:7: error: cannot find symbol
   this.Work(name);
       ^
 symbol: method Work(String)
TestWork.java:8: error: cannot find symbol
       this.Work(name);
           ^
 symbol: method Work(String)
2 errors

请问,这是哪里出问题了?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,查看报错信息是有参构造中出现了错误,这里应该是对name进行set,并不是使用this直接调用对象。修改如下:

http://img1.sycdn.imooc.com//climg/5f068a9309ab9da306360161.jpg

http://img1.sycdn.imooc.com//climg/5f068aa10902328806040155.jpg

Ps:建议下次可将代码复制到eclipse中进行测试,这样有便于同学更快找出问题所在哦

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


  • 慕婉清2005302 提问者 #1
    谢谢,我知道问题出现在什么位置,但不清楚为什么会出错。谢谢
    2020-07-09 22:34:32
好帮手慕阿园 2020-07-09 11:00:06

同学你好,调用父类相关赋值方法,完成属性赋值的方法书写有误,可通过super()调用父类中的带参构造为属性赋值super(name);

修改后如下

http://img1.sycdn.imooc.com//climg/5f06882709a12dcb05360120.jpg

http://img1.sycdn.imooc.com//climg/5f06882f092f687b05480144.jpg

祝学习愉快

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码