java基礎面向對象試題分析

請看代碼,是否有問題。如果有,說明哪裏有問題?
 
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();
   }
}


有問題。
private修飾不能修飾局部變量。


3.
abstract class Something {
   private abstract String doSomething ();
}


有問題。
private和abstract不能共存。


4.
public class Something {
   public int addOne(final int x) {
       return ++x;
   }
}


有問題。
常量不能在被賦值。


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


沒有問題。
基本類型被final修飾,值不能改動。
引用類型被fianl修飾,地址值不能改動,但是對象的內容是可以改動的。


6.
class Something {
    int i;
    public void doSomething() {
        System.out.println("i = " + i);
    }


    public static void main(String[] args)
    {
new Something().doSomething();
    }



沒有問題。


7.
class Something {
    final int i;
    public void doSomething() {
        System.out.println("i = " + i);
    }


    public static void main(String[] args)
    {
new Something().doSomething();
    }
}


有問題。
final修飾的變量必須在構造方法執行完畢前明確賦值。


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裏面要想調用doSomething,要麼用對象,要麼doSomething靜態。


9.
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();
   }
}


有問題。
jvm不明確調用的是哪個x變量。


10.
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() {
//x = 20;
ball = new Ball("Football");
        System.out.println(ball.getName());
    }
}


有問題。
接口中定義的是常量,不能被被重新創建對象了。
發佈了42 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章