Java代码查错

JAVA学习网 2017-10-18 11:20:01



1.
abstract class Name {
   private String name;
   public abstract boolean isStupidName(String name) {}
}
有何错误?
-------------- 抽象类里的抽象方法没有方法体,以分号结尾

2.
public class Something {
   void doSomething () {
       private String s = "";
       int l = s.length();
   }
}

--------------方法内不能使用访问修饰符
3.
abstract class Something {
   private abstract String doSomething ();
}

---------------private和abstract不能在一起用
4.
public class Something {
   public int addOne(final int x) {
       return ++x;
   }
}
----------------当final修饰的标量作为参数时,可以被应用一次,但是其值不能被改变

5.
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;
}

-----------------没错(O的引用并没有变,只是调用他的属性
6.
class Something {
    int i;
    public void doSomething() {
        System.out.println("i = " + i);
    }
}
有什么错呢?
------------------没错,成员变量有defaultValue;
7.
class Something {
    final int i;
    public void doSomething() {
        System.out.println("i = " + i);
    }
}

-------------------final修饰的成员变量没有defaultValues
8.
public class Something {
     public static void main(String[] args) {
        Something s = new Something();
        System.out.println("s.doSomething() returns " + doSomething());
    }
    public String doSomething() {
        return "Do something ...";
    }
}

----------------------main方法是static的,不能直接调用non-static方法
9.
此处,Something类的文件名叫OtherThing.java
class Something {
    private static void main(String[] something_to_do) {       
        System.out.println("Do something ...");
    }
}

----------------------没错,非public的类名可以与文件名不一样
10.
interface  A{
   int x = 0;
}
class B{
   int x =1;
}
class C extends B implements A {
   public void pX(){
      System.out.println(x);
   }
   public static void main(String[] args) {
      new C().pX();
   }
}
-------------------------调用不明确
11.
interface Playable {
    void play();
}
interface Bounceable {
    void play();
}
interface Rollable extends Playable, Bounceable {
    Ball ball = new Ball("PingPang");
}
class Ball implements Rollable {
    private String name;
    public String getName() {
        return name;
    }
    public Ball(String name) {
        this.name = name;       
    }
   public void play() {
        ball = new Ball("Football");
        System.out.println(ball.getName());
    }
}
----------------------------接口的成员变量默认为public static final,故  ball = new Ball("Football");改变了其引用,故错误

阅读(780) 评论(0)