您的位置:首页 > 编程语言 > Java开发

java基础面向对象试题分析

2014-04-06 13:24 274 查看
请看代码,是否有问题。如果有,说明哪里有问题?

 

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());

    }

}

有问题。

接口中定义的是常量,不能被被重新创建对象了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息