Actually, even names can have problems. getLastName(), for example, isn't culturally universal. In many Arabic countries, what we would think of as a "last name" is actually the father's name. More over, the same person can be identified in more than one way (roughly translated as "father of" and "son of"). Two different "last names" can identify the same person! Exposing a "last name," then, could cause problems when you try to move your application to a country that uses these naming conventions. Even comparison becomes difficult becuase you have to determine that two seemingly different names actually identify the same person!
Admitedly, this is all probably hair splitting for you average shopping-cart application. My point is that the side effects of exposing any implemenation details can be unobvious.
To take the matter even further, what if you need to add the notion of "currency" (dollars, yen, etc.) to Money? A getValue() method is even more problematic in this situation, becuase you don't know whether the returned number represents dollars, yen, or whatever other currency is supported. Adding a getCurrency() opens up a huge can of worms because you'll have to be doing currency conversions all over your code. The Money.add(Money) approch takes care of this problem by doing the currency conversion internally.
Also, re. the Kruger and Dunning article (at
http://www.apa.org/journals/psp/psp7761121.html). It's really worth reading. Their point is that smart people have a hard time seeing what they do and don't know. I certainly fall into that trap on occasion myself, as do most of us.
Admitedly, this is all probably hair splitting for you average shopping-cart application. My point is that the side effects of exposing any implemenation details can be unobvious.
Also, re. the Kruger and Dunning article (at http://www.apa.org/journals/psp/psp7761121.html). It's really worth reading. Their point is that smart people have a hard time seeing what they do and don't know. I certainly fall into that trap on occasion myself, as do most of us.