Static inner class (static nested class or nested class)

1. Static nested classes

Static Nested Class is an internal class declared as static, it can be instantiated independently of external class instances. And the usual inner class needs to be instantiated after the outer class is instantiated

(1) The static nested class is not a real member of its external class, it is the same level as the external class

(2) Static nested classes cannot directly reference instance variables or methods in their external classes

(3) Instance creation method:

OuterClass.StaticNestedClass nestedObject =new OuterClass.StaticNestedClass();

(4) Examples

public class StaticInnerClass {
    public static class InnerClass{
        private String string="早上好";
        public  void say(){
            System.out.println(string);
        }
    }

    public void say(){
        System.out.println("你好");
    }

    public static void main(String[] args) {
        InnerClass InnerClass= new StaticInnerClass.InnerClass();
        InnerClass.say();
        StaticInnerClass staticInnerClass=new StaticInnerClass();
        staticInnerClass.say();
    }
}

 

2. Internal class (member internal class)

Create Plants inner class, the outer class is Biology:

class   Biology {
     public  int age;
     public String name; 

    public  class Plants {
         public String colour; 

        public Plants ( int a, String n, String c) { 
            age = a; // Member variable of external class 
            name = n; 
            colour = c ; // Member variables of inner classes 
        } 

        public  void display () { 
            System.out.println ( "The name of the plant is:" + name + "\ n" + "Color is:" + colour); 
        } 
    } 
}

test:

public  class Test {
     public  static  void main (String [] args) { 

Biology.Plants plants = new Biology (). new Plants (1, "Dandelion", "Yellow"); // Access to internal classes 

 plants.display () ;}}

 

 It can be seen that the instantiation of the inner class depends on the instantiation of the outer class instance

 

Guess you like

Origin www.cnblogs.com/zhai1997/p/12723898.html