首页 > 试题广场 >

下列哪个语句语法正确?( )

[单选题]
下列哪个语句语法正确?(
  • byte y = 11; byte x = y +y;
  • String x = new Object();
  • Object x = new String(“Hellow”);
  • int a [11] = new int [11];
选C
【分析】

A选项:java中byte、short类型相加的时候,都会自动提升到int类型的,所以byte y = 11 是正确的,但是byte x = y + y需要进行类型转换,正确写法:byte x = (byte)(y + y)
B选项:object是父类,不能用子类对象申请父类的空间,因此错误,object x = new String() 是可以的。
C选项:由上述B可知,父类对象申请子类的空间是可以的。正确。
D选项:创建数组时new了一定大小的空间,则左式不规定数组的容量,因此是错误的,应当为:
int a[] = new int[11]
发表于 2019-04-14 09:49:06 回复(0)
更多回答
推荐
正确答案是C
对于A,前一半语句赋值是没有问题的,问题是后半句,在对byte型的变量进行相加时,会先自动转换为int型进行计算,所以计算结果也是int型的,int型赋值给byte需要强制转换,所以A会出错
对于B,因为object是String的父类,所以不能这样使用,不能把父类对象赋值给子类,只能是Object x = new String();
对于C,因为String是Object的子类,所以可以将子类赋值给父类。
对于D,因为在声明变量时不需要指定容量,例如int  a[] = new int[11];这样是正确的,但是像D选项这样是错误的
编辑于 2019-04-15 14:10:27 回复(0)
选C。该题考查的是数据类型转换以及转换原则和取值范围
A选项属于赋值和算术运算的转换:byte取值范围-128~127,所以byte y = 11正确;byte x = y +y基本就是先转换为高位数据类型,再参加运算,结果也是最高位的数据类型, byte short char运算会转换为int,所以错误。
B选项是多态的条件应用:1.要有继承;2.要有重写;3.父类引用指向子类对象。Object是一切类的基类,正确的写法应该是:Object x=new String()。所以B选项错误。
D选项声明数组变量的错误,正确的应该是int a []或者int[] a。所以D错误。

发表于 2019-04-13 17:42:51 回复(0)
这道题选C,容易错选为A
A.这里考察的是 byte short char参与运算时会转换为int的性质后半句y+y的结果会是一个ing类型的值,再将int类型赋值给byte类型当然不对
B.这里考察的是父类对象指向子类实例。Object是任意类的父类,它应该在左边,写成Object x=new String()才是对的
C.考点同B选项一样,是正确的
D.在java中我们对于数组的声明可以是int[] a=new int[x]或者int a[]=new int[],但是无论哪种,等号左边的括号都是不能填写数字
发表于 2021-12-20 20:08:11 回复(0)
C
A:X要强制转换类型为byte
B:不能把父类对象赋给子类,范围可以由抽象到具体,但不能反过来
D:数组声明不需要指定长度
发表于 2019-04-13 17:29:14 回复(0)
这个知识点忘记了,byte,short,char做远算时会自动转为int类型。
发表于 2022-01-04 08:49:07 回复(0)
byte chart short 在进行运算的时候会自动转化为int类型
发表于 2021-12-01 23:05:34 回复(0)
我测,这题你就不讲究中文符号了,前面刷到的题你就讲究?
发表于 2023-08-04 20:15:54 回复(0)
不能把父类对象赋给子类,范围可以由抽象到具体,但不能反过来
发表于 2022-11-28 14:06:32 回复(0)
除了自增加自减不进行转化外,其它情况都是无long型时,所有非int类型转成int类型;有long类型时,都转成long类型
发表于 2022-11-15 09:01:04 回复(0)
声明数组时[]中不能有数字
发表于 2022-09-11 14:05:38 回复(0)
byte,short,char在相加时会自动转化成int
发表于 2022-09-04 06:51:45 回复(0)
都不正确,C是中文引号,属于语法错误,符合本题考察范围,所以没有正确答案
发表于 2022-07-21 23:38:45 回复(0)
byte、short相加会自动转为int
发表于 2022-07-08 18:29:41 回复(0)
选C
A错,byte y = 11 是没有问题的。问题出在byte x = y + y; byte型的变量相加时会自动转换为int型计算。所以y+y结果是int型,此处用一个byte类型的x来接收是错误的。正确的语法应该是 byte x= (byte)(y+y) 使用强制类型转换,来得到byte类型的结果
B错,String的父类是Object,不能把父类指向子类。只能子类指向父类。Object x = new String() 这种做法才可行
C正确! 恰好和B相反。子类可以指向父类。
D错,数组的基础知识。定义数组时,分静态初始化和动态初始化。 如果需要指定大小 应该这样写 int[] a = new int[11];

发表于 2022-06-22 11:01:05 回复(0)
选C,多态性
发表于 2019-04-14 10:55:24 回复(0)