Mistake: leaving helper methods as ordinary instance methods. A method that needs no object state can be misleading when callers must invoke it through an instance. A static class method makes that class-level role explicit and can run without a class instance. section 9.11
Static class methods can access class variables but not object values. In the Rational example, gcd and reduce perform calculations on supplied values, so they do not need access to a particular Rational object. section 9.11
A clearer alternative
A helper can also remain a private instance method when it directly updates the current object. Listing 9.29 keeps reduce as an instance method and moves gcd to a file-level static function, showing that clarity matters more than applying static mechanically. section 9.11
