| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1399 人关注过本帖
标题:[求助]这两个文件怎么编译
只看楼主 加入收藏
cnd
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2004-5-6
收藏
 问题点数:0 回复次数:10 
[求助]这两个文件怎么编译

第一个文件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,不知道怎么回事

搜索更多相关主题的帖子: 文件 编译 
2004-09-21 23:08
藏马
Rank: 2
等 级:新手上路
威 望:3
帖 子:25
专家分:0
注 册:2004-7-16
收藏
得分:0 

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


2004-09-22 00:59
Kaking
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2004-9-14
收藏
得分:0 
我也刚学,没有考虑过这样的问题,你试试把第一个TIME类,创建在一个包内。那样应该是可以的吧!
2004-09-22 08:12
cnd
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2004-5-6
收藏
得分:0 
以下是引用藏马在2004-09-22 00:59:50的发言:

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

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

么?

2004-09-22 08:42
Anstey
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2004-4-14
收藏
得分:0 

每个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去掉。这个程序没有问题。


Anstey. Cheers. I love CAPPUCCINO~~
2004-09-23 15:36
cnd
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2004-5-6
收藏
得分:0 

谢谢austey

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

2004-09-23 21:57
Kaking
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2004-9-14
收藏
得分:0 

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

2004-09-24 08:37
Anstey
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2004-4-14
收藏
得分:0 
以下是引用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


Anstey. Cheers. I love CAPPUCCINO~~
2004-09-24 17:31
cnd
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2004-5-6
收藏
得分:0 
yeah, what you say is very important to me,thanks Anstey again
2004-09-24 22:20
fanhuaxing
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2005-11-16
收藏
得分:0 
8楼的说的真好
2007-11-12 16:59
快速回复:[求助]这两个文件怎么编译
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022270 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved