楼主: omencathay

[精华] Think in java读书笔记

[复制链接]
论坛徽章:
0
291#
发表于 2005-4-3 12:18 | 只看该作者
最初由 lyl19820219 发布
[B]那么怎么会输出Cup(2)??? [/B]


在执行“Cups.c1.f(99);”之前要对所有的变量进行初始化的

使用道具 举报

回复
论坛徽章:
0
292#
发表于 2005-4-3 12:50 | 只看该作者
最近看书的心得:
所有的JAVA程序都是从main()开始执行的。
并且在调用函数之前会对函数所在的类内的变量进行初始化,顺序是先static 变量,后非静态变量。
static 变量只初始化一次。

使用道具 举报

回复
论坛徽章:
0
293#
发表于 2005-4-3 13:07 | 只看该作者
最近看书的心得补充:

在执行main()函数之前,如果main()函数所在类内有其他静态函数调用或静态变量初始化,先进行函数调用(变量初始化),而后调用main()。

使用道具 举报

回复
论坛徽章:
0
294#
发表于 2005-4-3 13:20 | 只看该作者
1、所有的JAVA程序都是从main()开始执行的,如果main()函数所在类内有其他静态函数调用或静态变量初始化,先进行函数调用(变量初始化),而后调用main()。
2、在调用函数之前会对函数所在的类内的变量进行初始化,顺序是先static 变量,后非静态变量。
3、static 变量只初始化一次。

使用道具 举报

回复
论坛徽章:
0
295#
发表于 2005-4-3 18:36 | 只看该作者
import java.util.*;

public class Array3{
        static Random rand=new Random();
        static int pRand(int mod){
                return Math.abs(rand.nextInt())%mod+1;
        }
       
        static void prt(String s){
                System.out.println(s);
        }
       
        public static void main(String[] args){
                int[][][] a2=new int[2][2][4];
                for(int i=0;i<a2.length;i++)
                        for(int j=0;i<a2.length;j++)
                                for(int k=0;k<a2[j].length;k++)
                                        prt("a2["+i+"]["+j+"]["+k+"]="+a2[j][k]);
        }
}

请高手帮忙看一下,为什么这个程序运行时会出现Exception in thread "main"java.lang.ArrayIndexOutOfBoundsException: 2
at Array3.main(Array3.java:17)
这个错误,为什么??应该怎样改正!!!
谢谢了。

使用道具 举报

回复
论坛徽章:
0
296#
发表于 2005-4-3 18:47 | 只看该作者
最初由 ljplmjl 发布
[B]import java.util.*;

public class Array3{
        static Random rand=new Random();
        static int pRand(int mod){
                return Math.abs(rand.nextInt())%mod+1;
        }
       
        static void prt(String s){
                System.out.println(s);
        }
       
        public static void main(String[] args){
                int[][][] a2=new int[2][2][4];
                for(int i=0;i<a2.length;i++)
                        for(int j=0;i<a2.length;j++)
                                for(int k=0;k<a2[j].length;k++)
                                        prt("a2["+i+"]["+j+"]["+k+"]="+a2[j][k]);
        }
}

请高手帮忙看一下,为什么这个程序运行时会出现Exception in thread "main"java.lang.ArrayIndexOutOfBoundsException: 2
at Array3.main(Array3.java:17)
这个错误,为什么??应该怎样改正!!!
谢谢了。 [/B]

我知道了,是for(int j=0;i<a2.length;j++)这行写错了
应该是for(int j=0;j<a2.length;j++)

使用道具 举报

回复
论坛徽章:
0
297#
发表于 2005-4-5 10:44 | 只看该作者
求助啊:程序的具体执行过程是怎么样的啊,我看不明白啊~~~
class MyException2 extends Exception {
          private int x;
          public MyException2() {}
          public MyException2(String msg) { super(msg); }
          public MyException2(String msg, int x) {
            super(msg);
            this.x = x;
          }
          public int val() { return x; }
          public String getMessage() {
            return "Detail Message: "+ x + " "+ super.getMessage();
          }
        }
import com.bruceeckel.simpletest.*;
public class ExtraFeatures {
          private static Test monitor = new Test();
          public static void f() throws MyException2 {
            System.out.println("Throwing MyException2 from f()";
            throw new MyException2();
          }
          public static void g() throws MyException2 {
            System.out.println("Throwing MyException2 from g()";
            throw new MyException2("Originated in g()";
          }
          public static void h() throws MyException2 {
            System.out.println("Throwing MyException2 from h()";
            throw new MyException2("Originated in h()", 47);
          }
          public static void main(String[] args) {
            try {
              f();
            } catch(MyException2 e) {
              e.printStackTrace();
            }
            try {
              g();
            } catch(MyException2 e) {
              e.printStackTrace();
            }
            try {
              h();
            } catch(MyException2 e) {
              e.printStackTrace();
              System.err.println("e.val() = " + e.val());
            }
            monitor.expect(new String[] {
              "Throwing MyException2 from f()",
              "MyException2: Detail Message: 0 null",
              "%% \tat ExtraFeatures.f\\(.*\\)",
              "%% \tat ExtraFeatures.main\\(.*\\)",
              "Throwing MyException2 from g()",
              "MyException2: Detail Message: 0 Originated in g()",
              "%% \tat ExtraFeatures.g\\(.*\\)",
              "%% \tat ExtraFeatures.main\\(.*\\)",
              "Throwing MyException2 from h()",
              "MyException2: Detail Message: 47 Originated in h()",
              "%% \tat ExtraFeatures.h\\(.*\\)",
              "%% \tat ExtraFeatures.main\\(.*\\)",
              "e.val() = 47"
            });
          }
        } ///:~
运行的结果为:
Throwing MyException2 from f()
MyException2: Detail Message: 0 null
        at ExtraFeatures.f(ExtraFeatures.java:19)
        at ExtraFeatures.main(ExtraFeatures.java:31)
Throwing MyException2 from g()
MyException2: Detail Message: 0 Originated in g()
        at ExtraFeatures.g(ExtraFeatures.java:23)
        at ExtraFeatures.main(ExtraFeatures.java:36)
Throwing MyException2 from h()
MyException2: Detail Message: 47 Originated in h()
        at ExtraFeatures.h(ExtraFeatures.java:27)
        at ExtraFeatures.main(ExtraFeatures.java:41)
e.val() = 47

使用道具 举报

回复
论坛徽章:
0
298#
发表于 2005-4-6 15:49 | 只看该作者
谁有thinking in java的习题答案啊?听说要付钱的,我找了很长时间了,还没有找到没,所以想问问谁有吗?

使用道具 举报

回复
论坛徽章:
0
299#
发表于 2005-4-6 18:14 | 只看该作者
最初由 ~天堂~ 发布
[B]谁有thinking in java的习题答案啊?听说要付钱的,我找了很长时间了,还没有找到没,所以想问问谁有吗? [/B]


我有,如果你需要可以跟我联系。
QQ:1011644

使用道具 举报

回复
论坛徽章:
0
300#
发表于 2005-4-12 21:48 | 只看该作者

小弟我今天才开的课程,是电子出版社的

小弟我今天才开的课程,是电子出版社的
才看了几页,感觉不是很好,一下子没有笔记!下次搞明白了一点补上!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表