15、关于以下程序代码的说明正确的
class HasStatic{
private static int x = 100;
public static void main(String args[ ]){
HasStatic hs1 = new HasStatic();
hs1.x++;
HasStatic hs2 = new HasStatic();
hs2.x++;
hs1=new HasStatic();
hs1.x++;
HasStatic.x–;
System.out.println( “x=” +x);
}
}
A、5行不能通过编译,因为引用了私有静态变量
B、10行不能通过编译,因为x是私有静态变量
C、程序通过编译,输出结果为:x=103
D、程序通过编译,输出结果为:x=102
正确答案:C
解析:该程序能够通过编译,程序中声明了2个对象hs1和hs2,而hs1初始化两次,虽然x被定义为私有的变量,但在本类中是可以调用的。所以输出结果为x=103。
18、 对于abstract声明的类,下面说法正确的是
A、可以实例化
B、不可以被继承
C、子类为abstract
D、只能被继承
E、可以被抽象类继承
A.可以实例化 //错误,抽象类中有抽象方法,需要被实现,不能实例化。 B.不可以被继承 //错误,可以被继承,如果不继承,里面的抽象方法就没意思了。 C.子类为abstract //错误,子类不一定为抽象类,可以是,也可以不是。 D.只能被继承 //错误,我觉得,抽象类不仅可以被继承,还可以直接拿来使用的,当然,这个使用是拿来声明,而不是实例化,因为抽象类不能实例化,但可以声明使用。就像接口一样。可以动态绑定,地实现多态,如下例子,AbstractMap就是抽象类,它可以这样使用。 AbstractMap am = new HashMap(); am.put(“young”, 23); am.put(“strongyoung”, 26); Iterator itr = am.keySet().iterator(); while(itr.hasNext()){ String key = itr.next(); System.out.println(key + " : " + am.get(key)); } E.可以被抽象类继承 //正确。
20、socket编程中,以下哪个socket的操作是不属于服务端操作的()?
A、accept
B、listen
C、connect
D、close
21、类Parent和Child定义如下:
1 .class Parent{
2. public float aFun(float a, float b) { }
3 .}
4 .class Child extends Parent{
5 .
6 .}
将以下哪种方法插入行5是不合法的。( )
A、float aFun(float a, float b){ }
B、public int aFun(int a, int b) { }
C、public float aFun(float p, float q){ }
D、private int aFun(int a, int b){ }
方法重写应遵循“三同一小一大”原则:
“三同”:即方法名相同,形参列表相同,返回值类型相同;
“一小”:子类方法声明抛出的异常比父类方法声明抛出的异常更小或者相等;
“一大”:子类方法的访问修饰符应比父类方法更大或相等。
A选项是重写,但是默认访问修饰符比父类小,插入第五行编辑器会报错。
B、D不是重写。因为形参列表和返回值类型不同,不满足“三同”。所以写在第五行以普通方法对待,插入第五行没有错误。
C选项满足重写的各项条件,是正确的重写,所以插入第五行没有错误。
22、关于匿名内部类叙述正确的是? ( )
A、匿名内部类可以继承一个基类,不可以实现一个接口
B、匿名内部类不可以定义构造器
C、匿名内部类不能用于形参
D、以上说法都不正确
匿名内部类的创建格式为: new 父类构造器(参数列表)|实现接口(){
//匿名内部类的类体实现
}
使用匿名内部类时,必须继承一个类或实现一个接口
匿名内部类由于没有名字,因此不能定义构造函数
匿名内部类中不能含有静态成员变量和静态方法
24、what is the result of the following code?
enum