Tight encapsulation requires all instance variables to be private and access to them controlled via getters/setters. None of the listed options (such as declaring the class final or local variables private) are strict prerequisites for tight encapsulation.