Classes that have been enhanced to implement the 
		PersistenceCapable interface are referred
		to as persistence-capable classes.  
		Classes that directly access public or protected persistent
		fields of persistence-capable classes are called 
		persistence-aware.  Persistence-aware classes
		must also be enhanced - each time a persistence-aware class directly 
		accesses a persistent field of a persistence-capable class, the 
		enhancer adds code to notify the JDO implementation that the field in 
		question is about to be read or written.  This enables the JDO 
		implementation to synchronize the field's value with the datastore as 
		needed.  Unless the persistence-aware class is also 
		persistence-capable, the enhancer does not add code to make the class
		implement the PersistenceCapable interface.
		
Generally, it is best to keep all of your persistent fields private, or protected but only accessed by persistent subclasses. In addition to the standard arguments in favor of state encapsulation, this approach avoids the hassle of tracking which non-persistent classes must be enhanced as persistence-aware because they happen to access a public or protected field of some persistent class.