Does this smell?
I have a few properties you can only set once. They can be set at any time during the objects existence and can not be undone.
I implement then like
I would suggest setting them on construction, and therefore making the setters private. That seems like a more sensible way.
If you are going to do it that way, throw some sort of Exception. At least let the developer know you didn't set their values rather than ignoring it silently.