冒牌构造函数???

该程序中存在一个常见的误解,即`public void MyClass(long param)`被误认为是构造函数。实际上,这是一个带有void返回类型的普通方法,而非构造函数。在Java中,构造函数必须与类名相同且没有返回类型。程序在尝试创建`MyClass`实例时,(2)处使用了无参数构造函数,而类中并未定义,因此会导致编译错误。在(3)处,虽然提供了参数,但由于同样缺乏匹配的构造函数,也会引发编译错误。修正此问题的方法是为类定义正确的构造函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class MyClass {
    long var;
    public void MyClass(long param) { var = param; }//(1)
    public static void main(String[] args) {
        MyClass a, b;
        a =new MyClass();//(2)
        b =new MyClass(5);//(3)
    }
}
 

尝试编译以下程序会产生怎么样的结果?()
编译错误将发生在(1),因为构造函数不能指定返回值

编译错误将发生在(2),因为该类没有默认构造函数

编译错误将在(3)处发生,因为该类没有构造函数,该构造函数接受一个int类型的参数

该程序将正确编译和执行

 答案为第三句

注意:这个public void MyClass(long p)可不是一个构造方法!!!仅仅是一个返回值类型为void的普通方法,一i的那个要记住构造函数的格式 

public(或者其他访问修饰符) 类名(参数可有可无){}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C_x_330

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值