黑马程序员技术交流社区
标题:
在一个类中是否可以存在多个 public class *** {}
[打印本页]
作者:
-_青春,就该努
时间:
2012-7-20 12:54
标题:
在一个类中是否可以存在多个 public class *** {}
本帖最后由 -_青春,就该努 于 2012-7-20 14:03 编辑
package file;
import java.util.Scanner;
public class Visitor {
String name;
int age;
public void show() {
Scanner input = new Scanner(System.in);
while (!"n".equals(name)) {
if (age >= 18 && age <= 60) {
System.out.println(name + "的年龄为:" + age + ",门票价格为20元\n");
} else {
System.out.println(name + "的年龄为:" + age + ",门票免费\n");
}
System.out.print("请输入姓名:");
name = input.next();
if (!"n".equals(name)) {
System.out.print("请输入年龄:");
age = input.nextInt();
}
}
System.out.print("退出程序");
}
}
public class InitialVistor {
}
这段代码中存在两个public class 方法 会报错 请问怎样可以在一个类中存在两个 public class 方法。或者如何存在两个class方法
作者:
陈世涛
时间:
2012-7-20 13:10
java文件允许有多个class,但是只能有一个用public修饰。
因为java的编译机制是从这个public开始的。如果,
你加的这个里面方法不是public static void main(),
编译机制就会出错了。而且,
你加的这个public的class名必须是你java文件的文件名,
否则也无法编译。
一个文件中多个类 将来用 javac 进行编译的时候,
最终会生成多个 .class 文件,每一个类对应一个 .class 文件。
运行时只要运行对应的 .class 文件就可以了。
但是,当你的类被 public 修饰时,此时文件名必须和该类保持一致
(例如 public class A{}只能放在 A.java 文件中,
不然在用 javac 编译时会提示错误:类 A 是公共的,
应在名为 A.java 的文件中声明)。
也就是说在同一个 .java 文件中,
不应该出现2个或2个以上的 public class 。
如果有一个public class 类,
就应该让文件名和此类名相同;那如果没有呢,
即所有的 class 都没有修饰符,
那么可以给该文件随便起名字,
甚至可以不和任意一个类同名,哪怕是汉字名称都可以,
但是后缀还是要有 .java
希望对楼主有帮助。
作者:
-_青春,就该努
时间:
2012-7-20 13:42
陈世涛 发表于 2012-7-20 13:10
java文件允许有多个class,但是只能有一个用public修饰。
因为java的编译机制是从这个public开始的。如果, ...
嗯,这个我知道,但是我看到了一段代码是这样的package file;
import java.util.Scanner;
public class Visitor {
public class a{
}
}
这样也是可以允许运行的。
这个怎么解释呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2