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
现在让我们通过命令提示符在 javac 编译器的帮助下编译程序:
javac GeeksforGeeks.java
输出:
程序编译成功,没有任何错误,并生成了相应的.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
现在让我们通过命令提示符在 javac 编译器的帮助下编译程序:
输出:
我们得到编译错误。编译器要求用Geeks保存Java源文件名。 Java仅作为 Geeks 类被声明为 public。
现在让我们再次通过命令提示符在 javac 编译器的帮助下编译程序:
javac Geeks.java
输出:
这次程序编译成功,没有任何错误。
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
现在让我们通过命令提示符在 javac 编译器的帮助下编译程序:
javac GeeksforGeeks.java
输出:
程序编译成功,没有任何错误,因为我们在GeeksforGeeks 中定义了三个类。 Java程序因此生成 Coding.class 、 GeeksforGeeks.class 、 Programming.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。正如我们之前看到的,用不同的名称命名这个文件会给我们一个编译时错误。
现在让我们通过命令提示符在 javac 编译器的帮助下编译程序:
javac GeeksforGeeks.java
输出:
如上所示,它编译成功,没有任何错误,生成了三字节代码文件( .class ): Coding.class 、 GeeksforGeeks.class 、 Programming.class 。