The other serious problem which were not mentioned yet may come into picture are telescoping constructors. Joshua Bloch in his famous book
Effective Java spends 6 pages explaining that (Item 2).
When there are many parameters, usually there are also cases when object initialization doesn't require them all from the client side, so you need to overload constructors by supplying to an overloaded constructor the "default" values, so you still have object in a consistent state:
Pete Letkeman wrote:What I was taught was it is okay to have three to five parameters for constructors
That probably would sound okay to have one to three and in an exceptional cases maybe, maybe five, but that supposed to be under serious suspicion.
In some cases you may find, that if you have 5 or so parameters, you don't even need a builder, because some of those parameters nicely form a class themselves, i.e.:
this:
could be replaced with:
So, always need to think and assess particular case. In most of the cases probably the good programming guidelines would appear to be right, and only a smaller portion of corner cases would prove to be acceptible as fine.