📜  Java源文件结构

📅  最后修改于: 2022-05-13 01:55:51.015000             🧑  作者: Mango

Java源文件结构

Java源文件结构描述了Java源代码文件必须遵循模式或结构。在本文中,我们将看到Java程序必须遵循的一些重要准则。

Java程序具有以下结构:

1.语句: Java中的包是一种封装一组类、子包和接口的机制。

2. import 语句: import 语句用于导入包、类或接口。

3.定义:类是用户定义的蓝图或原型,从中创建对象,它是一个被动实体。

使用Java源文件时要牢记的要点

以下是我们在使用Java时应牢记的要点:

1. Java源文件中的类数:

Java程序可以包含任意数量的类,最多可以将其中一个类声明为公共类。

说明: Java允许我们在程序中创建任意数量的类。但是在所有类中,最多可以将其中一个声明为公共类。简单来说,程序可以包含零个公共类,或者如果存在一个公共类,它不能超过一个。

陈述的正确性证明:让我们在本地IDE中创建一个程序,并在Javac编译器的帮助下编译它

例如, 在下面的程序中,我们创建了三个空类(Geeks、Learning 和 Programming)。

源代码:

Java
// Declaring classes
class Geeks {
  
}
  
class Learning {
  
}
  
class Programming {
  
}


Java
// Declaring classes
  
// Declared as public
public class Geeks {
    
}
  
class Learning {
    
}
  
class Programming {
    
}


Java
// Declaring classes
class GeeksforGeeks {
}
  
class Programming {
}
  
class Coding {
}


Java
// File name: GeeksforGeeks.java
  
// Package declaration 
package myPackage;
  
// import statements
  
import classes;
  
// Class declaration
public class Class1 {
    
}
  
class Class2 {
    
}
  
class Class3 {
    
}


Java
// Package statement
package myPackage;
  
// Three empty classes and
// GeeksforGeeks is declared as public
// We can't declare more classes as public 
// (atmost one class can be declared as public) 
// So file name will be GeeksforGeeks only
  
public class GeeksforGeeks {
    
}
  
class Programming {
    
}
  
class Coding {
    
}


我们已经保存了上面的Java源文件,名称为GeeksforGeeks。Java

图 1:文件名

现在让我们通过命令提示符在 javac 编译器的帮助下编译程序:

javac GeeksforGeeks.java

输出:

图 2:编译器判断

程序编译成功,没有任何错误,并生成了相应的.class文件。

2、 Java源文件名:

Java源文件的名称可以是任何名称,只要没有将类声明为公共的。

说明:如果没有一个单独的类被声明为 public, Java允许我们用任何名称命名Java源文件。但是如果有一个类被声明为public,那么Java源文件的名字就必须和public类的名字一样。 Java源文件扩展名必须是 .Java

陈述的正确性证明:在陈述1中 (请参考图 2),我们已经看到,如果没有一个类被声明为 public, Java源文件名可以是任何名称。

现在,如果我们将其中一个类声明为 public,我们将检查我们的程序是否编译成功。

例如,在下面的程序中,我们创建了三个空类(Geeks、Learning 和 Programming),其中一个是公共类(Geeks)。

源代码:

Java

// Declaring classes
  
// Declared as public
public class Geeks {
    
}
  
class Learning {
    
}
  
class Programming {
    
}

我们已经保存了上面的Java源文件,名称为GeeksforGeeks。Java

图 3:文件名

现在让我们通过命令提示符在 javac 编译器的帮助下编译程序:

输出:

图4: 编译器判断

我们得到编译错误。编译器要求用Geeks保存Java源文件名。 Java仅作为 Geeks 类被声明为 public。

图 5:文件名

现在让我们再次通过命令提示符在 javac 编译器的帮助下编译程序:

javac Geeks.java

输出:

图 6:编译器判定

这次程序编译成功,没有任何错误。

3. Java源文件中 .class 文件的数量:

生成的 .class 文件的数量等于Java程序中声明的类的数量。

说明:在编译程序时,javac 编译器生成与Java源文件中声明的类一样多的 .class 文件。

生成的 .class 文件的语法:

class_name.class: class_name is name of the class that is present in the Java source file.

.class 文件包含Java字节码,稍后由 JVM(Java虚拟机)执行。 Java解释器 (JVM) 知道标准系统类的类文件所在的位置,并且可以根据需要加载它们。

语句的正确性证明:让我们在本地IDE中创建一个程序,并在 Javac 编译器的帮助下编译它。

现在我们将检查生成的.class文件(字节码)的数量是否与Java源文件中声明的类的数量相同。

例如,在下面的程序中,我们创建了三个空类(GeeksforGeeks、Programming 和 Coding)。

源代码:

Java

// Declaring classes
class GeeksforGeeks {
}
  
class Programming {
}
  
class Coding {
}

我们已经保存了上面的Java源文件,名称为GeeksforGeeks。Java

图 7:文件名

现在让我们通过命令提示符在 javac 编译器的帮助下编译程序:

javac GeeksforGeeks.java

输出:

图 8:编译器判定

程序编译成功,没有任何错误,因为我们在GeeksforGeeks 中定义了三个类。 Java程序因此生成 Coding.classGeeksforGeeks.classProgramming.class字节码文件。

4. 组合功能:

布局:我们可以通过考虑以下代码片段来理解结构:

Java

// File name: GeeksforGeeks.java
  
// Package declaration 
package myPackage;
  
// import statements
  
import classes;
  
// Class declaration
public class Class1 {
    
}
  
class Class2 {
    
}
  
class Class3 {
    
}

为了理解Java文件结构的组合工作,请考虑以下程序:

我们创建了三个空类: GeeksforGeeks、Programming 和 Coding,其中 GeeksforGeeks 类被声明为公共类。

Java

// Package statement
package myPackage;
  
// Three empty classes and
// GeeksforGeeks is declared as public
// We can't declare more classes as public 
// (atmost one class can be declared as public) 
// So file name will be GeeksforGeeks only
  
public class GeeksforGeeks {
    
}
  
class Programming {
    
}
  
class Coding {
    
}

我们以GeeksforGeeks的名称保存了上述Java源文件。 Java作为 GeeksforGeeks 类被声明为 public。正如我们之前看到的,用不同的名称命名这个文件会给我们一个编译时错误。

图 9:文件名

现在让我们通过命令提示符在 javac 编译器的帮助下编译程序:

javac GeeksforGeeks.java

输出:

图 10:编译器判定

如上所示,它编译成功,没有任何错误,生成了三字节代码文件( .class ): Coding.classGeeksforGeeks.classProgramming.class 。