qq158876572
qq158876572
采纳率50%
2016-03-24 02:58 阅读 2.2k
已采纳

java类中有有参构造,没有无参构造

import java.util.Date;

public final class Schedule {
private final Date start;
private final Date end;

public Schedule(Date start, Date end) {
    if (start.compareTo(end) > 0)
        throw new IllegalArgumentException(start + " after " + end);
    this.start = start;
    this.end = end;
}

public Date getStart() {
    return start;
}

public Date getEnd() {
    return end;
}

}
类中有有参构造,应该手动添加无参构造,可添加后报错,不添加反而正常,求大神解释下为什么?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

8条回答 默认 最新

  • 已采纳
    sadwxds 健秋 2016-03-24 03:45

    因为你设置两个final的Date,又没有初始化它们.
    当你提供了一个无参的构造函数,又没有初始化时,编译器就会报错.
    比如改成这样
    public Schedule(){
    start = new Date();
    end = new Date();
    }

    点赞 1 评论 复制链接分享
  • sl_18500 小小Q_Forler 2016-03-24 03:02

    当有有参构造时,是没有无参构造方法的,去百度搜下构造方法呗

    点赞 评论 复制链接分享
  • enpterexpress 把分全给哥 2016-03-24 03:05

    构造方法默认就是没有参数的

    点赞 评论 复制链接分享
  • Fs_1994_h7 Fs_1994_h7 2016-03-24 03:12

    当有有参构造器时默认的无参构造器可写可不写 ,但是调用的时候都可以调用.

    点赞 评论 复制链接分享
  • qq158876572 qq158876572 2016-03-24 03:19

    写了有参构造后,系统不自动添加无参构造,需要手动添加,可我手动添加无参构造后报错,不添加反而一切正常,类也可以正常使用,问一下是什么逻辑

    点赞 评论 复制链接分享
  • qq158876572 qq158876572 2016-03-24 03:27

    import java.util.Date;

    public final class Schedule {
    public Schedule() {
    super();
    }
    private final Date start;
    private final Date end;

    public Schedule(Date start, Date end) {
        if (start.compareTo(end) > 0)
            throw new IllegalArgumentException(start + " after " + end);
        this.start = start;
        this.end = end;
    }
    
    public Date getStart() {
        return start;
    }
    
    public Date getEnd() {
        return end;
    }
    

    }
    手动添加无参构造后,无参构造报错"The blank final field start may not have been initialized"

    点赞 评论 复制链接分享
  • sadwxds 健秋 2016-03-24 03:45

    因为你设置两个final的Date,又没有初始化它们.
    当你提供了一个无参的构造函数,又没有初始化时,编译器就会报错.
    比如改成这样
    public Schedule(){
    start = new Date();
    end = new Date();
    }

    点赞 评论 复制链接分享
  • Dissle Dissle 2016-03-24 03:46

    自己蹂躏自己,玩的好嗨啊

    点赞 评论 复制链接分享

相关推荐