Skip to content
Related Articles

Related Articles

Do we need forward declarations in Java?

View Discussion
Improve Article
Save Article
Like Article
  • Difficulty Level : Basic
  • Last Updated : 22 Mar, 2017

Predict output of the following Java program.

// filename:
// main() function of this class uses Test1 which is declared later in 
// this file
class Test2 {      
    public static void main(String[] args) {    
         Test1 t1 = new Test1();;         
class Test1 {   
    void fun(int x) {
        System.out.println("fun() called: x = " + x);


fun() called: x = 5

The Java program compiles and runs fine. Note that Test1 and fun() are not declared before their use. Unlike C++, we don’t need forward declarations in Java. Identifiers (class and method names) are recognized automatically from source files. Similarly, library methods are directly read from the libraries, and there is no need to create header files with declarations. Java uses naming scheme where package and public class names must follow directory and file names respectively. This naming scheme allows Java compiler to locate library files.

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

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!