Data hiding, which means that critical data stored inside the object is protected from code outside the object, is accomplished in Java by: A. using the public access specifier on the class methods B. using the private access specifier on the class methods C. using the private access specifier on the class definition D. using the private access specifier on the class fields