黑马程序员技术交流社区

标题: 关于命名问题 [打印本页]

作者: 笑面人    时间: 2015-5-17 09:51
标题: 关于命名问题
java文件名必须和类名相同吗?如图

捕获.PNG (1.61 KB, 下载次数: 19)

编译后的。class

编译后的。class

作者: 董小姐    时间: 2015-5-17 09:51
本帖最后由 董小姐 于 2015-5-19 20:45 编辑

如果class前边没有public,文件名和类名可以相同也可以不同
class demo
{
public static void main(string[] args){

systerm.out.println("hello world")

}
}

如果class 前边加public,例如下边,文件名与类名必须相同
public  class demo
{
public static void main(string[] args){

systerm.out.println("hello world")

}
}
作者: zzlin    时间: 2015-5-17 11:28

1、如果源文件中有多个类,那么只能有一个类是public类。
2、如果有一个类时public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是.java,如果没有public类,则文件可以随意命名。
3、一个文件中,public的类可以有零个或一个,非public的类可以有零个或多个。

作者: 521123270    时间: 2015-5-17 11:39
1,java保存的文件名必须与类名一致;
2,如果文件中只有一个类,文件名必须与类名一致。
3,一个java文件中只能有一个public类,
4,如果文件中不止一个类,文件名必须与public类名一致,
5,如果文件中不止一个类,而且没有public类,文件名可与任何一类名一致;

亲还有不懂的?{:3_57:}
作者: 笑面人    时间: 2015-5-17 12:18
521123270 发表于 2015-5-17 11:39
1,java保存的文件名必须与类名一致;
2,如果文件中只有一个类,文件名必须与类名一致。
3,一个java文件中 ...

不懂,举个列子!
作者: 笑面人    时间: 2015-5-17 12:25
521123270 发表于 2015-5-17 11:39
1,java保存的文件名必须与类名一致;
2,如果文件中只有一个类,文件名必须与类名一致。
3,一个java文件中 ...

C:\Users\Administrator\Desktop
这种错误在哪 ?
作者: as604049322    时间: 2015-5-17 13:26
一个文件中可以有多个类,类命是任意的,但被public修饰的类只能有一个而且必须与文件名相同
作者: 521123270    时间: 2015-5-17 14:06
笑面人 发表于 2015-5-17 12:18
不懂,举个列子!

当你的类被 public 修饰时,此时文件名必须和该类保持一致(例如 public class A{} 只能放在 A.java 文件中,不然在用 javac 编译时会提示错误:类 A 是公共的,应在名为 A.java 的文件中声明)。也就是说在同一个 .java 文件中,不应该出现2个或2个以上的 public class 。
如果有一个public class类,就应该让文件名和此类名相同;那如果没有呢,即所有的 class 都没有修饰符,那么可以给该文件随便起名字,甚至可以不和任意一个类同名,哪怕是汉字名称都可以,但是后缀还是要有.java 的  。
作者: 521123270    时间: 2015-5-17 14:10
笑面人 发表于 2015-5-17 12:25
这种错误在哪 ?

谁理解你啊?说详细点问题?
作者: 笑面人    时间: 2015-5-17 15:47
521123270 发表于 2015-5-17 14:10
谁理解你啊?说详细点问题?

出错提示:Could not find the main class:HelloWorld。java文件名为HelloWorld,类文件也是HelloWorld。在E盘文件夹”java练习“下
作者: 521123270    时间: 2015-5-17 18:09
笑面人 发表于 2015-5-17 15:47
出错提示:Could not find the main class:HelloWorld。java文件名为HelloWorld,类文件也是HelloWorld。 ...

可能你没设置临时环境路径。因为你的javac编译器默认的路径是之前那个路径!
作者: 笑面人    时间: 2015-5-18 07:24
521123270 发表于 2015-5-17 18:09
可能你没设置临时环境路径。因为你的javac编译器默认的路径是之前那个路径! ...

恩恩,说的有道理!谢谢!
作者: 笑面人    时间: 2015-5-18 07:39
521123270 发表于 2015-5-17 18:09
可能你没设置临时环境路径。因为你的javac编译器默认的路径是之前那个路径! ...

那该如何修改?
作者: fhy1969038887    时间: 2015-5-18 22:03
命名不是必须一样的,但为了开发方便人们习惯于一个文件放一个类,而且文件名和类名一样
作者: 夏尔    时间: 2015-5-19 08:49
不一定啊    如果你的文件中有public类的话  才要跟public类同名  否则可以随意   一个Java文件中只能有一个public类
作者: yas丶    时间: 2015-5-19 16:35
要看有没有被public修饰
作者: 董小姐    时间: 2015-5-19 20:34
如果 class 前没有public  ,文件名和类名可以相同也可以不同
class demo
{
public static void main(string[] args){

system.out.println("hello world")

}
}

如果class 前边加public,例如下边,这是文件名和类名必须相同
public  class demo
{
public static void main(string[] args){

system.out.println("hello world")

}
}
作者: 小麻    时间: 2015-5-21 23:24
也可以不同 但是为了方便 最好相同




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2