老师,这里为什么会错?

老师,这里为什么会错?

public class TestWork extends Work{
	 //属性:编写的测试用例个数、发现的Bug数量
	private int testNum;
	private int bugNum;
    // 编写构造方法,并调用父类相关赋值方法,完成属性赋值
	public TestWork() {
		
	}
	public TestWork(String name,int testNum,int bugNum) {
		super(name);
		this.setTestNum(testNum);
		this.setBugNum(bugNum);		
	}
    // 公有的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 str1=this.getName()+"的日报是:"+"今天编写了"+this.getTestNum()+"个测试用例,"+"发现了"+this.getBugNum()+"bug";
        return str1;        
	}
}

1、用super(name )为什么错?怎么改?

2、work方法中怎么获取name?

正在回答

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

4回答

       同学你好,this.getName()是name属性的get方法,可以根据此方法获取name的属性值。

       带参构造方法中使用了this.name=name语句为属性name赋值,这里并没有使用this.getName()方法哦~同学这里的疑惑是什么呢?请详细描述下,方便老师为同学解答。

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

吃吃吃鱼的猫 2019-06-18 18:14:01

同学你好,Object类是所有类的父类。

super()是调用父类无参构造方法的意思。这里表示调用的是Object类中无参构造方法。

当调用无参构造方法时,super()是省略不写的,2-20的选择题中也省略了呢~同样,上面的代码中也可以省略呢~

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

吃吃吃鱼的猫 2019-06-18 16:00:03

同学你好,问一下同学所定义的Work类中是否存在name属性,带参构造方法,无参构造方法,以及对应的set,get方法呢?

如图所示:

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

如果存在的话,同学的代码是没有问题的哦~

super(name);和this.getName()也都是正确的呢~

this.setName(name);也是可以的哦。

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

  • 提问者 慕移动ttong #1
    1、为什么要在Work类的带参构造方法里加super()? 子类不是加过了吗? 2、我看2-20的选择题也没加啊!那什么时候加,什么时候不加呢? 分别代表什么意思呢?
    2019-06-18 16:30:58
  • 提问者 慕移动ttong #2
    this.getName(),老师这个是取值吧,但是带参构造方法是赋值的,这怎么可以的? 老师是不是写错了
    2019-06-18 19:40:01
提问者 慕移动ttong 2019-06-18 13:30:08

我用this.setName(name)赋值可以吗?如果不可以,为什么?

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

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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