JAVA编程语言的基础知识(六)

来源:IT的点点滴滴 责任编辑:栏目编辑 发表时间:2013-07-01 11:22 点击:

JAVA代码查错:

1.

  1. abstract class Name {
  2. private String name;
  3. public abstract boolean isStupidName(String name) {}
  4. }

 

大侠们,这有何错误?

答案: 错。abstract method必须以分号结尾,且不带花括号。

2.

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

有错吗?

答案: 错。局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量
(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。

3.

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

 

这好像没什么错吧?

答案: 错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstract

method封锁起来呢? (同理,abstract method前不能加final)。

4.

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

 

这个比较明显。

答案: 错。int x被修饰成final,意味着x不能在addOne method中被修改。

5.

  1. public class Something {
  2. public static void main(String[] args) {
  3. Other o = new Other();
  4. new Something().addOne(o);
  5. }
  6. public void addOne(final Other o) {
  7. o.i++;
  8. }
  9. }
  10. class Other {
  11. public int i;
  12. }

 

和上面的很相似,都是关于final的问题,这有错吗?

答案: 正确。在addOne method中,参数o被修饰成final。如果在addOne method里我们修改了o的reference (比如: o = new Other();),那么如同上例这题也是错的。但这里修改的是o的member vairable (成员变量),而o的reference并没有改变。

6.

  1. cla

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Java编程语言的八大优点
      • JVM对象生命周期详细介绍
      • Java平台上的CRM系统
      • Java 算数测试小程序
      • Command(命令模式)
      • Java 一个简单的画图程序
      • Java环境 使用Resin在NT环境下配置JSP环境
      • Java 日历的小程序
      • Java 统计代码的小工具
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1