java程序

[复制链接]
查看11 | 回复4 | 2008-6-10 17:06:12 | 显示全部楼层 |阅读模式
class fieldtest34 {
private int num = 5;
//私有作用域,本类可见
public int get() {
//公共作用域
return num;
//get方法返回成员变量num的值
}
}
class test {
public static void main(String[] args) {
fieldtest34 ft = new fieldtest34();
int t = ft.get();
//正确访问
// int s=ft.num;
//不能访问fieldtest类中私有成员变量num
System.out.println("t=" + t);
// System.out.println(s);
}
}
编译成功,但无法运行出t=5的结果
提示:exception in thread "main" java.lang.NoSuchMeMethodError:main
改成 public class test,这个不行。。。
我将主方法所在的类名改为fieldtest34这样就行了。因为我的java文件名为fieldtest34.java,但是主方法所在的类只要不是public修饰的,文件名可以和类名不一样的,为什么不行啊。??
但是为什么会生成两个甚至多个class文件。。他们之间是什么关系啊。??

回复

使用道具 举报

千问 | 2008-6-10 17:06:12 | 显示全部楼层
你编辑的文本文件中不管有多少个类,最后都是一个类一个Class文件,每个Class文件的类名就是文件名,最后JVM需要根据文件名去找相应的的类,执行里面的代码,不可能一个Class文件中有多个类,那么JVM根据什么去找类中的内容,到底要找那个类呢,因为Java的代码最后是要写在类中的。而且最后JVM执行的是Class字节码。他们之间的联系就是类之间的相互调用来实现想要的功能,这个要在编程过程中体会的。每个类最后到要生成单独的Class文件。不可能一个文件中还有多个类。 如果那样,JVM根据什么来找类中的内容呢???Java程序,代码位于类的内部,习惯上类名要和文件名相同,也就是如果你的类写成public的,文件名必须和类型相同。你的
回复

使用道具 举报

千问 | 2008-6-10 17:06:12 | 显示全部楼层
这个例子本身没有问题,如果是用javac编译的话可能是路径出错了。
回复

使用道具 举报

千问 | 2008-6-10 17:06:12 | 显示全部楼层
class test { 改成 public class test {
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行