These are all fine. Have is not limited to people: The house has 4 bedrooms. August has 31 days.
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.
The problem with "have" comes when you try to translate directly from the first language. Languages like Chinese, Spanish, and Portuguese can start sentences with "Have..." without a subject before it. This is incorrect in English. Statements with "have" need a subject.
Have a drink on the desk. X
The desk has a drink on it. OK
There is a drink on the desk. OK