Re: My First Ever OOP code

Mark Bratcher <[email protected]> Tue, 6 Jan 2026 16:18:47 -0500
Newsgroups gmane.comp.lang.smalltalk.gnu.general
Message-ID <[email protected]>
On 1/6/2026 4:04 PM, Wolfgang Dann wrote:
> But why are you saying first, temperature is an attribute of an object,
> and then you are making it the object itself?
> For me this looks counter intuitive.
>
I didn't say Temperature is an attribute of Object. I said that the 
scale used for temperature is an attribute of temperature.

I didn't say anything about where Temperature lived. I just mentioned 
deriving it from Number instead of Object.

> But I think
>
> Object()
>    temperature: number.
>    	temperature.Celsius?: number
> 	temperature.Fahrenheit?: number
>
> would be more intuitive.
>
> That way you could have myRoom: Object.
> myRoom temperature.Celsius?

Temperature is a Number, so I made it a subclass of number. You can make 
it a subclass of Object, but it would not really serve any additiona 
benefit.

If you want a Room, then ask yourself: is temperature an attribute of a 
Room or vise versa? I believe the former. So temperature is an attribute 
of a room. It's a member. Room can be a subclass of Object and 
Temperature would be an attribute, not a subclass, or room. If you want 
the temperature of the room, you'd call (using pseudo code here) 
something like: myRoom.temperature.asF() or myRoom.temperature.asC().