为了账号安全,请及时绑定邮箱和手机立即绑定

没有默认构造函数的类

没有默认构造函数的类

偶然的你 2023-03-02 09:55:16
constructor使用参数化构造函数时是否需要声明默认值?我们可以创建它的参数化对象class,并且该对象可以用来调用该类的其他函数,那么为什么我们需要默认构造函数呢?public class Const {    Const(int s,int  t) {       int b=s+t;       System.out.println(b);    }    public int add(int a) {        int j = 9;        j=j+a;        return j;    }}public class Construct {    public static void main(String[] args) {        Const obj =new Const(5,9);        obj.add(55);    }}这里我们不需要默认构造函数。我们可以不去这个对象吗?
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

您的代码非常好。根本不需要默认构造函数。您甚至可以将所有构造函数设为私有,这样您就无法访问任何构造函数:

public class PrivateClassTest{ 
   // Default constructor that is not accessible by others
    private PrivateClassTest()
    {
    }
}


查看完整回答
反对 回复 2023-03-02
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

构造函数用于初始化对象。换句话说,构造函数为对象提供内存。如果不初始化一个对象,我们就不能使用它的属性。

但是在 Java 中不需要定义或声明默认构造函数。如果我们没有声明或定义它,编译器会在程序中隐式添加一个默认构造函数。


查看完整回答
反对 回复 2023-03-02
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

当我们在项目结构中实现继承时,我们需要默认构造函数。


例子:


Class Apple{

    Apple(){}


    Apple(String a){

       System.out.pritnln(a);

    }

}


Class Banana extends Apple{

    Banana(){}


    public static void main(String[] args){

       Apple("Eaten");

    }

}

在上述场景中,如果您不为类声明任何默认构造函数,Apple那么它将抛出错误:

Implicit super constructor Apple() is undefined for default constructor. Must define an explicit constructor


因为类Banana总是会尝试调用未参数化的超级构造函数,如果您已经声明了一个参数化构造函数,那么您必须需要声明默认构造函数。


查看完整回答
反对 回复 2023-03-02
  • 3 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信