Referencing the following example:
class Plane {
    ...
    static class Gearbox {
        ...
    }
}
The following is possible:
Plane.Gearbox gearbox = new Plane.Gearbox();
I was wondering if someone could explain what effect the 'static' keyword has in this situation. Coming from C#, this is very strange to me as static classes cannot be instantiated.
I am well aware that there are other questions referring to the same topic, or information online, however I still don't fully understand the use of the 'static' keyword in this situation. Therefore I would greatly appreciate someones help to understand this concept in Java.
 
    