当前位置: 代码迷 >> Java相关 >> [求助]这两个文件怎么编译
  详细解决方案

[求助]这两个文件怎么编译

热度:335   发布时间:2004-09-21 23:08:00.0
[求助]这两个文件怎么编译

第一个文件time.java

public class Time { private int hour; private int minute; private int second; public Time() {setTime(0,0,0);} public void setTime(int hh,int mm,int ss) { hour=((hh>=0 && hh<24) ? hh : 0); minute=((mm>=0 && mm<60) ? mm :0); second=((ss>=0 && ss<60) ? ss :0); } public String toString() { return (hour + " " + ((minute < 10) ? "0" : " ") + minute + ":" + ((second < 10) ? "0" : " ") + second ); } }

第二个文件mytime.java

import Time; public class MyTime { public static void main(String args[]) { Time time=new Time(); time.setTime(11,22,33); System.out.println("设置时间" + time.toString()); } }

请问这两个文件应该怎么编译才能连到一起,我先编译time.java,在编译mytime.java提示

import.time有错误,刚学java,不知道怎么回事

搜索更多相关的解决方案: 文件  编译  

----------------解决方案--------------------------------------------------------

你是故意要弄两个文件吗?其实把这两个类放到一个文件里不就可以了???


----------------解决方案--------------------------------------------------------
我也刚学,没有考虑过这样的问题,你试试把第一个TIME类,创建在一个包内。那样应该是可以的吧!
----------------解决方案--------------------------------------------------------
以下是引用藏马在2004-09-22 00:59:50的发言:

你是故意要弄两个文件吗?其实把这两个类放到一个文件里不就可以了???

import time就是一个文件包含的指令,难道以后做程序开发所以的程序都是放到一个文件里

么?


----------------解决方案--------------------------------------------------------

每个application都是从main method开始执行的,你写的这个程序,在method 里建立了一个Time instance然后在这个instance上call setTime() 和 toString() method。

这两个是不同的class,所以,大多数情况下要分开存在两个不同的.java 文件,把两个class写在一起很少见,叫做nested classes,很复杂,初学没有必要会。。

你也许不明白import的意思,主要的问题在这个import,在JAVA,import 这个词不是把你自己写的一个class引入另一个class,如果你是这样理解,那是完全错误的。

import的意思是引入一个standard java package.(They are in JAVA API),不是你自己写的class

e.g

import java.awt.*;

import java.util.*;

import java.io.*;

还有second=((ss>=0 && ss<60) ? ss :0);这种形式非常少见。(this is confusing people i think..)

初学的话,if statement will be much much better ,强烈建议不要用这种形式。

所以,只要把import去掉。这个程序没有问题。


----------------解决方案--------------------------------------------------------

谢谢austey

我是放到两个文件里的,不是一个文件,只是不太清楚这两个文件怎么联系到一起


----------------解决方案--------------------------------------------------------

我知道了~~你只要把两个CLASS文件放在一个文件夹里就可以直接用了,不用调用,就可以的。也不用创建包~~哈哈~~~ 刚刚试了一下``不错哦`让我发现问题


----------------解决方案--------------------------------------------------------
以下是引用cnd在2004-09-23 21:57:47的发言:

谢谢austey

我是放到两个文件里的,不是一个文件,只是不太清楚这两个文件怎么联系到一起

当你成功编译一个(.java)文件,一个新的(.class)会被自动的建立,任何其他他class都是通过这个.class文件来建立instance of that class

举个例子,你写了一个class: MyFile.java,这个文件成功编译之后,在与这个文件相同的路径下,会自动建立一个MyFile.class的file. 这是如果main method中建立一个instance of MyFile class

i.e MyFile my = new MyFile(); //这时,my 是通过 MyFile.class这个文件来建立的

也就是说,即使你删除MyFile.java这个文件,但是MyFile,class 仍然存在,那么这个包含main method的class仍然可以成功的编译。

这也是JAVA的一个优点,for example,你写了一个MySecretProm.java, 别人需要建立一个MySecretProm 的instance,但是你不想让别人知道你是怎么来编写code的,你就可以传给他编译后的MySecretProm.class文件。那么有了这个,class文件,依然可以继续他的program (without knowing how your code is implemented)

当然,不足之处是他必须知道你的class里每个method的具体用法。

这个缺点当然又可以由java interface来解决,java interface基本就是一个方法的清单,大家事先知道怎么使用这些方法,然后编写不同的class来implement 这个interface。。(Maybe this is far beyond your question)

Hope thiis helps, Enjoy!

and, My name is Anstey, not Austey :P


----------------解决方案--------------------------------------------------------
yeah, what you say is very important to me,thanks Anstey again
----------------解决方案--------------------------------------------------------
8楼的说的真好
----------------解决方案--------------------------------------------------------
  相关解决方案