![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Using what you have learned previously from
Segment 447 and Segment 450, you can write
initializeFrom:
, which initializes a Food
instance (the
receiver) with information from a file (the argument). The Food
class is the same as that shown in Segment 232, except that an
extra instance variable, name
, is added.
Food class definition Object subclass: #Food instanceVariableNames: 'name fCalories cCalories pCalories' classVariableNames: '' poolDictionaries: '' Food method definition instance name ^ name. Food method definition instance name: aString name:= aString. Food method definition instance fCalories ^ fCalories Food method definition instance fCalories: aNumber fCalories := aNumber Food method definition instance cCalories ^ cCalories Food method definition instance cCalories: aNumber cCalories := aNumber Food method definition instance pCalories ^ pCalories Food method definition instance pCalories: aNumber pCalories := aNumber Food method definition instance initializeFrom: aFile | inputStream | inputStream := File pathName: aFile. self name: inputStream nextWord. self fCalories: inputStream nextWord asInteger. self cCalories: inputStream nextWord asInteger. self pCalories: inputStream nextWord asInteger. inputStream close. ^ self. Workspace Test := (Food new initializeFrom: 'c:\test\vtbls.dta'). Transcript show: Test name printString; cr; show: Test fCalories printString; cr; show: Test pCalories printString; cr; show: Test cCalories printString; cr. Transcript ***** Testing 'Asparagus' 3 9 16