首页 > 试题广场 >

尝试编译以下程序会产生怎么样的结果?() public

[单选题]
尝试编译以下程序会产生怎么样的结果?()
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类型的参数
  • 该程序将正确编译和执行
这道题一定要看仔细了,MyClass方法并不是构造参数,而是返回类型为void的普通方法,普通方法自然需要实例化对象然后去调用它,所以124不对,第三个是正确的,因为没有带参数的构造器,所以自然不能传一个int进去。
发表于 2019-07-03 16:32:21 回复(19)
构造方法就是:public 类名, 没有方法修饰符
所以 (1)  处就是一个普通方法
所以该类没有带参数构造方法 ,编译报错

编辑于 2019-07-08 11:33:59 回复(1)
(1)虽然方法名和类名相同,不过由于void的修饰,所以它并不是一个构造方法,只是一个普通方法。因此题类仍然只有默认的无参构造器,(3)向构造方法中传入一个参数故而有误。
发表于 2019-07-02 18:03:02 回复(2)
构造方法没有返回值,所以1不是构造方法。
类无构造函数时会默认一个空参构造函数,所以2是对的。
没有以int数字为参数的构造函数,所以3编译错误。
发表于 2019-09-05 16:12:46 回复(1)
构造器没有返回值
发表于 2019-07-14 15:20:44 回复(2)
但是答案c也有问题啊。就算没有带参构造方法,也会有默认的无参构造方法啊。怎么能说该类没有构造方法呢???还说“该构造方法接收一个int类型的参数”???不是说那个MyClass方法不是构造方法吗?怎么又变成构造方法了?
发表于 2020-12-23 10:55:55 回复(0)
易错点:类的普通方法名称可与构造方法名称相等!!!!类的构造方法没有返回值这一说,所以也不能写void。
发表于 2022-01-31 12:26:11 回复(0)
这个题无非就是考构造方法:
1.如果不写构造函数,java会调用自己的默认构造函数;
2.构造函数一定没有返回值,并且一定要与类名相同
3.普通方法的名字可以随便取,我们管不着,甚至还可以普通函数名还可以为main。

发表于 2020-02-29 14:54:33 回复(1)
(2)正确, 没有提供有效的构造函数, 所以有默认的无参构造
(3)报错 ,没有参数值为int的构造函数
发表于 2019-07-02 20:48:03 回复(1)
构造器无void和返回值
发表于 2019-07-09 15:21:20 回复(0)
连续错三次了,我晕,每次都看成构造方法了!
发表于 2020-08-24 09:49:25 回复(1)
Mark
这道题一定要看仔细了,MyClass方法并不是构造参数,而是返回类型为void的普通方法,普通方法自然需要实例化对象然后去调用它,所以124不对,第三个是正确的,因为没有带参数的构造器,所以自然不能传一个int进去。
------
构造方法就是:public类名, 没有方法修饰符
 
所以 (1)  处就是一个普通方法
 
所以该类没有带参数构造方法 ,编译报错
----
(1)虽然方法名和类名相同,不过由于void的修饰,所以它并不是一个构造方法,只是一个普通方法。因此题类仍然只有默认的无参构造器,(3)向构造方法中传入一个参数故而有误。
发表于 2022-07-04 12:31:35 回复(0)
public void MyClass()是普通方法,不是构造方法,构造方法是直接public  类名。
默认有一个无参构造方法,//(2)就是调用的无参构造方法。
//(3)报错,因为没有这个参数为int的有参构造方法。
发表于 2022-06-24 10:50:36 回复(0)
好坑
发表于 2022-05-14 16:50:21 回复(0)
无参构造不写的话会自动创建,怎么给这点忘了,妈的
发表于 2022-03-02 20:08:48 回复(0)
加了void就成普通方法了。。。。。
发表于 2022-01-13 10:01:03 回复(0)
(1)构造函数的结构:public 类名,所以(1)处为普通方法,需要具体对象进行调用。
(2)本题中的MyClass类没有编写构造函数(构造器),这时Java会提供一个无参数构造器,这个构造器将所有的实例字段设置为默认值,如数值类型设置为0,布尔类型设置为false,对象变量设置为null。(2)处对构造函数的调用没有形参,正确。
(3)不存在带参数的构造函数,报错。
发表于 2021-09-30 20:13:33 回复(0)
奸诈啊,那个和类名相同的方法,不是构造方法,没看出来,只是和类名一样罢了
所以说 默认的无参的构造方法还是存在的

发表于 2021-06-02 09:03:57 回复(0)
**
发表于 2020-04-08 13:59:23 回复(0)
没意思。。。。。。。。。。??????
发表于 2019-07-07 18:54:57 回复(0)