Yes and No. There are a number of different types of class in Java, these can be grouped in to 2 main categories Top Level Classes and Inner Classes. Inner Classes can be subdivided into 4 types Anonymous, Local, Member and Nested Top Level. Of all these class types only one type can use the static keyword, that is the Nested Top Level class. This basically a Member class declared as static.