`
xlover
  • 浏览: 244981 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个.java源文件中可以有多个类吗?(内部类除外)有什么条件?

阅读更多
  一个.java源文件中可以有多个类吗?(内部类除外)有什么条件?带着这个疑惑,动手建几个测试类,

揭开心中的疑惑。以下是解开疑惑过程:

package test;
/**
* 一个.java源文件中可以有多个类吗?(内部类除外)有什么条件?
* 可以的  
*但是只能有一个public类, 而且如果有public类的话,这个文件的名字要和这个类的名字一样。
*如果都没有public类,名字可以不和这个类一样。
*/
public class MultiClass {
int i = 0;
}

class B {
String str = "b";
}

class C {
String str = "c";

/*源文件javac出多个class文件出来!是怎么回事?
1.   你在一个文件里定义了几个类的时候,会出现这种情况,比如  
  public   class   A   {}  
  class   B   {}  
  class   C   {}  
  这样每个   class   会是一个   .class     文件  
   
  2.   你定义了内部类的时候会出现这种情况,如  
  public   class   A   {  
          class   B   {  
          }  
  }  
  这会产生两个   class   文件,一个   A.class,一个   A$B.class  
   
  3.   使用了匿名类的时候出出现这种情况,如  
  public   class   A   {  
          void   xxx()   {  
                    button.addActionLisener(new   ActionListener()   {...});  
          }  
  }  
  这也会产生多个   class,一个   A.class,一个   A$1.class  
  }

*/
分享到:
评论

相关推荐

    java学习文档

    在一个`.java`源文件中,确实可以定义多个类,但这些类中只能有一个公共类(public class),且该公共类的名字必须与源文件名相同。例如,如果源文件名为`MyClass.java`,则该文件中可以有一个名为`MyClass`的公共类...

    Java面试宝典2017 下载 高清完整PDF版

    1. Java源文件中可以包含多个类,但只能有一个公共类(public class),且公共类的名称必须与文件名相匹配。如果源文件中包含多个类,那么其他类必须不使用public修饰符。 2. Java语言中没有goto语句,这是出于结构...

    java2016面试题目

    - **答案解析**:在一个`.java`源文件中确实可以定义多个类,但是这些类中只能有一个公共类(public class),且该公共类的名称必须与文件名相同。其他类必须声明为非公共的(如默认权限,即没有任何访问修饰符)。...

    C#和JAVA的区别总结

    C#允许在一个.cs文件中定义多个命名空间和类,同时支持预处理指令,如条件编译等。Java则要求每个类对应一个.java文件,命名空间类似地用package关键字来组织。 2. 数据类型: - C#有struct,是值类型,不可被...

    JAVA编程规范

    1. **单一类文件**:一个Java源文件只能存储一个Java类。 2. **文件名一致性**:文件名与Java类名相同。 3. **代码行限制**:一个类文件的代码行不超过200行。 #### 五、声明规范 规范的声明习惯能够减少代码...

    Java编码规范word文档

    - **单一类原则**:每个Java源文件仅包含一个类。 - **文件名与类名**:文件名与类名完全匹配,包括大小写。 5. **声明规范** - **单个声明**:每行声明一个变量。 - **类型分隔**:不同类型的变量不要在同一行...

    JSP中文乱码的产生原因及解决方案

    在JSP开发中,中文乱码是一个常见的问题,它源于Java和JSP处理中文字符的方式。Java语言核心和class文件基于Unicode,确保了程序的跨平台性,但也为中文乱码问题埋下了伏笔。主要的乱码问题分为两类:一是Java和JSP...

    C#微软培训资料

    第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...

    javasin函数源码-FixPointCS:一个快速、多语言、多精度的定点库!

    一个快速、多语言、多精度的定点库! 主要特征 确定性:操作产生跨语言和编译器位相同的结果 快速:所有操作均使用高效算法并高度优化 多语言:支持 C#、Java 和 C++ 多种类型:支持有符号 32.32 和 16.16 定点数 多...

    fzpgloader:FasterZip PostgreSQL加载程序-PostgreSQLETL FasterZip PostgreSQL-开源

    FasterZip PostgreSQL加载程序-PostgreSQLETL FasterZip PostgreSQL这是一个Java应用程序,可让您在使用副本加载之前将信息过滤到文件中(不需要psql)。 将配置文件用于到db的数据连接,源文件和特殊参数。 您可以...

Global site tag (gtag.js) - Google Analytics