Static and instance methods

When a method declaration includes a static modifier, that method is said to be a static method. When no static modifier is present, the method is said to be an instance method.
A static method does not operate on a specific instance, and it is a compile-time error to refer to this in a static method.
An instance method operates on a given instance of a class, and that instance can be accessed as this (14.5.7).
When a method is referenced in a member-access (14.5.4) of the form E.M, if M is a static method, E must denote a type that has a method M, and if M is an instance method, E must denote an instance of a type that has a method M.
The differences between static and instance members are discussed further in 17.2.5.