problem creating object of inner class in java

前端 未结 3 1419
隐瞒了意图╮
隐瞒了意图╮ 2020-12-17 00:39


Here is the code.

public class Test {
        class InnerClass{

               }

   public static void main(String[] args){
            InnerClass ic          


        
3条回答
  •  暖寄归人
    2020-12-17 01:26

    Your inner class depends on an instance of the Test class. main is a static method, thus you can't create an instance of InnerClass.

    I think you want to declare your inner class as static :

    class Test {
        static class InnerClass { }
    
        public static void main(String[] args){
            InnerClass ic = new InnerClass();
        }
    }
    

    More information about nested classes : http://download.oracle.com/javase/tutorial/java/javaOO/nested.html

    Short explanation

    There's mainly two types of nested classes : "static nested class" and "inner class"

    Static nested class are used to logically group two classes and can be used to increase encapsulation. They can be used like any other classes and, except for visibility, they don't have any particular access to the outer class fields. They can logically be instantiated in a static context.

    Inner class (ie not static) are bound to a particular instance of the outer class. This means you must have an instance of the outer class to instantiate the inner class. Have a look at Skaffman second code chunk for an instantiation example. Since inner classes are bound to an instance of the outer class, they have access to every field relative to this particular instance.

    I hope all this is now clearer.

提交回复
热议问题