精华内容
下载资源
问答
  • Java文件名必须公共类名相同

    千次阅读 2015-07-12 17:06:31
    Java文件名必须公共类名相同   如果一个Java源文件里定义的所有类都没有使用public修饰,则这个Java源文件的文件名可以是一切合法的文件名;但如果一个Java源文件里定义了一个public修饰的类,则这个源文件的...

    Java的文件名必须和公共类名相同

     

    如果一个Java源文件里定义的所有类都没有使用public修饰,则这个Java源文件的文件名可以是一切合法的文件名;但如果一个Java源文件里定义了一个public修饰的类,则这个源文件的文件名必须与public修饰的类的类名相同。

    为什么呢?

    首先Java是被解释执行的。它在运行时并不是将所有的class文件全都放到内存中。而是在遇到import的时候才去相应的文件目录找相应的class文件。对于一个public类,它是可以被项目中任何一个类所引用的,只需在使用它前import一下它所对应的class文件即可。将类名与文件名一一对应就可以方便虚拟机在相应的路径(包名)中找到相应的类的信息。如果不这么做的话,就很难去找,而且开销也会很大。

    展开全文
  • 首先Java是被解释执行的。它在运行时并不是将所有的class文件全都放到内存中。...将类名与文件名一一对应就可以方便虚拟机 在相应的路径(包名)中找到相应的类的信息。如果不这么做的话,就很难去找,而且...
    首先Java是被解释执行的。它在运行时并不是将所有的class文件全都放到内存中。而是在遇到import的时候才去相应的文件目录找相应的class文件。

    对于一个public类,它是可以被项目中任何一个类所引用的,只需在使用它前import一下它所对应的class文件即可。将类名与文件名一一对应就可以方便虚拟机
    在相应的路径(包名)中找到相应的类的信息。如果不这么做的话,就很难去找,而且开销也会很大。

    一下是我写的一个比较“恶心”的程序来说明这个问题,大家在使用前先要将自己JDK的bin目录设置到环境变量path中去:
    import  java.io.FileOutputStream;
    import  java.io.IOException;
    import  java.io.FileNotFoundException;


    public   class  Test
    {
        
    public   static   void  main(String[] args) {
            
            Object b 
    =   null ;
            
            
    try  {
                b 
    =  Class.forName( " Hello " ).newInstance();
            }
            
    catch (InstantiationException e) {
                
            }
            
    catch (IllegalAccessException e) {
                
            }
            
    catch (ClassNotFoundException e) {
                
                
    try  {
                    FileOutputStream file 
    =   new  FileOutputStream( " Hello.java " );
                    String s 
    =   " public class Hello {\r\n\t\r\n\tpublic Hello() {\r\n\t\tSyst "
                        
    +   " em.out.println(\ " Hello, world ! \ " );\r\n\t}\r\n}\r\n " ;
                    file.write(s.getBytes());
                    
                    Process p 
    =  Runtime.getRuntime().exec( " javac Hello.java " );
                    System.out.println(
    " The return value is:  "   +  p.waitFor());
                    
                    b 
    =  Class.forName( " Hello " ).newInstance();
                }
                
    catch (FileNotFoundException ee) {
                    
                }
                
    catch (IOException ee) {
                    
                }
                
    catch (InterruptedException ee) {
                    
                }
                
    catch (InstantiationException ee) {
                    
                }
                
    catch (IllegalAccessException ee) {
                    
                }
                
    catch (ClassNotFoundException ee) {
                    
                }
            }
        }
    }

     

    转载于:https://www.cnblogs.com/phpzxh/archive/2009/12/08/1619590.html

    展开全文
  • Java的类名与文件名必须一致

    万次阅读 多人点赞 2014-10-24 10:48:00
    1.Java保存的文件名必须与类名一致; 2.如果文件中只有一个类,文件名必须与类名一致; 3.一个Java文件中只能有... 当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也称为转译单元)。每个编译单元都必

    1.Java保存的文件名必须与类名一致;
    2.如果文件中只有一个类,文件名必须与类名一致;
    3.一个Java文件中只能有一个public类;
    4.如果文件中不止一个类,文件名必须与public类名一致;
    5.如果文件中不止一个类,而且没有public类,文件名可与任一类名一致。

         当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也称为转译单元)。每个编译单元都必须要有一个后缀为.java,而在编译单元内测可以 有一个public类,该类的名称必须与文件名称相同(包括大小写,但不包括文件的后缀名.java)。每个编译单元只能有一个public类,否则编译 器就不会接受。如果在该编译单元之中还有额外的类的话,那么在包之外的世界是无法看见这些类的,这是因为他们不是public类,而且他们主要用来为主要 public类提供支持。

        1. 每个编译单元(文件)都只能有一个public类。这表示,每个编译单元都有单一的公共接口,用public类来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译器就会给出出错信息。

        2. public类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写。所以对于Widget而言,文件的名称必须是Widget.java,而不是widget.java或WIDGET.java。如果不匹配,同样将得到编译时错误。

        3. 虽然不是很常用,但编译单元内完全不带public类也是可能的。这种情况下,可以随意对文件命名。(尽管随意命名会使得人们在阅读和维护代码时产生混淆。)

         一个Java文件可以有多个类作为内部类/Adapter类/其它类,但是只能有一个public类,且类名必须和文件名一致。这是这类语言的一个不好的地方。

         在现实情况中,经常有一些很小的类由几个类共同需要,因此无法作为内部类,而且接口关系必须设置为public,这样就导致了大量很小的.Java程序,每个都只有几百字节。

         这类语言的另一个问题是一个类的所有实现的方法都必须包含在同一个文件中。在swing应用程序中,经常导致长达一两百K字节的源程序,行数达到三四千行,搞得JBuilder奇慢无比。

        一个 .java 文件,可以有多个类,但是文件名只能有一个,用哪一个类名来充当文件名呢?其实文件名是无所谓的,因为将来用 javac 进行编译的时候,最终会生成多个 .class 文件,每一个类对应个 .class 文件。运行时只要运行对应的 .class 文件就可以了,这时 .java 文件就显得没什么用了( 运行时不需要 ),那还管它叫什么名字。

        但是当你的类被 public 修饰时,此时文件名必须和该类保持一致(例如 public class A{} 只能放在 A.java 文件中,不然在用 javac 编译时会提示错误:类 A 是公共的,应在名为 A.java 的文件中声明)。也就是说在同一个 .java 文件中,不应该出现2个或2个以上的 public class 。

        如果有一个public class类,就应该让文件名和此类名相同;那如果没有呢,即所有的 class 都没有修饰符,那么可以给该文件随便起名字,甚至可以不和任意一个类同名,哪怕是汉字名称都可以,但是后缀还是要有.java 的  。

        注:有很多初学者 ( 我也是 ) 可能会认为文件名应该也和 main 方法所在类有关系,其实不然。main 方法只是程序的一个入口,老师讲“一个程序只能有一个入口”,好象是在说只能有一个 main 方法,其实,只要你高兴,就可以在所有类里都写上 main 方法,给程序提供N多个入口,但是最后你运行程序的时候也只能从其中的一个入口进去,这就是 main 的作用( 程序入口 )。(这也就是为什么你会发现,程序员在做单元测试时,会往自己做的很多类里面添加 main 方法,因为他要为自己做的东西添加运行入口,从而能方便测试。)

    展开全文
  • 1.Java保存的文件名必须与类名一致; 2.如果文件中只有一个类,文件名必须与类名一致; 3.一个Java文件中只能有... 当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也称为转译单元)。每个编译单元都必

    1.Java保存的文件名必须与类名一致;
    2.如果文件中只有一个类,文件名必须与类名一致;
    3.一个Java文件中只能有一个public类;
    4.如果文件中不止一个类,文件名必须与public类名一致;
    5.如果文件中不止一个类,而且没有public类,文件名可与任一类名一致。

         当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也称为转译单元)。每个编译单元都必须要有一个后缀为.java,而在编译单元内测可以 有一个public类,该类的名称必须与文件名称相同(包括大小写,但不包括文件的后缀名.java)。每个编译单元只能有一个public类,否则编译 器就不会接受。如果在该编译单元之中还有额外的类的话,那么在包之外的世界是无法看见这些类的,这是因为他们不是public类,而且他们主要用来为主要 public类提供支持。

        1. 每个编译单元(文件)都只能有一个public类。这表示,每个编译单元都有单一的公共接口,用public类来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译器就会给出出错信息。

        2. public类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写。所以对于Widget而言,文件的名称必须是Widget.java,而不是widget.java或WIDGET.java。如果不匹配,同样将得到编译时错误。

        3. 虽然不是很常用,但编译单元内完全不带public类也是可能的。这种情况下,可以随意对文件命名。(尽管随意命名会使得人们在阅读和维护代码时产生混淆。)

         一个Java文件可以有多个类作为内部类/Adapter类/其它类,但是只能有一个public类,且类名必须和文件名一致。这是这类语言的一个不好的地方。

         在现实情况中,经常有一些很小的类由几个类共同需要,因此无法作为内部类,而且接口关系必须设置为public,这样就导致了大量很小的.Java程序,每个都只有几百字节。

         这类语言的另一个问题是一个类的所有实现的方法都必须包含在同一个文件中。在swing应用程序中,经常导致长达一两百K字节的源程序,行数达到三四千行,搞得JBuilder奇慢无比。

        一个 .java 文件,可以有多个类,但是文件名只能有一个,用哪一个类名来充当文件名呢?其实文件名是无所谓的,因为将来用 javac 进行编译的时候,最终会生成多个 .class 文件,每一个类对应个 .class 文件。运行时只要运行对应的 .class 文件就可以了,这时 .java 文件就显得没什么用了( 运行时不需要 ),那还管它叫什么名字。

        但是当你的类被 public 修饰时,此时文件名必须和该类保持一致(例如 public class A{} 只能放在 A.java 文件中,不然在用 javac 编译时会提示错误:类 A 是公共的,应在名为 A.java 的文件中声明)。也就是说在同一个 .java 文件中,不应该出现2个或2个以上的 public class 。

        如果有一个public class类,就应该让文件名和此类名相同;那如果没有呢,即所有的 class 都没有修饰符,那么可以给该文件随便起名字,甚至可以不和任意一个类同名,哪怕是汉字名称都可以,但是后缀还是要有.java 的  。

        注:有很多初学者 ( 我也是 ) 可能会认为文件名应该也和 main 方法所在类有关系,其实不然。main 方法只是程序的一个入口,老师讲“一个程序只能有一个入口”,好象是在说只能有一个 main 方法,其实,只要你高兴,就可以在所有类里都写上 main 方法,给程序提供N多个入口,但是最后你运行程序的时候也只能从其中的一个入口进去,这就是 main 的作用( 程序入口 )。(这也就是为什么你会发现,程序员在做单元测试时,会往自己做的很多类里面添加 main 方法,因为他要为自己做的东西添加运行入口,从而能方便测试。)

    转自:http://blog.csdn.net/shaoxiaoning/article/details/40424087

    展开全文
  • 在java开发中,大家都知道,针对一个java源文件,可以有很...作为初学者,今天差点被迷惑了,事实上,内部类作为类的一个成员,而类的成员是可以用public来修饰的,因而,在java源程序中,内部类是可以有多个public的。
  • java文件名必须和类名一致吗

    千次阅读 2019-11-12 11:12:27
    1.Java保存的文件名必须与类名一致;2.如果文件中只有一个类,文件名必须与类名一致;3.一个Java文件中只能有一个public类;4.如果文件中不止一个类,文件名必须与public类名一致;5.如果文件中不止一个类,而且没有...
  • Java类名与文件名关系

    2016-02-24 20:31:59
    1.Java保存的文件名必须与类名一致; 2.如果文件中只有一个类,文件名必须与类名一致; 3.一个Java文件中只能有... 当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也称为转译单元)。每个编译单元都必
  • 1.Java保存的文件名必须与类名一致; 2.如果文件中只有一个类,文件名必须与类名一致; 3.一个Java文件中只能有一个public类; 4.如果文件中不止一个类,文件名必须与public类名一致; 5.如果文件中不止一个类,...
  • Java源程序结构

    2020-12-01 17:15:06
    JAVA源程序结构 专为初学者提供 java的源程序结构一般包括: package 包 ------具有0个或1个,指定文件中的类所在的包,必须是第一条语句 import 导入-------导入指定的类,可以有0个或多个 public class 公共类---...
  • Java 源程序

    2017-12-14 13:46:27
    Java 源程序与编译型运行区别源文件声明规则在本节的最后部分,我们将学习源文件的声明规则。当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。一个源文件中只能有一个public类...
  • JAVA源程序规范

    2012-03-31 19:19:00
    概述:  完整的java源程序应该包括... // 公共的类定义部分,至多只有一个公共类的定义,java语言规定该java源程序文件名必须与公共类名完全一致  classDefinition; // 类定义部分,可以有0个或多个  ...
  • java类名和文件名之间的关系

    千次阅读 2018-11-13 21:00:06
    1.Java保存的文件名必须与类名一致; 2.如果文件中只有一个类,文件名必须与类名一致;... 当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也称为转译单元)。每个编译单元都必须要有一个后...
  • 编写Java源程序

    2021-01-20 08:05:29
    编写Java源程序 开发工具关键技术:cmd - Java 作者:梁峻豪 撰写时间:2021-01-19 首先我们初步了解一下Java Java 是Sun团队研发的一门面向对象程序的设计语言。2010 年 Oracle 公司收购 Sun Microsystems,...
  • java文件名与类名

    2017-02-04 15:42:32
     1,当编写一个java源代码文件时,此文件通常被称为编译单元,每个编译单元都必须要有一个后缀为.java;  2,每个编译单元(文件)都最多只能有一个public类(也可以没有),这表示每个编译单元都最多有一个公共接口,...
  • 1.Java保存的文件名必须与类名一致; 2.如果文件中只有一个类,文件名必须与类名一致; 3.一个Java文件中只能有... 当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也称为转译单元)。每个编译单元都必
  • java源程序结构

    2011-12-14 15:06:00
    一个完整的java源程序应该包括下列部分: package语句; //该部分至多只有一句,必须放在源程序的第一句 import语句; /*该部分可以有若干import语句或者没有,必须放在所有的 类定义之前*/ public class...
  • 1.Java保存的文件名必须与类名一致; 2.如果文件中只有一个类,文件名必须与类名一致; 3.一个Java文件中只能有... 当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也称为转译单元)。每个编译单元都必
  • java类名文件名规范

    2017-07-01 00:00:24
    1.Java保存的文件名必须与类名一致; 2.如果文件中只有一个类,文件名必须与类名一致; 3.一个Java文件中只能有一个public类; 4.如果文件中不止一个类,文件名必须与public类名一致; 5.如果文件中不止一个类,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,078
精华内容 6,431
关键字:

java源程序的文件名必须与公共

java 订阅