神刀安全网

Myth about the file name and class name in java

The first lecture note given during java class is “In java file name and class name should be the same”. When the above law is violated a compiler error message will appear as below

/***** File name: Trial.java ******/ public class Geeks {    public static void main(String[] args) {         System.out.println("Hello world");    } }

Output:

javac Trial.java Trial.java:9: error: class Geeks is public, should be                     declared in a file named Geeks.java public class Geeks ^ 1 error

But the myth can be violated in such a way to compile the above file.

/***** File name: Trial.java ******/ class Geeks {     public static void main(String[] args) {         System.out.println("Hello world");     } }
Step 1: javac Trial.java

Step1 will create a Geeks.class (byte code) without any error message since the class is not public.

Step 2: java Geeks

Now the output will be Hello world

The myth about the file name and class name should be same only when the class is declared in

public.

The above program works as follows :

Myth about the file name and class name in java

Now this .class file can be executed. By the above features some more miracles can be done. It is possible to have many classes in a java file. For debugging purposes this approach can be used. Each class can be executed separately to test their functionalities(only on one condition: Inheritance concept should not be used).

But in general it is good to follow the myth.

For example:

/*** File name: Trial.java ***/ class ForGeeks {    public static void main(String[] args){       System.out.println("For Geeks class");    } }  class GeeksTest {    public static void main(String[] args){       System.out.println("Geeks Test class");    } }

When the above file is compiled as javac Trial.java will create two .class files as ForGeeks.class and Geeks.class .

Since each class has separete main() stub they can be tested individually.

When java ForGeeks is executed the output is For Geeks class .

When java Geeks is executed the output is Geeks Test class .

This article is contributed by Sowmya.L.R . If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Myth about the file name and class name in java

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址