QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2780|回复: 22

Java问题 Two

[复制链接]
发表于 2003-8-6 16:41:00 | 显示全部楼层 |阅读模式
在学《thinking in java》时,里面有个例子,是“以建构式确保初始化的进行”
里面的程序是这样的:
[code:1]
class Rock2{
  Rock2(){
     System.out.println("Creating"+i);
  }
}

public class ABC{
  public static void main(String args[]){
     for(int i=0;i<10;i++)
      new Rock2(i);
}
}
[/code:1]

第一个CLASS可以正常编译,
可是在编译第二个CLASS的时候,就说Rock()找不到。
请问怎么解决?
发表于 2003-8-6 17:07:28 | 显示全部楼层
兄弟,你的构造函数和类的名都不一样!
回复

使用道具 举报

发表于 2003-8-6 17:09:24 | 显示全部楼层
类名全不对!
回复

使用道具 举报

 楼主| 发表于 2003-8-6 17:28:55 | 显示全部楼层
对不起,打快了点,没发现错误。
现在已经修改过了。
可是编译的时候小指针还是指在下面的new Rock2(i)这里。
回复

使用道具 举报

发表于 2003-8-6 18:21:56 | 显示全部楼层
可是编译的时候小指针还是指在下面的new Rock2(i)这里。

啥意思?
回复

使用道具 举报

发表于 2003-8-6 18:57:58 | 显示全部楼层
你的构造函数好像没有参数吧?
回复

使用道具 举报

 楼主| 发表于 2003-8-6 21:51:12 | 显示全部楼层
[quote:eaf9716be8="goldedge"]
可是编译的时候小指针还是指在下面的new Rock2(i)这里。

啥意思?[/quote]
就是说这里是错误的
回复

使用道具 举报

发表于 2003-8-7 01:21:02 | 显示全部楼层
一个class的构造函数默认是 class(){},如果你想在new时加参数,需要多态你的class的构造函数,使其与引用的形式一致.你可以改成如下就行了:
class Rock2{
        Rock2(){}
        Rock2(int i){
            System.out.println("Creating"+i);
        }
}
public class ABC{
          public static void main(String args[]){
             for(int i=0;i<10;i++)
              new Rock2(i);
        }
}
回复

使用道具 举报

发表于 2003-8-7 09:40:56 | 显示全部楼层
除了以上的几点 还有一个java里是不鼓励对类使用默认修饰符的 最好还是一个类一个文件的写
回复

使用道具 举报

发表于 2003-8-7 09:43:01 | 显示全部楼层
Rock2(int i){
System.out.println("Creating"+i);
}
回复

使用道具 举报

 楼主| 发表于 2003-8-7 09:43:07 | 显示全部楼层
哦,是不是说我下面的那个 new Rock2(i)是想调用上面的Rock2()函数,但是上面的Rock()函数并没有引数的定义,所以就出错了。
回复

使用道具 举报

发表于 2003-8-7 14:25:10 | 显示全部楼层
9494
回复

使用道具 举报

发表于 2003-8-7 14:31:37 | 显示全部楼层
9494
回复

使用道具 举报

 楼主| 发表于 2003-8-7 15:46:52 | 显示全部楼层
可编译还是错啊。
好像是它在编译下面这个CLASS的时候,不知道这个Rock应该到什么地方去找。
你自己试过了吗?成功了吗?
回复

使用道具 举报

 楼主| 发表于 2003-8-7 16:09:30 | 显示全部楼层
This is the screenshot from <Thinking in java>
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-16 11:41 , Processed in 0.050627 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表