首页 > 试题广场 >

给出下面的代码段,在代码说明 assignment x=

[不定项选择题]

给出下面的代码段:

public class Base{
int w, x, y ,z;
public Base(int a,int b)
{
x=a; y=b;
}
public Base(int a, int b, int c, int d)
{
// assignment x=a, y=b
w=d;z=c;
}}
在代码说明// assignment x=a, y=b处写入如下哪几个代码是正确的?()


  • Base(a,b);
  • x=a, y=b;
  • x=a; y=b;
  • this(a,b);
我还以为B和C重复了,原来是标点符号的问题,真是瞎了
发表于 2019-10-21 20:21:18 回复(0)
更多回答
啊啊啊啊啊,有多少人和我一样脑抽了选了A,和调用普通方法一样调用构造函数,哈哈,没毛病。
发表于 2018-06-15 17:08:47 回复(34)
A错,调用Base这个构造方法应该这样  new Base(a,b)
B错,和C相比应该是分号不是逗号,帅的一塌糊涂
C正常赋值操作
D调用本类的构造方法
编辑于 2017-08-07 09:13:30 回复(18)
B选项,可以使用逗号的是变量初始化的语句,比如
int i=1,b=2;
如果是赋值语句,不能用逗号分隔。
发表于 2017-08-06 15:00:03 回复(4)
发表于 2018-07-29 23:53:35 回复(7)
在一个构造方法中调用另一个构造方法需要使用this关键字
发表于 2017-08-11 23:02:02 回复(0)

A选错如果是看错了那没啥,如果不是偶然,那我解释一下:

静态方法中(main方法就是静态方法)如果不new一个对象,或者不int,double(等八大基本数据类型加一个String)一个变量,那么必须调用静态方法或者静态变量

public class nowCoder {
    public static void test() {
        System.out.println("test");
    }
    public static void main(String[] args) {
        int a = 0;
        String ss = "小斌哥最帅";
        test();
    }
}

由于构造器不是静态方法,所以不能直接调用他。

如果new了对象,或者使用八大基本数据类型,则对象或者变量没有静态要求,可以随便调。

public class nowCoder {
    static int a = 0;
    static String ss = "小斌哥~";
    public void test() {
        System.out.println("test");
    }
    public static void main(String[] args) {
        a = 11;
        nowCoder nc = new nowCoder();
        nc.test();
    }
}

新手做错阔以原谅,老鸟错了就该反省了 !——!

发表于 2019-07-12 14:48:59 回复(3)
我曹,把B看成C,,以为B,C一样,谁还和我犯同样的错误?
发表于 2017-10-06 17:05:45 回复(3)
我认为C,D是正确的。
C是正常的赋值操作,C正确;
this的作用不仅有在类中表示该对象的引用,还可以在另一个构造器中调用另一个构造器,所以D正确;


发表于 2017-02-22 14:42:30 回复(0)
调用构造函数之前需要使用new实例化对象,否则用this方法调用。
发表于 2021-11-03 08:16:06 回复(0)
A错,调用Base这个构造方法应该这样 new Base(a,b)。
B错,和C相比应该是分号不是逗号,如果是赋值语句,不能用逗号分隔。
C正常赋值操作。
D调用本类的构造方法。
发表于 2022-03-09 09:15:06 回复(0)
构造函数不能直接调用,毕竟不是静态函数
发表于 2019-01-16 23:12:03 回复(0)
又选错了一次,每回都选了A,不能想调用普通方法一样去调用构造方法,我是傻子,这回要好好记住@牛客解题官
发表于 2022-04-02 10:57:14 回复(0)
调用构造函数应该先实例化,即    new  Base(a,b);
发表于 2021-08-24 22:43:43 回复(0)
坚持住没选A的来报到
发表于 2021-12-09 11:07:28 回复(0)
class Test{
    int x,y,z,w;
    public  Test(int a, int b){
        x = a;
        y = b;
    }
    public Test(int a,int b,int c,int d){
       // this(a,b);  正确
        new Test(a,b);  //正确
        x = a; //等同于this.y = a
        y = b; //等同于this.x = b
    }
}

发表于 2019-12-16 18:52:00 回复(0)
调用构造函数之前需要使用new实例化对象,否则用this方法调用。牢记
发表于 2023-04-27 22:55:38 回复(0)
 new Base(a,b):这样写是新创建一个新的本类对象
 this(a,b):这样写才是调用本类的构造方法
发表于 2022-05-11 17:01:50 回复(0)
用this调用构造方法,用super调用。。
发表于 2021-05-10 10:53:11 回复(0)
静态的才能直接调用,调用构造函数用this
发表于 2021-03-13 12:19:32 回复(0)
<p>构造方法调用构造方法用this关键词</p>
发表于 2020-11-25 10:44:28 回复(0)