I've found no books on teaching Java as a first language that stress the importance of always providing a minimal public interface.