Hello, I think the explanation might be enhanced a little.
"This shows why an inner class cannot declare a static member, because the entire body of the inner class is in the scope of one or more enclosing instances.".
To me, all that comes before this statement have nothing to do with the explanation, what comes before is talking about static inner classes, and doesn't help to explain nothing about the case for non-static inner classes.
This design decision from Java bugs me every now and then, and I decided to dig deeper in this discussion. Recently I found that there's no real technical reason for this, and this was changed in JDK 16. So, there's a lot of people trying to justify this behaviour on the internet, and it's kinda confusing, because there's really no real reason.
Here's the issue that made the change in JDK 16:
https://bugs.openjdk.org/browse/JDK-8254321
So, my suggestion would be to just enhance the explanation with a commentary regarding JDK 16+ and how that rule changed, even if this question is for JDK 11. This could help keeping things clear. Also, maybe the part that tries to justify the behaviour should be changed.