In Java, data fields and methods can be designated as public or private. Which of the following best characterizes the designation that should be used?
1) Public designation should be used for data fields and methods that need to be accessed by other classes.
2) Private designation should be used for data fields and methods that should only be accessed within the same class.
3) Public designation should be used for all data fields and methods.
4) Private designation should be used for all data fields and methods.