黑马程序员技术交流社区

标题: 面向对象 [打印本页]

作者: 窗外的雪儿飞    时间: 2015-8-31 00:46
标题: 面向对象
请看代码,是否有问题。如果有,说明哪里有问题?
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;
}

正确。

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

错。
问题:
静态只能直接访问静态。
但是可以通过对象访问非静态。

9.
interface  A{
   int x = 0;

   //public static final 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());
    }
}

错。
问题:接口中的变量是常量。引用类型的指向是不能发生改变的。所以,错误。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2