代码问题

代码问题

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
package com.imooc.model;
 
public class Subject {
    // 成员属性:学科名称、学科编号、学科年限
    private String subjectName;
    private String subjectNo;
    private int subjectLife;
 
    // 无参构造方法
    public Subject() {
 
    }
 
    // 带参构造,对属性实现全部的赋值
    public Subject(String subjectName, String subjectNo, int subjectLife) {
        this.subjectName = subjectName;
        this.subjectNo = subjectNo;
        this.subjectLife = subjectLife;
    }
 
    public void setsubjectName(String subjectName) {
        this.subjectName = subjectName;
    }
 
    public String getSubjectName() {
        return subjectName;
    }
 
    public void setSubjectName(String subjectName) {
        this.subjectName = subjectName;
    }
 
    public String getSubjectNo() {
        return subjectNo;
    }
 
    public void setSubjectNo(String subjectNo) {
        this.subjectNo = subjectNo;
    }
 
    public int getSubjectLife() {
        return subjectLife;
    }
 
    // 设置学制年限,年限必须>0
    public void setSubjectLife(int subjectLife) {
        if (subjectLife <= 0)
            return;
        this.subjectLife = subjectLife;
    }
 
    public String info() {
        String Str = "专业信息如下:\n专业名称:" this.getSubjectName() + "\n专业编号:" this.getSubjectNo() + this.getSubjectLife()+ "年";
        return Str;
    }
 
}


为什么设置学制年限,这个方法不起作用?

正在回答 回答被采纳积分+1

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

1回答
好帮手慕小蓝 2022-03-20 17:44:27

同学你好,同学代码中的有参构造中,使用的this关键字直接为属性赋值,而限制数据的代码写在了set方法中,有参构造没有调用set方法导致的方法不起作用。

祝学习愉快~

  • 提问者 慕仔4204170 #1

    那怎么解决这个问题?



    2022-03-20 17:46:44
  • 好帮手慕小蓝 回复 提问者 慕仔4204170 #2

    同学你好,在构造方法中调用set方法取代属性直接赋值,代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    public Subject(String subjectName, String subjectNo, int subjectLife) {
    //    this.subjectName = subjectName;
        this.setSubjectName(subjectName);
    //    this.subjectNo = subjectNo;
        this.setSubjectNo(subjectNo);
    //    this.subjectLife = subjectLife;
        this.setSubjectLife(subjectLife);
    }

    祝学习愉快~

    2022-03-20 17:53:39
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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