Non-overridable methods (`+private+` or `+final+`) that don't access instance data can be `+static+` to prevent any misunderstanding about the contract of the method.

== Noncompliant Code Example

----
class Utilities {
  private static String magicWord = "magic";

  private String getMagicWord() { // Noncompliant
    return magicWord;
  }

  private void setMagicWord(String value) { // Noncompliant
    magicWord = value;
  }

}
----

== Compliant Solution

----
class Utilities {
  private static String magicWord = "magic";

  private static String getMagicWord() {
    return magicWord;
  }

  private static void setMagicWord(String value) {
    magicWord = value;
  }

}
----

== Exceptions

When `+java.io.Serializable+` is implemented the following three methods are excluded by the rule:

* `+private void writeObject(java.io.ObjectOutputStream out) throws IOException;+`
* `+private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException;+`
* `+private void readObjectNoData() throws ObjectStreamException;+`
