ࡱ> 6345n(q'Hg!NPNG  IHDR A"gAMAPLTE`0rprr00___Y pHYs.> IDATx c8F˙NƳ\g3;vJ%xJwnЃqI&@+7jf^d޻1?ap.0IOf~Kx͓%f^p^L&QQG3)`fL޽7o~[ACYloc QI69C| vaS~3ax#!B}G~43ӫF̹4,̈́'"LJa&k-m3m3{?7/ۛhe3vB#ͼL׸3q` =)zy{ʚ44Wu0+ ^ f6M`&h f66͸4[!:D0ʮK3TC%tl4"LE, 34s8Dfp$'2d) *bRm) QMWZ#BSfkK3~3܇u|Ʒ7"[GIޔrV{dfZ52=jeWT4sM8oHN!&Mʹ ⠿ŵgb7/eO8.A{7ܦovP4VʚLUj(q7sIT?[[s#ִN/hYnǕ˥КE1q39_`YsfL&=9׷5}Stfۚ#:YOda>;gf~f&arokd1͜eMQeyY\,/YV[h73KwL'/;2sq/3YS3=ĖLbA颙;O͌23j#3kK̤5 13_ti)˟_k*)Ȟggaɂ0~Ͽ'5=UhM5YkF7W&1*9!fFLՌ&xf.lm5Vӎ=T_3f~jyϏ}:9Lϣ47L9g1Co̥惙 ̚9/D< o3LuNY\3G5w4s{̬03֏y:Vk>1fԜbRS5wgf=e1k^#fy=lt?.mVs.Ojc?7aAj!faR33ǘ.1Pg>jLds?3cbYf~_@fʮ3f\Lܜ|)S7ca?syy.yɜb&~dR#!g,{N̥LV?b9593c?S_iפ-6YX=G۫3};G&vܜՏy.5f6AAf|g&5֜ǒg%f.뇙ReOy9V?pD6Dc&qi:f T (\3n}y=SԏL̔j>|i>&|$~> H5gkG)bd̠$PM1s[R'hi 1J3#5TO;x3)`<ooߧ)^LRGig5,5zBfNMm< O)=_L=xyO1UǾmC_L wpm'Wwem/`܉&>>;vru fYcwY]Z<6 yTm0ss 1L]$50ӬN@dfmWdQMZ-yP#Șif;3 `UI`tnRٚձ-bfof"3퍳*[Ǘ/Dͤ;bXv4 8'fz39*̚)Jf&+K̬|2[sl𡛻pXILoRF3 /J3kUY0Ө.ݔS"%3-[43xj$8oXaUBm3jTc87c[D<+\Lњ {rrfV w'vEFطufE]Jfawjͷ{G3=4Z;{5s۽ڣ(y FfW[Lj63 f6k+ɮS;Ywƻ$U8yUhѫpӻ}-oKNgUq3' ӕގiִ_P3;&)0Ym̩)'%vgwnՍs~Nfɐ|Lqk$ \}ʾ唌ܠp_sXŵwoص͘gc''Bl3bp&u)뜙$'ޗ՗թ wM 88'fdH-g@AKl31sԙN1eݷ6YԚi| K|oޤݰ!%Km>L}e%}LeLA~M{L3.fc&;22b檣̔=^όrjڑ[[s~4SN}h<[]WLًL A;=Zz6אҾ@FX3f},ss5sAKm{@Wcd~BN¸\Ylm03Z"fVn].m4@0smm5*:9|RLf]5f ̔܅#M:QQpֹ*Jow^oߪq:LuFii3g\IdtZy\f.%31> ! ˈcSaahbLqgf P c&?6Ln|fL{g0̨%7D$yI^3O f]̚bű03]r] ɟ"eKu3u?`em`YüD1ek鉥b缙GQIf&k΀2GV'51SVifiRYQbucVN$tɩ.els?fļҞ=7Wd~Z: \^k3+˲ssf" hu Cͤ7 /wrneVy 5f yCOm2su?R3ӮfT&;;)~S̜oyd\-YBX,1 *$903.|4R3oUzB9[\ڨ=)y ,֚Zi/d˲5o&E(K(.rXBDWN\Kw|5>L0ӣcǖH3qvLYuby*g1^'O? b:QOoDV:7q d"u>{rUAW0ӫgb=kWfZ 3*ˉ\#ȞF_+UOoDնLibXLZsf&K3E]y\(LZK uJ3ŀɌI=3$fZcSI5'?)k[jx'Z'CߠذLaBqI2-3ܑߧb,3֜}L;۩8Λ6TӬ=Lu*җ?rr9=713~Lgi$eY4.,??Srvnfcea&K EX` {|aw׷ϡi&"yukWFq'k{avxgҩA?>J5s߸UQ_!չy(L){NU~(Tmc1 +`˛n? U܆>z,v3Bf7f~2nܩL'0: /]P1 .ލ˓ \>a2gJYPFrN(*ɚQJzx\mblĂ`fO,7"6`c kaff40'֘[Rj6_ eflp^er`fO,!$S223܊"ƁhNeB?0'3Lm0a2F(%K`MX>rx'3IQ\EJ~R3eE?s>gXfzb- Q4!`jjny?Of|0'*P }C QfJ{ļDGP-O[rZ1 .k `hMnūAf&Zs @+W.𾔌NH>> _1ȿM03|F!̄37]mfM`&h f6M`&h f6M`&h?4Y$[1{쪄l7LH?^3ޯ4+`q`.f&̵+k03GtNO9M@}RpH >eO1x|_nүSƪ ֫E d!(Ό)\MX,_(f3djZ3_ůff ;9Rϥ)3*ELUFe*m/˩6Xn^qV3mcqO7|,>V)wb52f4b;k;-̴![t3#8N"rc$& ]LxRWoXԡS!%9v1 UMiU<3َf$fVP]A,tB}W_C܏1ÃE!m(tn:a9adͼzhgi`ͼ"ݚ'/՜ԝKּJf~K6< fǴă^.ILjQ1x0IM 3aLv mOF#(=n&upczbgO`&8y3|}T3̚g|=̎:`fOl2s2w,wF K>6ӛȭ}a `fG̙^5ʚՔQ;{)0'*zflSEknN`&XD}̔ȴ۩΀xg@`16=3A`Dh Gy-@Ӕ̼zfD_fD䣁fČWޮq m3AL&0 m3A,4R ?zo+r&s(3_3{b d g&3^[ʹB#_0~?K—=0Œ/~-3Sds,.J\Ƃi*/= f>9K!\򡾼@8Ɍ,Rt%e%vNmJg? f:8f:qI&fZsIf)(JΔ:Lr62ߍ$)!Nd3bFiӪ\:xi8f&: iZ3 sEYF2dOƜ%0ҩbFMsyl>p̤4le;|bY;J טi mkv\*F(p<4ɹ#^;AX0%y9>Q0 iȥSZ5 Aj*9ffmsx%,6p~&̬ffP933B7.tIj>p0s3Et70s{ݽ[(9{^;ww`&h f6M*FhgYUЂLlc0'Ϝ+WW`Xx>aՅ=L> )bx 3 OMrW4ue 7 3;qȊ:IDATa +FS͔Ut@Ӭ!l xd3[RЂk9Zsx^L:_]UPzY윕f:Z:5EڂJT=0s>=&ѳޥΤTT> 3oA'nOhqlx,w$g,\SJ{T^L@/(HRS= ڤysʹR̻FM`&h f6M`&h f6Yz<~L,DiyZ9/W3{bQz(_q>$R818\`fOT涙d$P`fC=L3y%D3=Qm&edH8#r`!Uߡ6&c&/f( 3ԏ+9NH S S?rX^43\pLճr!Hb!K{>0'^Ϥp}xGuו<Jf;iAW 3{23W}6`fO0(gc쉫LP@||L ā>>04W03L f6Yhfz8;<0'3r Zb04ԚӲ֜΀=QTfmR{n^y6ϸM>E^!f:aو [n~=t˝|=sf$8Y<Y<Y<Y<Y<Y<Y<}.:i~ZQ/ޕ#_k%3**̔ۛlqfLFkľjLg)pq#wfGU?'Y֚;(fǁ13]L.F9|0ĦzB'>`f 3f3f3f09̣51sf ̬aj <Y<Y{h]AIENDB`n(jJ,F"f7PNG  IHDR A"PLTE`0rprr00___YbKGDH IDATx c8F˙NƳ\g3;vJ%xJwnЃqI&@+7jf^d޻1?ap.0IOf~Kx͓%f^p^L&QQG3)`fL޽7o~[ACYloc QI69C| vaS~3ax#!B}G~43ӫF̹4,̈́'"LJa&k-m3m3{?7/ۛhe3vB#ͼL׸3q` =)zy{ʚ44Wu0+ ^ f6M`&h f66͸4[!:D0ʮK3TC%tl4"LE, 34s8Dfp$'2d) *bRm) QMWZ#BSfkK3~3܇u|Ʒ7"[GIޔrV{dfZ52=jeWT4sM8oHN!&Mʹ ⠿ŵgb7/eO8.A{7ܦovP4VʚLUj(q7sIT?[[s#ִN/hYnǕ˥КE1q39_`YsfL&=9׷5}Stfۚ#:YOda>;gf~f&arokd1͜eMQeyY\,/YV[h73KwL'/;2sq/3YS3=ĖLbA颙;O͌23j#3kK̤5 13_ti)˟_k*)Ȟggaɂ0~Ͽ'5=UhM5YkF7W&1*9!fFLՌ&xf.lm5Vӎ=T_3f~jyϏ}:9Lϣ47L9g1Co̥惙 ̚9/D< o3LuNY\3G5w4s{̬03֏y:Vk>1fԜbRS5wgf=e1k^#fy=lt?.mVs.Ojc?7aAj!faR33ǘ.1Pg>jLds?3cbYf~_@fʮ3f\Lܜ|)S7ca?syy.yɜb&~dR#!g,{N̥LV?b9593c?S_iפ-6YX=G۫3};G&vܜՏy.5f6AAf|g&5֜ǒg%f.뇙ReOy9V?pD6Dc&qi:f T (\3n}y=SԏL̔j>|i>&|$~> H5gkG)bd̠$PM1s[R'hi 1J3#5TO;x3)`<ooߧ)^LRGig5,5zBfNMm< O)=_L=xyO1UǾmC_L wpm'Wwem/`܉&>>;vru fYcwY]Z<6 yTm0ss 1L]$50ӬN@dfmWdQMZ-yP#Șif;3 `UI`tnRٚձ-bfof"3퍳*[Ǘ/Dͤ;bXv4 8'fz39*̚)Jf&+K̬|2[sl𡛻pXILoRF3 /J3kUY0Ө.ݔS"%3-[43xj$8oXaUBm3jTc87c[D<+\Lњ {rrfV w'vEFطufE]Jfawjͷ{G3=4Z;{5s۽ڣ(y FfW[Lj63 f6k+ɮS;Ywƻ$U8yUhѫpӻ}-oKNgUq3' ӕގiִ_P3;&)0Ym̩)'%vgwnՍs~Nfɐ|Lqk$ \}ʾ唌ܠp_sXŵwoص͘gc''Bl3bp&u)뜙$'ޗ՗թ wM 88'fdH-g@AKl31sԙN1eݷ6YԚi| K|oޤݰ!%Km>L}e%}LeLA~M{L3.fc&;22b檣̔=^όrjڑ[[s~4SN}h<[]WLًL A;=Zz6אҾ@FX3f},ss5sAKm{@Wcd~BN¸\Ylm03Z"fVn].m4@0smm5*:9|RLf]5f ̔܅#M:QQpֹ*Jow^oߪq:LuFii3g\IdtZy\f.%31> ! ˈcSaahbLqgf P c&?6Ln|fL{g0̨%7D$yI^3O f]̚bű03]r] ɟ"eKu3u?`em`YüD1ek鉥b缙GQIf&k΀2GV'51SVifiRYQbucVN$tɩ.els?fļҞ=7Wd~Z: \^k3+˲ssf" hu Cͤ7 /wrneVy 5f yCOm2su?R3ӮfT&;;)~S̜oyd\-YBX,1 *$903.|4R3oUzB9[\ڨ=)y ,֚Zi/d˲5o&E(K(.rXBDWN\Kw|5>L0ӣcǖH3qvLYuby*g1^'O? b:QOoDV:7q d"u>{rUAW0ӫgb=kWfZ 3*ˉ\#ȞF_+UOoDնLibXLZsf&K3E]y\(LZK uJ3ŀɌI=3$fZcSI5'?)k[jx'Z'CߠذLaBqI2-3ܑߧb,3֜}L;۩8Λ6TӬ=Lu*җ?rr9=713~Lgi$eY4.,??Srvnfcea&K EX` {|aw׷ϡi&"yukWFq'k{avxgҩA?>J5s߸UQ_!չy(L){NU~(Tmc1 +`˛n? U܆>z,v3Bf7f~2nܩL'0: /]P1 .ލ˓ \>a2gJYPFrN(*ɚQJzx\mblĂ`fO,7"6`c kaff40'֘[Rj6_ eflp^er`fO,!$S223܊"ƁhNeB?0'3Lm0a2F(%K`MX>rx'3IQ\EJ~R3eE?s>gXfzb- Q4!`jjny?Of|0'*P }C QfJ{ļDGP-O[rZ1 .k `hMnūAf&Zs @+W.𾔌NH>> _1ȿM03|F!̄37]mfM`&h f6M`&h f6M`&h?4Y$[1{쪄l7LH?^3ޯ4+`q`.f&̵+k03GtNO9M@}RpH >eO1x|_nүSƪ ֫E d!(Ό)\MX,_(f3djZ3_ůff ;9Rϥ)3*ELUFe*m/˩6Xn^qV3mcqO7|,>V)wb52f4b;k;-̴![t3#8N"rc$& ]LxRWoXԡS!%9v1 UMiU<3َf$fVP]A,tB}W_C܏1ÃE!m(tn:a9adͼzhgi`ͼ"ݚ'/՜ԝKּJf~K6< fǴă^.ILjQ1x0IM 3aLv mOF#(=n&upczbgO`&8y3|}T3̚g|=̎:`fOl2s2w,wF K>6ӛȭ}a `fG̙^5ʚՔQ;{)0'*zflSEknN`&XD}̔ȴ۩΀xg@`16=3A`Dh Gy-@Ӕ̼zfD_fD䣁fČWޮq m3AL&0 m3A,4R ?zo+r&s(3_3{b d g&3^[ʹB#_0~?K—=0Œ/~-3Sds,.J\Ƃi*/= f>9K!\򡾼@8Ɍ,Rt%e%vNmJg? f:8f:qI&fZsIf)(JΔ:Lr62ߍ$)!Nd3bFiӪ\:xi8f&: iZ3 sEYF2dOƜ%0ҩbFMsyl>p̤4le;|bY;J טi mkv\*F(p<4ɹ#^;AX0%y9>Q0 iȥSZ5 Aj*9ffmsx%,6p~&̬ffP933B7.tIj>p0s3Et70s{ݽ[(9{^;ww`&h f6M*FhgYUЂLlc0'Ϝ+WW`Xx>aՅ=L> )bx 3 OMrW4ue 7 3;qȊ:IDATa +FS͔Ut@Ӭ!l xd3[RЂk9Zsx^L:_]UPzY윕f:Z:5EڂJT=0s>=&ѳޥΤTT> 3oA'nOhqlx,w$g,\SJ{T^L@/(HRS= ڤysʹR̻FM`&h f6M`&h f6Yz<~L,DiyZ9/W3{bQz(_q>$R818\`fOT涙d$P`fC=L3y%D3=Qm&edH8#r`!Uߡ6&c&/f( 3ԏ+9NH S S?rX^43\pLճr!Hb!K{>0'^Ϥp}xGuו<Jf;iAW 3{23W}6`fO0(gc쉫LP@||L ā>>04W03L f6Yhfz8;<0'3r Zb04ԚӲ֜΀=QTfmR{n^y6ϸM>E^!f:aو [n~=t˝|=sf$8Y<Y<Y<Y<Y<Y<Y<}.:i~ZQ/ޕ#_k%3**̔ۛlqfLFkľjLg)pq#wfGU?'Y֚;(fǁ13]L.F9|0ĦzB'>`f 3f3f3f09̣51sf ̬aj <Y<Y{h]AIENDB`"(` S  8x$Photo Editor Photo MSPhotoEd.30@Microsoft Photo Editor 3.0 Photo lhttp://www.cincom.com/smalltalk/tutorial/vwsyntax1.htmnhttp://www.cincom.com/smalltalk/tutorial/vwbrowser1.htmvhttp://www.cincom.com/smalltalk/tutorial/weblogstatstoc.htmrhttp://www.cincom.com/smalltalk/tutorial/weblogstats2.htmzhttp://www.cincom.com/smalltalk/tutorial2/weblogstatstoc2.htmvhttp://www.cincom.com/smalltalk/tutorial2/weblogstats22.htmvhttp://www.cincom.com/smalltalk/tutorial2/weblogstats23.htm~http://www.cincom.com/smalltalk/tutorial/weblogstatsprimers.htmrhttp://www.cincom.com/smalltalk/tutorial/weblogstats7.htmrhttp://www.cincom.com/smalltalk/tutorial/weblogstats7.htm rhttp://www.cincom.com/smalltalk/tutorial/weblogstats8.htm"xhttp://www.cincom.com/smalltalk/tutorial2/weblogstats213.htm%rhttp://www.cincom.com/smalltalk/tutorial/weblogstats3.htm&rhttp://www.cincom.com/smalltalk/tutorial/weblogstats4.htm'rhttp://www.cincom.com/smalltalk/tutorial/weblogstats6.htm(rhttp://www.cincom.com/smalltalk/tutorial/weblogstats8.htm-vhttp://www.cincom.com/smalltalk/tutorial2/weblogstats21.htmr.^http://www.nada.kth.se/~bjorne/vw5doc/vwadg.pdf~/jhttp://www.nada.kth.se/~bjorne/vw5doc/walkthrough.pdfH26/ 0DTimes New Roman0Wo 0XDArialNew Roman0Wo 0X" DComic Sans MSn0Wo 0XB0DCourier NewSn0Wo 0X1@DCourierNewSn0Wo 0X 1PDHelveticawSn0Wo 0X " ` .  @n?" dd@  @@``   `,%*> (   $! U =$  (!" %12"% *    3,  0    #     OM B "  7!#>&       $ )  ! " #$#  %*O$#$#b$q'Hg!N(#b$>K\bM;+((# 00e0e     A@ A1  8c8c     ?1 d0u0@Ty2 NP'p<'p@A)BCD|E?||P3@8vwP g4BdBd0jppp0 <4!d!d 0Lg4:d:d0p@ pp<4BdBd 0Lt[ ʚ;Z:ʚ;<4ddddЁ 0^V___PPT98/ 0 "(-./DH$Starta VisualWorks{10? %O = o* FInnehll Smalltalk En introduktion till sprket Smalltalk Historik, syntax, meddelanden, grundlggande klasser, styrstrukturer Klassdefinition (med instans- och klassvariabler) Metoder  konstruktrer Kort-kort om Smalltalk (nio sidor som sammanfattar Smalltalk, i slutet av anteckningarna)t  2  2' 2F 2 2 'F 0 `F:\Program Files\Microsoft Visual Basic\VB32.EXE$ 0$zHistorik  Arbetet med Smalltalk brjade p Xerox PARC i brjan av 70 - talet. (3000 rader BASIC 1972) Skapade begreppet objektorienterat Mycket av dagens terminologi kommer hrifrn ven Javas rekommenderade regler fr namngivning hrifrn Avsikten var att bygga ett kraftfullt informationssystem som skulle kunna vxa och frndras i takt med med anvndarens ider och nskeml I gruppen eller intilligande grupper var man ocks frst med Fnstersystem med bitmappade displayer, pop-up-menyer, mm Influerade Apples Macintosh Ethernet Postscript Smalltalk, eller folk som jobbar med Smalltalk, har ocks varit dominerande i: Designmnster XP Teorier och mnster fr grnssnittskonstruktionZhZZ:ZZZOZAZh:  O  A                      '              1          /  {Smalltalk var en vision*     Man valde tv utgngspunkter fr att realisera denna id: ett beskrivnigssprk (programsprk) som kan anvndas fr att beskriva anvndarens mentala bild av tillmpningen fr datorn ett interaktionsprk som anvnds fr att beskriva grnssnittet mellan anvndare och dator&::~ 4         |I Smalltalk r allt objekt*    V Smalltalk r helt objektorienterat och uppbyggt kring de grundlggande begreppen: objekt, instans, meddelande, klass och metod Allt i Smalltalk r objekt: ex. Tal, strngar, grafik, fnster, kompilator, klasser En operation (metod) utfrs genom att ett objekt (mottagaren) fr ett meddelande. Objektet sjlv avgr vad som skall hnda (9{T 9{    ,                                        - ="I VisualWorks anvnder man verktyg"z Browser fr att koda Workspace fr att testa GUI-builder fr att skriva delar av interaktiva grafiska tillmpningar{{z} Definiera klass (VW3)  )En klass skapas genom att ett meddelande till en existerande klass Object subclass: #MyClass instanceVariableNames: 'ivar1 ivar2' classVariableNames: 'ClassVar1' poolDictionaries: '' category: 'MyCategory' Dr man anger den nya subklassens namn, instansvariabler, klassvariabler och en del annat`Cr[Cq[ B &                      <Definiera klass (VW5)  En klass skapas genom att ett meddelande till en namnrymd Smalltalk defineClass: #MyClass superclass: #{Object} indexedType: #none private: false instanceVariableNames:  ivar1 ivar2' classInstanceVariableNames: '' imports: '' category:  MyCategory Klassvariabler heter nu shared variables och deklareras p srskilt sttV:I:I & &                         ~!!Exempel: klassdefinition MyCircleT      W Vi definierar en cirkel med centrum i center (en instans av Point) och radien radius. ^V&                 "Instansiera klass  Frutsttningar Vi har definierat en klass MyCircle Problem Hur skapar vi en isntans av MyCircle? Lsning Skapa instanser av klassen med hjlp av meddelandet new MyCircle new$&9 4                  "      #Temporr variabel 1Problem Hur kan jag referera till en instans? Lsning Anvnd temporr variabel En temporr variabel deklareras inom ett par av vertikala "streck". En variabel deklareras utan typinformation Vid deklaration av flera variabler tskilj dem med blanktecken | c1 c2 | c1 := MyCircle new. c2 := MyCircle new.&4& 4B           %       V          $ndra en instansvariabels vrde*   Frutsttningar Vi har deklarerat en klass med instansvariabler men kan varken lsa eller ndra deras vrden Problem Hur kan jag ndra en instansvariabel? Lsning Skriv en mutator, dvs en metod som frndrar Exempel: metod fr att ndra radien radius: newRadius radius := newRadius]&-$']&-$ '        (                           %Lsa instansvariabel OFrutsttningar I Smalltalk kommer man inte t attribut i ett objekt om inte klassen erbjuder stt att gra detta (inkapsling). Problem Hur kommer jag t en instansvariabel? Lsning Skriv en inspektor. Fr att explicit returnera ngot frn en metod anvnds "stiliserad upptpil" (^). Exempel: metod fr att lsa radien radius ^radiusp&g#p&g#        7                                 & Meddelande  Problem Hur skickar jag meddelanden till objekt, dvs anropar en av dess metoder? Lsning Meddelanden har samma namn som metoderna | c1 | c1 := MyCircle new. "ndra radie" c1 radius: 10. "vad r radien?" c1 radiusnI)^I) V                 0           'Andra metoder n inspektorer Problem Hur skriver jag en metod som anvnder en instansvariabel fr att berkna ngot? Lsning Instansvariabeln kan alltid refereras innifrn den aktuella instansen Exempel: omkrets circumference ^2 * 3.14 * radius Testa c1 circumferencePF"PF"       %  6     $   (Anropa annan metod i klassen*   \Frutsttningar I det frra exemplet anvnde vi instansvariabeln radius direkt trots att det fanns en inspektor Problem Hur anvnder vi en annan metod i objektet sjlv? Lsning Pseudovariabeln self refererar till det aktuella objektet. Fr att skicka meddelanden till det aktuella objektet utnyttjas detta. circumference ^2 * 3.14 * self radius `1(`1 (                                % , )Reflektion: inspektorer*     `Frdelar med att anvnda inspektorer istllet fr instansvariabler direkt andra metoder blir mindre bereonde av hur radien verkligen lagras. Om lagring eller andra detaljer ndras (tex om radien lagras i en databas eller i en vektor) behver endast mutatorn frndras frndringar i subklasser blir enklare Det ovan beskrivna gller ocks mutatorer! LJ+J+  ~  &         .  B  *Initiala vrden fr objekt Frutsttningar Hittills har vi anvnt meddelandet new fr att konstruera instanser och accessmetoder fr att ndra och lsa attribut. Alla variabler har vrdet nil om inget annat angivits Problem Om vi anvnder meddelandet circumference utan att ange vrde fr radius fr vi ett felavbrott. Hur kan vi ange sknsvrden (defaultvrden) fr instanvariablerna Lsning Definiera en speciell instansmetod som anstter defaultvrdenZZZZZ>Z#k [>     N                        (  0  +Forts (initieringsmetod)*   Exempel Initieringsmetod initialize self center: Point zero. self radius: 1. Testa | c | c := MyCircle new. c initialize. c circumferencef6<6< %             ,Forts (ndra konstruktor)*   Frutsttningar Programmeraren mste fortfarande komma ihg att initiera Problem Hur kan vi tvinga fram en initiering av sknsvrdena? Lsning Definiera om konstruktorn newt9696 H          !  -Vi testar MyCircleF     \ c1 := MyCircle new. c1 circumference Fungerar utan felavbrott och med frvntat resultat<&5&5b      . VisualWorks *  Frutsttningar Vi vet hur vi konstruerar Smalltalkklasser med klass- och instansmetoder. Problem Hur implementerar vi och testar det hela i VisualWorks?LK8K8                  /+Arkitektur VisualWorks, VM, image och filerT          & 0 & Forts 9Sammanfattning system Image den omgivning med fnster och kod "vi kr i" namnet slutar p ".im", tex minImage.im Kllkod systemkllkod, en fil i systemets katalog egen kod + log, i en fil med den kod vi skrivit eller ndrat samt en log av vad vi gjort. Namnet slutar p ".cha", tex minImage.cha. Virtuell maskin (VM) Den enda plattformsberoende delen som verstter plattformsoberoende beskrivningar till aktuell plattform, minneshantering och tar hand om objektens "liv och dd" En VM per plattform (en fr Solaris 5, en fr Windows, en fr Linux, en fr Mac, osv) VV  ,                                           N                             1Fr- och nackdelar med en VM8      Frdelar Kod och image flyttbar mellan olika plattformar Koden kan skrivas p en hg platformsoberoende niv Koden blir kompakt Nackdelar Lngsammare exekvering n om koden optimeras fr aktuell arkitektur Svrt att konstruera speciellt grnssnitt p ett helt plattformsoberoende stt (fast det r ju egentligen inget VM-problem, utan mer generellt) Vissa typer av program krver plattformsspecifika "finesser"L x  x   6                2Forts  verbryggande av vissa nackdelar Just in time compiling (JIT) dvs en versttning till riktig binrkod just fre exekveringen VisualWorks gr p detta stt Smalltalk har gjort det sedan 1983 Dom flesta Java-VM anvnder ocks JIT Anropa kod skriven i andra sprk I VW kan man dynamiskt lnka in C-kod Olika versioner av grnssnitt I VW kan man knna av vilken plattform som krs och gra anpassningar (p hg niv!) till detta. Alla plattformar r  emulerade via lttviktiga grnssnitt (vilket Java ocks brjat gra i swing& )!ZZ@ZZ#Z'Z!Z'ZZZ!@ # '!'                                     "    8                   3Starta VisualWorks*    Frutsttningar Vi kr under UNIX (i terminalsalarna) Hur startar jag VisualWorks? Lsning Explicit angivande av virtuell maskin och image /pkg/visual/5i.4nc/bin/solaris/visual /pkg/visual/5i.4nc/image/visualnc.im Anvnd module add frst module add visual/5i.4nc visual /pkg/visual/5i.4nc/image/visualnc.im P PC och MAC d? Nr det hela r installerat startas en image via dubbelklickZ'Z&Z0ZKZZFZZ=Z'&0K  F=>                                "                 4Konstruera klass i VW  QVi har startat VisualWorks Hur konstruerar vi ny klass? Enklast anvnda Browsern~          5 Prva kod  >Hur prvar vi kod och nyskapade klasser? Anvnd ett WorkspaceT         6 Spara kod  5Hur sparar jag min kod? Gr file out Frn Browsern &&&b          7 Lsa in kod *   dHur lser jag in kod som finns p fil? Lsning Anvnd en Fillista eller explicit meddelandet fileIn&0505            8 Spara image  Dagen r slut vi vill g hem och helst vill vi kunna forstta frn exakt samma utgngslge (med ppna fnster osv) imorgon Hur sparar jag mitt arbete inklusive omgivning? Spara image Frn Launchern&       +             9Starta egen image   {Hur startar jag en egen image igen? Lsning (se ocks OH sid 26) (UNIX) visual minImage.im (MAC, PC) dubbeklicka p ikonen&B:B:                    H 0>@:Frdefinierade klasser Hur anvnder jag frdefinierade klasser och metoder? Sk reda p metoder i systemet Titta vad du kan gra Testa i tex ett Workspace&U0U0   "    $     ?SUnitVi testar SUnit Vi konstruerar en klass BankAccount Vi gr samma exampel som p frelsning 2 Dvs Java-koden som du hittar i katalogen /info/oompa01/SOURCE/EXAMPLES/Lecture2XP/oompaf2 Fast vi anvnder SUnit och skriver det hela i Smalltalk den hr gngenO)2G +)1   G,0H>Vi gr lab 2 ocksF     Dvs vi gr s mycket av lab 2, designmnsterlaborationen, som vi hinner Vi anvnder SUnit fr att skriva tester Idag kr vi efter principen  Det enklaste som fungerar och snyggar till och gr refactoring p vissa delar vid nsta frelsning om VisualWorks\Smalltalk Koden vi skriver kommer lggas i katalogen: /info/oompa01/SOURCE/Smalltalk*::X/8  ` 3` ̙33` 999MMM` f` f3` 3` 3333f` 3>?" dd@ |?" dd@  " @ `"  n?" dd@   @@``@n?" dd@  @@``PR    @ ` ` p>> % e] (   L  c $?/_0 L   # `T   c $?T   c $?  ZJ1 ?O8L  d*     ZHT1 ?O8   f*"  B  01?gol$ 0 0 0L  c $?X5B  01?hEl$ 0 0 0L  c $?U u*  BW1?b!@l$ 0 0 0 Dprevious  $  Bt]1?c]&l$ 0 0 0 >next   Z(%gֳgֳ? ?? 7`w  b Click to edit Master title style! V  # lD9 1??x7`  RClick to edit Master text styles Second level Third level Fourth level Fifth level!    S  s WH0* ??OOMPA-F16Arial Black-  Zϕ1 ?PL`  f*"    3 rԕ1?? ` b*  C x ؕ1??S` oSmalltalk\VisualWorks N  6@޽h? ? 3 OOMPA99period22   #   @ X (   L  c $?`  s * ?Q >L  c $?L` L  c $?@`PL  c $?P`  Z1 ?O8L  d*     ZD81 ?O8   f*"     Z1 ?OL`  h*$  B  031?gol$ 0 0 0L  c $?X5$  B胎1?c]&l$ 0 0 0 >next   Ngֳgֳ ?@@`h  T Click to edit Master title style! ! L   # _T   c $?T   c $?1L  c $?`B  031?hEl$ 0 0 0L  c $?U u*  B 1?b!@l$ 0 0 0 Dprevious  N  6@޽h? ? 3 0 `$(  $ $ 0̼ P    T*  $ 0L     V* d $ c $ ?X!   $ 0\Ď  @  RClick to edit Master text styles Second level Third level Fourth level Fifth level!    S $ 6ݎ `P   T*  $ 64 `   V* H $ 0޽h ? ̙33 dx(  d d  fX 1 ?P     X*  d  f0 1 ?     Z*   d # l 1 ?`P    X*  d # l 1 ?`    Z* H d 0޽h ? ̙33 0 9(   s *=L<$ 0  (xxhhaa3   f41?<]S /OOMPA 2D1359 & 2D1360 Frelsning 16: Smalltalk<0  0H  0@޽h ? .S33f77  p 0(   x  c $H   7`w   x  c $Syntax: http://www.cincom.com/smalltalk/tutorial/vwsyntax1.htmL    0>F  !  r "  S ~h1 ??@ :  #  S ~1 ))?? ?http://www.cincom.com/smalltalk/tutorial/weblogstatsprimers.htmP    0?H  0@޽h ?/@         ?7(  r  S a   7`w   r  S hb  x7`   8 v[ ir  S ~   07F v[   6 `v r   S ~,n 1 ??v[ : y   S ~41 ))??W3[ 9http://www.cincom.com/smalltalk/tutorial/weblogstats2.htm>   098 ` `N vo[  `Yr  S ~d1 ??v[ :    S ~1 ))??W3o[ ;http://www.cincom.com/smalltalk/tutorial/weblogstatstoc.htmP    0;  c 1 ))??An =http://www.cincom.com/smalltalk/tutorial2/weblogstatstoc2.htm>   0=KF vA   `r  S ~1 ??v[ :   S ~1 ))??W3A Gwhttp://www.cincom.com/smalltalk/tutorial2/weblogstats22.htm http://www.cincom.com/smalltalk/tutorial2/weblogstats23.htmT;   0; 0<wH  0@޽h ? 3  f^ (  H R  x  c $s   7`w     c $,{  x7`   $\B  S ~D1??-9S@"  # l 1 ??Aw9c i!existerande klass Blir superklass""""  # lx 1 ??` fNamn p den nya (sub-) klassenB  @ S ~D1?? !  C x0 GH&1 ??%`  y)Fungerar i VW5 ocks men nu finns ny mall**)B  s *@޽h ?        Y (  ~  s *   7`w     s *䘍  x7`   $\B  S ~D1??x p "  # l41 ??AB Pnamnrymd   "  # lġ1 ??Mo fNamn p den nya (sub-) klassenB  S ~D1??% qB   S ~D1??gw"   # l 1 ??In Yexisterande klassF  8   m r   S ~t 1 ?? dR :    S ~< 1 ))??3* 8 \Mer om Browsrar och hur man kodar: http://www.cincom.com/smalltalk/tutorial/weblogstats7.htmL#   0#\B  s *@޽h ?    ( >  x  c $L   7`w   x  c $<  7`       C x\ 1 ??! i? eSmalltalk defineClass: #MyCircle superclass: #{Core.Object} indexedType: #none private: false instanceVariableNames: 'center radius ' classInstanceVariableNames: '' imports: '' category: 'OOMPA'b  %  C xt 1 ??P&  Object subclass: #MyCircle instanceVariableNames: 'center radius ' classVariableNames: '' poolDictionaries: '' category: 'OOMPA'>  S ~č GH631 ?? QVW3  S ~ȍ GH631 ??   QVW5H  0@޽h ?/       3( $&  x  c $ύ   7`w     c $ђ x7`   @HvB  ND??P A vB  ND??- "  3 rŒ1 ??w A OKlass"  3 r1 ?? t T Meddelande   B  s *@޽h ?       & ( >  x  c $p   7`w   x  c $,  x7`   H       BCDE F @ 5% 8c8c     ?1 d0u0@Ty2 NP'p<'p@A)BCD|E?P`@  vB  ND?? vpvB  ND??: j vB  ND??    "  3 r 1 ?? v   j&Deklaration av tv temporra variabler'' '"  3 r1 ?? u  dTv nya instanser skapas"  3 r 1 ??E'  `Tilldelning (med :=)  B  s *@޽h ?   6. ( >  x  c $   7`w   x  c $  x7`   vB  ND??(  vB  ND??  p vB  ND??7 k "  3 r 1 ??e O  ]formell parameter  "  3 r 1 ?? 0 * jndra instansvariabeln"  3 r,1 ?? D/} ] Metodnamn   B  s *@޽h ?    0(   x  c $  7`w   x  c $h x7`  B  s *@޽h ?     D(   x  c $  7`w     c $ x7`  @HvB  @ ND?? k     W3f Ԕ??KommentarTimes New Roman_      W3f Ԕ??MottagareTimes New Roman x vB  ND?? )2 vB  ND?? <     W3f Ԕ??MeddelandeTimes New RomanR q w     W3f Ԕ??ArgumentTimes New Roman 6] vB  ND?? d vB  @ ND??3 | kvB  @ ND?? k B  s *@޽h ?   0 0( >  x  c $  7`w   x  c $h x7`  B  s *@޽h ? n  @ ( (  x  c $  7`w   x  c $ x7`  |B  TD)??s B  s *@޽h ?   P 0(   x  c $   7`w   x  c $  x7`   B  s *@޽h ?   ` 0(   x  c $   7`w   x  c $L  x7`   B  s *@޽h ? 4  p z(   x  c $   7`w   x  c $  x7`     s W ?f3 < P6?6.28 Arial Blackl } O d  < ??l A B  s *@޽h ?    _(   x  c $$   7`w   x  c $\%  x7`     Hl ??P <  inew | newCircle | newCircle := self basicNew. newCircle center: 0@0. newCircle radius: 1. ^newCirclejj                    pHH  H??   new ^self basicNew initialize   pHH   n W3f Ԕ??Eller om vi utnyttjar att initialize redan r skrivenTimes New Roman / B  s *@޽h ? 4   z(    x  c $V  7`w   x  c $W x7`    s W ?f3 < P6?6.28 Arial Black nd  < ??` B  s *@޽h ?    0(   x  c $8A   7`w   x  c $A  x7`   H  0@޽h ?    B(   x  c $   09H  0@޽h ?    0(   x  c $h   7`w   x  c $  x7`   H  0@޽h ? c     (   x  c $  7`w   x  c $l x7`  cF      r   S ~@1 ?? dR :    S ~\1 ))??3*  _http://www.cincom.com/smalltalk/tutorial/weblogstats8.htm Eller lite mer avancerat http://www.cincom.com/smalltalk/tutorial2/weblogstats213.htmT9    09" 0SH  0@޽h ?   0 Q( @  x  c $   7`w   x  c $y  x7`   F      ?r   S ~ 1 ?? dR :    S ~| 1 ))??3*  '(http://www.cincom.com/smalltalk/tutorial/weblogstats3.htm) http://www.cincom.com/smalltalk/tutorial/weblogstats4.htm (http://www.cincom.com/smalltalk/tutorial/weblogstats6.htm) http://www.cincom.com/smalltalk/tutorial/weblogstats8.htm http://www.cincom.com/smalltalk/tutorial2/weblogstats21.htm996    % 0:& 0<u' 0w( 0- 0'H  0@޽h ? {  +#@ (  x  c $@   7`w   x  c $  x7`   w8      dE$r  c л 1 ?? m  : 1  c 1 ))??<   uehttp://www.nada.kth.se/~bjorne/vw5doc/vwadg.pdf http://www.nada.kth.se/~bjorne/vw5doc/walkthrough.pdf. 0// 00eH  0@޽h ?   P0(   x  c $   7`w   x  c $  x7`   H  0@޽h ?   `0(  x  c $   7`w   x  c $h  x7`   H  0@޽h ?   p$0(  $x $ c $|   7`w   x $ c $8  x7`   H $ 0@޽h ? 3    $(   r   S    7`w   r   S Ȝ x7`  H   0@޽h ? 3 0 Pt (  tX t C $X!    t S $ @   "H t 0޽h ? ̙33$ 0  ,(   ^  S $X!     c $T$ @   " H  0޽h ? ̙33Y xFy=[{w0-BLo  BB 7K[轧$$.UfihiWoFh K|(GWR:Rۂ77G+YCه|n|7o 9| [÷o =|;w ;|{/|?D'>o?? aG ?>\dkܓQ,Gairg~ҟ}]i~ev }`ٛ:l`Oާ67(ϱc}yC{m,?KQ @5˿7~woǭKU3n9lbbuN|w?ēOޅgccg>|vq9?>|^| |a"E/_|i2e1|EJW_|MZ׆|]z7o |Sf[o |[v;'w |Wn{3>}'?>~`~p_O?~ |*Xq'Od-Tigτ~l9sχ_~b%K/_~|j5k~f-o~N]|:AC?IS?EK_7o߆}?s/_ //[g ߀7>|>ނo;^hx gls>|nԏ}cx<>ր~{o)2k<}iwm޽{I? O~ғ?ߜp J$M鐣\+D"H ѺI(mzD#k+0W+S2sӖ(yG-F]NuK%)塀)?E`+pT{?Ev`w[ꅧ_K=Z,N*XSf@ u7S0vs⫅:2qăYsdIg`}L݆f !tPEyXA'f͞alpTŃYenWV*^IZk1E9?()dc*LQBjιM< ̭&*nlXMuLΏp}L[n7])LZaoVEZ0E$SLQ0EIJ%)SLQjyo…)cêCy/:2?ʝ1U+G0+նMn`U<SE0fyШMP Z# QI~OFWDrVF-֙OJ9i{^+z<٘dذR+hqT (YiK$>Qf쇌@o:@& C[|ìU8 B[f>1 fA`ιd7 >g?-1`Z$mʙڧ)W&aB妟-ƍP. Mn&-,`׭/ i@f; L9Y!aSu\AW] ڲŧlK_7;wLO-G(IefG Yty->)f'l^շh f0$ՀP{.X޲[4}Ff  f,SF3yC#5Zmgl֟y3=D53C`RE,(%{TY~L30`HRf0Ml4S#7b"S`Ti%bX٬ fӷɴτ%#GSΒIr?fX̽ ro+{'N"L.5d>zIu;҂soEfv0+~k.KKQ^L>.tl"fdSΓIO~\2 Mf:%b(ٗΐ,' DL-'sW G?1cK0S"x,[`:}"sLSDk+0DLU塈ݔsd:S̥1+0^r\ܭ1GU_1Z$brmu&#1kq`bg1-29\0:J#f11`2d҈9|!<0MrD䂹(zfrswv"L-w"fC>\5}>f|l>ܣw~̎Y9_TnsvQGLӊJ& fl/}̱Y!0Mӽ~xMsVޝD ~ ~C:D%bh0uD}sҌłv{U5$bbIY0cc̑~2>u3q}#j`г*bf 1LG_,*o V.:U4*L32*#gd6{;? X`d.)w뗈9ܯLg81B^Lu -Erf@~c2xTiLMhEŞOY"f96=X٬?yMu?ZѠ6_0Gf5s(#fu2!VfSNzJrF&Ɋ3ΏIGW0 fK+_]`z]޷Egl_` 3R6/` IsUjRo)+0~֙Z}IYyP4m'9s9Jw̭\Z5bz-DCJ%)Sj0)JJ `Q fy~.`TW=yMν"ZUV ?[w+( %I7uMT IygɁs _:3+,$erřϛU䜛&3qPJA2s9-C;ZyY黂9}GɬEӐdm7lN/*Hq\pctFXv7DMnOff}HI"`6e9ޤ~~~.e-!UPL+;`ssOj7 6%K+T:Ǖ(4.\.YQkR:ru:I)'EML)Wx)E IC.VZ^`2 )fIF9bS1:+.#UXA圕(a!~lxFH~9>>xPA)jB`]u[jݣENsp,,EzUK\''6ʚ`}(th:x՚00)`a(I $%`)JR(I $%`)JRS3?lj:&Z=aF8 {( LSU9`"Q`VGn{w`kdNa4K=60CO }&0r>faa$^j .)ȍܦ )0W!yO,`& yO &.bu;^Ń&`% 3&K:LـiS iVNkU>mEyXA̦ ӜuZoS (̺5_c0(d[BLD%$U&{9 V0\"Nt\.*t vvk[-Mysny0܏͹M^48i LvG`ArUrg3O`ZqZ;w])Laodp0]ɣYk`zDsj`V;D6rum`v.]]akֶ`YWnFn I6s! C&`.zoqֶ&`6D~ڛX;Vl/قE_@mm| Tus{fٹv3Ct\ĵ Bysٺ E{BX{TÀ6hVluV *Ǜo[ *\mvQڛ'UB09xdʔ:5cW^4u5ʉ?lC6DoWutyj0ŃW|,Ӵ5 *`Z%`z+6 |0m omw5sjk fsR*0͹L25&S):Olmx`[X0)7sf֚7J@L(YdWNߣ<+#[ ]r{gZM^!D$9NRr̡sm+1hYKubf`l>ߣJa0'@a)c0ӫL7ZPfV fI.OS3?`yN)g_@e3{~TY|&%zmo`k(05-,<"`6 ?I;0[knkI廢6VJ ;n!s_o4y5=26>S<|m`}L Yk%ͷ7ߩ;V4e&H]`*{2puNM^Kd0Jl|ٸ; |}tB`֓~`Y]nmvMKPO0hh֖K$M]$f$_LkJtӿ\QVݎodb0bS!L*F9 VGJ ۿt7id Dndit/-)Vi>"݃:h`SnTnĺxwڜ+Bg꬚ zS6Yy11۶;?0[%y-9KM4o=t @s.s@漵`ZǁCIiSp#PӓV۸Y`=D-ZgqvUC`.3 ?1(ι$GMA#_>v]%)uH!bẶ+0 J!7s|1_u]Qe%Hq Cn4Y,0uhQLe_ulC4`zksL!LCo楋oI68XR0sELfŽB]#`WfC},[x(-`Z_Mn:Fu8gm#fu `GyEב̂P*0W*NjEц+c>Ӯy?$m w3Ȣ9J 05Vӝ-0{=xV|Q󵕅_9Y}^NV |k掘?$K_d%ٵ2s9z^M ;A0wB`\%~{+z&CSiK.`y$}-Xs̟uINy_K\TZx{YC&``ka0Ri.T`N,!y0FZ*q`vq*`z?mSgJLz}{Y U`_g4E0gĺL 9xLK:c_'֚m\1޸;?k1 fQ `ּm1;%]0ӈwk1ILLv̚\^L Lr=I }L"tT.t?$OIF‚i[PL 5q㩮pr*U:3'?ಔāAZzq[.VTsig%!)tB*e LvM*fa1Z0E+3|p-F5o̤0 f20ޥ&J`OfZZ_0EIK%)SLQ0EIJ%)SLQ0EIJ%)SLW+O?S$X1yZwٽ.eLWsRE0_[$[wLW+̀ մ~ҝ"MR1P+)y 3j*Qn=g]z vWKeC&/s|uDRf9Z$5MU Ք,tyAj jx]lZ0y)zB9GSz`N)Ⱦ9tg8巭*a`{ZnN Ǚ͎-Y fI杙#iFL'Mwk&+1&;+0`ƒ)Iw09{9rN)KS93jV109y`Sf(Cȟwrka-o9+ك8+g7 {=!sJ S҄6N&q(I $%`)JRm`nOKfNj؉II-`NMfN 9= I\XE*0TSx0')LeR`Q a`6Zf|3VK`-C0> Y'$9B`zӔwi0GTU7Kg XҔ'07=JbrMyV~"zX-S`Wbj8̢_,`0ɍb`.hw7]E9& fݎxnU6]-U]`}L YVz]6$`Eݰռ#ռc¬) /[M-D FI|\3#u_. iȴc$Ev0sR墢id@)g'(J#݃ɏ(ZCY}JI(I Q0EIj R>Z!JZ-`zՖ-3'ypZ0sR+d-3'[Mӕ)JR(I $%`)JR(IŁR߯ZQ̜jA"z3[ 塕0sR4\`TSdE1z(30ĊILd{*UWVB23'E-  +{i-1tWWD^6Ū)vQ8̐ ,rܔ:N͵RŃPL\BQj9Q*:gSEeu"jE5^~q&#ɥ҃,UסtL9%؈鶗QTL+cc2*MH|bӒL:{깴B2_TNC?JM't $%`)JR(I+o e"2 9)v̜ߔ`*&MO!ASɎ`AW^<SfN I(ȯأ* S>VfN Uci@ f5Q;=0E=PؾL}ISLrDe-$iǗc*}i|sr!Sɏ CߒdP@SIs/\LfN~S_5̜E]2M TLQ"!0Eh{gWkS")JF(IŁ J03rSYr)`Qݔ\/31yII(I<+ou&jEyhgh "汢L5c:`Ej1Ej`nrdq(Qޚ)9M+sT 0G+sT 0G+sT 0G+sT-f}E0š9 ja0+o^_ !sT-)7 *odT9"i#4yASFLL_ `*jӐ9fD:l*՞/' *I5g%`"~'``zWE9z樚^~˒Q%$c%`*3V0c%`*3V0c%`*3V0c%`*3V0c%`*3V0c%`yTΔ.7%7%#HU ,@3V #_?7N)- j0usAKQI$`JGAt9(#$4 fӣ8QLSh^z^FL+cM@0Z;Ns`2b91WN;9Z8`*OZQSU I;**>!I\bIF}Vεu(Qd.IG樒[0G+sT 0G+sT 0G+sT 0G+sT 0GF0ć%`j{HZfwv6̡%` `)`.3V0c%`*3V%9XUR^f\IS>XIsT 0G+sTU`ni$`cEAcS_氚)K0疀96DJPJ4V}D"јZnT7TQwS7R'xT|J򇇗onYDz䙭uto"? cS?~"$' ?oO?~&wgρ ?~>/_ ~9 Wï_ ~=7o~+6;w ~/>? (1'OŸ? ,9/_ *5?߀  6?1ÿ}V_ //[û #=||FxށGû>L~| |,|>3|g>>'s >?|/ _(|<|1%K—/ _,|9?_ 2|׀ _ ׁ _>|7o 9| [÷o =|;w ;|{/|?D' 9_?K)GÏO ?~<࿂ 5o࿅ ? ~: ς ?~.< /_ ~)2+W¯O_ ~-:7o { ~7O?0ß?  4_ 2&-w߃!#O?%+_7 ;!X ހ7>|>ނo;^hx gls>|n~h1c?~Wῆ SO?;Yυ?~BE/_~JUi_~FM~v;w~~?q'O?y /_uo߄]{? 9 Fu(Pu_rl] +D6'֝uTaꌛxf1 T~:ѧ}cՠْSCūSN OUvz߻߇Î(w/R'$'=Y}ӟSxFp tE"рEKnVRe8Z0 W{ ^{9ehWY7fiOYQRƖx-ϟE2,NO} [D"+G4V}'jP%lM?7$l.(as06W&YJPU?8 as@63){[E I'as< $l'a{ǓOI'F$l7ǓOx6IOf?ɯ'aUǓO{IF6i{X=XVf? I'as< $l'a$l9~6ǓOx6IOTj﫚ɷYї$_RL:6S(]6 IJEJUBRL26ӜlztTJ?溪g#%?[-& iqpZش(_L6ӼlrJ`NkSeiNz֚ ik ˪{Uɢ[~w*lՈ׍0ieƧ&as<=~6ǓOx6IOf? I'as< $l'a$l9~6ǓOx6IOF9w\,%l R3̜6ӒؤK]6 2^xYF ejиY:c*GPOKcz&JTIGxZ<=M%le^ߤO E$6kHA5aS47;O IY9~6ǓOx6IOf? I'as< $l'a4]6(olfƖ(gMbC:t%a3kuM'[QM<l+DiP7̋|TmӶ(lŰܜuj{gw)JI}<]EQXI5JM(lSfyIh4]E7')nt%lR)JU`SK"aSczLBSܦj{ѨlVq%l$MQ`-fT 9ilধb٬ϕS37ܕk&** B͜7KpoBJKIm^z5$[MQz71ŦUG 5V642 <]bz"6p b0 =96EM;X6G4Wv*$lfM+p+lb}S_ZE~wהl+BSJHFSܦJ*aSMQ6EJ*aSMQg}6sq]ͅԆf"as1u%l."a3(3 p]V:6!kL] !Tt&#Wh&aM6i?%UQ62_$Ct|:ӿ$5rc2Zy^ >S])Xyyc٬J ّN؜[WTvۼtBJ6`ȸ5jMgozjwj>695.R-s6Ka=Vnn&tN1Fsid5~(HkJdA>Ƴ^nQ]s8fY/6 cfk:QeafA/5-na+K8~Db?2 *).쌔M |Uxz)vQ82oӭUݢ(:i+(AyIV(;):O Vyy( .N m 㕻<2fN]],u4 T lԢle]،Vı7a3'=KQ6EJ*aSMQ6EJN6'%a3'u9- 9͉IIlNNfFjgsV6sRnUӵ͜$lRU7L&IQfN6EMű9#ǫ\)ll: %lN6U++o*lyfeSR٭UsY,٬?_)lL76}kKtѼZM}.υ$l6k8[丯7-a3'ŰSʠM)Zz]C6E#jBͦm%#Q)kstZ6ʹcɗoTWo,/m2d(ۍśO7@4֝V jcsz'M+9Z؜s)lDa6@خT>r"4֚M攽8?=#6l7+'YA4lfpw͜fs'C6)JUlz.a3'y$lv6nOKfN`sbq5Y T%lR)JU46' m91Mh̀fџd(ͧ;@9e~vf5u :nۣ ?̀<6xܑ W;e4'_g^؈2ك2NVy/X6CR_=9z;آp.MkF߶6ε_fHpd z^Z!yg&HlZ`Icmym ``LsH J{swϸ$6VOٴ7޼ֵSfPzCmv $5KC4)(oa_&dO^[?Ͱ3kv_B4IsKkab&]Oy̪*v])dR@sHdd/_[$[e/l26]/l2S\5 VLeJ(l$7j6EJ*aSMQ6EJ*aSMQ6EJfGw,^dh1=$l*%eQ\Ma3U-Ħ>\%l$5/T$lLV %L򠶞kɹP[.VT]lz`? HX$D㦬šXi~ ’]^SM.6}KQw2ք,'*Y\fNif2}S 92lUrII㲩Ȥ( ﮋ,iϡMQZNԝI`,ME:416TfybS龟~*Mm+&4ٲBTx6 <ݼv@EsyzPNhR6sRݦ^mzM+wNUi͜ԧN MVܤ`ؤٗƦ)HIش܀X6}D%ur]e!.l2z)S¦(U+4qֶlT5ƍZZ9F9>ָ7jm梚98`N@N P(v*_۸6ըlF_F5V5UP;EY3X$,3Dks Z-K*a +#lz Sr֫MqcC k" [[Jl}[daVJ[l[&bR艽[nVXL|dƵx\lݸ4Ei864k]dS3d0;ОkWJ 'p w*;%TU{̱鼳*6rڸv6Pvo Y*j2/E%;M=cp4kf-mI${J*"hYO 4hSN s$ٖU&l,ᔅVO M& mҭM>~Va6Ql{:"lz tnzgyVbԱ(٭ YRn^v'VvM:+&W f`}m6D6-ڸٌ#Gٱ'CUM}\dH)Q$PJ)Ȳ+c`{Ht`% f9OYov@ܴ7nh6ڢٴ>fK%$-%kU$U,ȑ΅,4[FC7S@9 KK\6wfӮ-ͰLR )M_v{=~\zGKqאxfR1llPaS@Dz\l 9*׃㣨j=6w77g67K@b h)gZ s游/qcs Y0%6G$l'as1 I\Lp69=~S'׋`S_76nXZGLr9<~)#6&mՂ.f!on.6C[l9<~3́fnրY^ D\(6sv6C[ն"Ű;x4-ya,JКm!ffADQs;뼖ޮRTtQl+ ֚m\QѮ شB 4 oæfzN(͇Іi업016=,Kٰ'יM}&f^M%LrgtYd,h^lF)7-I6-0¦ $LyP6-M3/B)@Yklybuiw`6N ^ޕԽc\M^Owu,yiBEjlkerds"ZMU:[{2aM{*s@NZ!fUB$lElzKXKxcأWQءH] f? <~s>lU8e[]ZMEW"جX9Gfsg|m撴TwlkTb3aʴll`s *fl:+\X%l8#8O7Һ E-;O׷mxv|f{myzCҒo6;`i-Ik+H\:ٜ<~S\!SӲRE<֮zW؜k[=MO[yK\6b6ݕ[5\ J\myW+#7Y6OjQ,sʄMqi*TJ묭M+DzbT+K*5X6-6as ؜iyl[Zgml*y5}LfFO`cCՉW)¦LpaO,͢&[=KzF5mΪpoVFk =ղcSY&<&pai%sI-jܭlPMBm?i #n6]6u(Z9*Xl6ބg͂\f y_:J>[oJW6E<'6IMV@2%IͰ_f)bԍ~)t&Ϧqjӷn  㦕c3t:iY#6&?&+&C͢=TV.wvٌC(n9lþdx6<]E|Z)I~3`mb>O窣=5~f|m4E^l݆)eЦ1;6+nmo D.6-TԴ7MG¦~W0I #l򵵳Iu3g97YݸًM4|(6y-NLblZ5\ 2ߨՍ\)lZ[;[,lfQ[S9/8;4[6#6i KV^vvhllkds|&cٜM9Iߝ`ɐeGAe!V;w+M׉dt ]{E-#^fQIgӰwRj6.Ϧ3ل&·MA67oPM$d4gLcfPLĭlzYZ++|"i7߷ 髾3x6S]l)*Uuh+'nt:fR QlUn#nڵy:e;F<ܶw`KE rJfa.P{ԶNl/1C,hNkNz \sifyij<;_M:0,MMEu$3֒:J> '贴1-n+޶Ī̓e9}zM;X3W ,7QYeFds ]fF˦6_۠lֈzVh8{?mX׺s=䪋<̫=k[6Rqّ[imDsڄE%lU͡j[6vVu&TJk[ 6MUֶl)Vgsr'h-tPMFfg˕bm$\P67ƱC`DS=|^!8 l:kfin|c=-[+61ȫfSfSyll_Z?{"F<5jiCzɷ(û\"NlΰYbYFllZMzD4l&]fXlf"i"ߦ#mz٬fHEily˭&ת~ڒɨi\ȒSE%MFay6Ϧ ivF|#S,4Śv_H4#둄C=6EcH1IHd$dd-aS&Φ(cMMQ֚2"KQlp5)JU¦(U T%lR)JU¦(U T%lR)JUy#Q $g Z9̦yasjp5?_PdQa%Ej Euq~=ZWr*0+ Zf*f]PޤfN ϦO)]XX zr2n-Ml>KΦL5 69ѷ!?YhvzPzL2lEz#d75UMMeYMEc2_R;̦Ç_ז)l\-l)TR{T\:q ͪN6ras|lV=6&[v˕|~~.e-pAcجw]%MvNRbo M0=Qj 9yBN/*Hq"feSI t{S$HM}o{M?YJeZOyĔ,Gk& Q*znzRMmGi%m+2MкWM*i{uKο6 ,gIjBIVd.I*aSMQ6EJ*aSMQ6Iy0a3M iy0a3M a ϲG ȳlJezo쩵*TP,CYa,l)y-g^Xg٢dGR,[Άmw6fSSմؔg0U,2ʖ͎Yا<OSEe+C;ίlXkymM/Wih6Mnw3N {դwϲѩ}?;MM$lRUf2TMaS6]I.JM*aSfS4eMM[;;͡?LIշhV]Vߢ3Rvln ۲rWշh J2Y͝pRjr(t[/o}HǦbsRg l:{{ǟ4U`0}[+wTgT{X6/M]Ǿ=Y{x6:#w5>u&I܍eHųY ڝ@aso[Hc'7uа9 Uzݲ[q.d@qSٴl: c'V{7:pv6ج;MܚB)5v4YD-7ش믶FIܯ4ElD+˦R$J}6RfmU9lU*Ȧ~ܜH6(zd*n5hTlhĵ%qq)mx<^"l:hZ]N&nx6';nj4ymzyRvE38⦅IJ%Ne';n :Mf}MŦPJM뛛l&7swEԉU7+6ekV}4'wijΦ9O?Mp(M(JG}U&laߤhJsTlnVlŦ74^8n{lIMMcgSe nhf6NTM e)͵%Yտ+qst`jglr7qh q(*n6,qsdlY Qg64nh.,?^eiWTQ}.$qs,doN&eokiTج/Ul{]_C9Bl9c=8l/mF,}-74z9 \߬ō-6GkgRItTnPttzoal֯[ ן2Y͎g2TWmbz-dCн*)Ʀh$lRUlV[eO$.`us.4o*O6V>U̕MUUe@𷪎~d!M,T_U҄*]ȭ7l&azVlB57n;4E0XzB٤y:[dIi lT$uqh!KjekJr"09fjml&dO l`D>)\9ѮSt Gl16ʄe=Oomc@ÒrlbMȸ6\I|n!lL~4[%m\Y$tB:nMJH:r6fԪL\9諶mr0m*}^QZعSln9n…yEyl;;2c|eVlA¦(U T%lR)JU¦(U TD?j1ʏMwѪ[¦(Umn)dl@!l 5;$*B!èO#cQ(_VgyӤjQo갭*CqBl66=M2I#H<5jiCkl2qscCG5msaŶ %%Y֖9I6uojtF!FqesrٴF7Ք~ aN%l#MR HU+M"G6P~ZBUwQ2¦h 9Wnu)JU9)Z/eĦhݔ "Q6E loСÔ(^l-qrI*?S gyv0*#}z@80 R D"J*<,.025;/?'A1P)R!TVX]_dlqs?{@u{wOh+'0$ px  $ 0 < HT\ OOMPA 2001bjorne0?F:\Program Files\Microsoft Office\Templates\OOMPA99period2.potbjorner1001erMicrosoft PowerPointoso@X@6*@$&@QeGy  X g& &&#TNPP2OMi & TNPP &&TNPP    --- !------ !------ !---qw@S LSwUSw0- --- !------ !@n------ !---&/& &1& &3-3- $--&--- !------- @Times New RomanLSwUSw0- . 2 next.&--- !------ !C}---&--- !---&73-3- $) )2--&--- !)-----,--  .2 <previous.--r-- @Times New RomanLSwUSw0- .2 Innehll  .@Times New RomanLSwUSw0- .2 Smalltalk   .@Times New RomanLSwUSw0- .@2 &En introduktion till sprket Smalltalk          . .g2 G@Historik, syntax, meddelanden, grundlggande klasser, styrstruk                . .2 G'turer  . .12 oKlassdefinition (med instans      . . 2 o-. .$2 ooch klassvariabler)     . .2 Metoderl  . .2 konstruktrer     . . 2 Kort . . 2 -. .g2 @kort om Smalltalk (nio sidor som sammanfattar Smalltalk, i slute                      . .2 2t av  . .2 anteckningarna)    .--1-- @BComic Sans MS LSwUSw0- .'2 [OOMPA 2D1359 & 2D1360 ".@BComic Sans MS LSwUSw0- .-2 VFrelsning 16: Smalltalk   .--"System 0-&TNPP &՜.+,D՜.+,     A4 Paper (210x297 mm)iKTH1)y# +Times New RomanArialComic Sans MS Courier NewCourier HelveticaOOMPA99period2!Microsoft Photo Editor 3.0 PhotoPowerPoint Presentation HistorikSmalltalk var en visionI Smalltalk r allt objekt#I VisualWorks anvnder man verktygDefiniera klass (VW3)Definiera klass (VW5)"Exempel: klassdefinition MyCircleInstansiera klassTemporr variabel ndra en instansvariabels vrdeLsa instansvariabel MeddelandeAndra metoder n inspektorerAnropa annan metod i klassenReflektion: inspektorerInitiala vrden fr objektForts (initieringsmetod)Forts (ndra konstruktor)Vi testar MyCircle VisualWorks,Arkitektur VisualWorks, VM, image och filerFortsFr- och nackdelar med en VMFortsStarta VisualWorksKonstruera klass i VW Prva kod Spara kod Lsa in kod Spara imageStarta egen imageFrdefinierade klasserSUnitVi gr lab 2 ocks  Fonts UsedDesign TemplateEmbedded OLE Servers Slide Titles#4  8@ _PID_HLINKSA x7http://www.cincom.com/smalltalk/tutorial/vwsyntax1.htm8http://www.cincom.com/smalltalk/tutorial/vwbrowser1.htm<http://www.cincom.com/smalltalk/tutorial/weblogstatstoc.htm:http://www.cincom.com/smalltalk/tutorial/weblogstats2.htm>http://www.cincom.com/smalltalk/tutorial2/weblogstatstoc2.htm<http://www.cincom.com/smalltalk/tutorial2/weblogstats22.htm<http://www.cincom.com/smalltalk/tutorial2/weblogstats23.htm@http://www.cincom.com/smalltalk/tutorial/weblogstatsprimers.htm:http://www.cincom.com/smalltalk/tutorial/weblogstats7.htm:http://www.cincom.com/smalltalk/tutorial/weblogstats7.htm:http://www.cincom.com/smalltalk/tutorial/weblogstats8.htm=http://www.cincom.com/smalltalk/tutorial2/weblogstats213.htm:http://www.cincom.com/smalltalk/tutorial/weblogstats3.htm:http://www.cincom.com/smalltalk/tutorial/weblogstats4.htm:http://www.cincom.com/smalltalk/tutorial/weblogstats6.htm:http://www.cincom.com/smalltalk/tutorial/weblogstats8.htm<http://www.cincom.com/smalltalk/tutorial2/weblogstats21.htm0http://www.nada.kth.se/~bjorne/vw5doc/vwadg.pdf6http://www.nada.kth.se/~bjorne/vw5doc/walkthrough.pdf307,26,Starta VisualWorks_ bjornebjorne  !"#$%&'(*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      "#$%&'()*,-./0127Root EntrydO)PictureszQCurrent User+SummaryInformation(TPowerPoint Document()DocumentSummaryInformation8!