文章目录
1、 在下列程序中声明一个内部内,以下选择中,哪些最合适?
public class OuterClass {
private double d1 = 1.0;
//在这里声明
}
A. static class InnerOne { public double methoda() {return d1;} }
B. static class InnerOne { static double methoda() {return d1;} }
C. private class InnerOne { public double methoda() {return d1;} }
D. protected class InnerOne { static double methoda() {return d1;} }
E. public abstract class InnerOne { public abstract double methoda(); }
解答:CE
AB.内部类可以声明为static的,但此时就不能再使用外层封装类的非static的成员变量;
D.非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员
2.下面哪个是正确的?( D)
A. String temp [] = new String {“a” “b” “c”};
B. String temp [] = {“a” “b” “c”}
C. String temp = {“a”, “b”, “c”}
D. String temp [] = {“a”, “b”, “c”}
3.在使用super和this关键字时,以下描述正确的是(D)
A、super()和this()不一定要放在构造方法第一行
B、this()和super()可以同时出现在一个构造函数中
C、this()和super()可以在static环境中使用,包括static方法和static代码块
D、在子类构造方法中,使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译失败
super()是调用父类方法,this()是调用子类方法,子类方法中,只能放在方法的第一行,并且,他们两不能同时出现在一个构造函数中,也不能调用被static修饰的方法和代码块
4.从下面四段(A,B,C,D)代码中选择出正确的代码段(C)
A. abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
B. public class Something {
void doSomething () {
private String s ="";
int l = s.length();
}
}
C. public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
D. public class Something {
public int addOne(final int x) {
return ++x; }
}
A…抽象方法不能有方法体
B.方法中定义的是局部变量,不能用类成员变量修饰符private
D.final修饰为常量,常量的值不能被改变,所以不能作为参数变量
5.冒泡排序
for(int i=1;i<ages.length;i++) {
for(int j=0;j<ages.length-i;j++) {
if(ages[j]>ages[j+1]) {
int tmp=0;
tmp=ages[j];
ages[j]=ages[j+1];
ages[j+1]=tmp;
}}}