<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From: </span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Joseph Alotta<br><b>Sent:</b> Thursday, May 26, 2016 3:02 PM<br><br><o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'><br>&gt; On May 26, 2016, at 8:29 AM, Ron Teitelbaum [via Smalltalk] &lt;<a href="/user/SendEmail.jtp?type=node&amp;node=4897621&amp;i=0" target="_top">[hidden email]</a>&gt; wrote: <br>&gt; <br>&gt; One more question for you. &nbsp;I mentioned returning a newly created instance or a specific class from a class side method. &nbsp;Can you name another reason why you would write a method on the class side? &nbsp; <br><br>When you want the class as a whole to do something. &nbsp;When there is only one instance of an object and other is not desirable or logical. <br><br>For example, one compiler: two is not practical. &nbsp;One instance of the number Pi. &nbsp;One instance of Nil. Why would you need another? &nbsp; <span style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:12.0pt'><b><i><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>[Ron Teitelbaum] if there is one instance you would still write methods on the instance side.  But yes having a class side method that provides your single instance makes sense.</span></i></b><br><br>&gt; Why would it be a good idea to put a method on the class side instead of the instance side? &nbsp;(a hint for you, I’m thinking of something where nothing is returned. (of course in Smalltalk if nothing is returned you get back self, what I mean is that nothing useful is returned)) Bonus points for 2 or more answers with or without returning <br>&gt; something J. <br><br>You would put a method on the class side when the method applies to all instances of the class. &nbsp;For example, Window closeAllWindows. &nbsp;Or Process stopAllProcesses. &nbsp; Or Smalltalk saveImage. <br><br>I don’t think this is what you had in mind, though. <span style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:12.0pt'><b><i><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>[Ron Teitelbaum] This was exactly what I had in mind.  When you have a method that does something to all instances or is needed to find a specific instance it makes sense to implement that as a class side method.<o:p></o:p></span></i></b></p><p class=MsoNormal style='margin-bottom:12.0pt'><b><i><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Extra credit: Why would you use a class variable?  We know that an instance variable is used to store data within the context of an instance.  Why would you want to store data in the context of a class? <o:p></o:p></span></i></b></p><p class=MsoNormal style='margin-bottom:12.0pt'><span style='color:#1F497D'>All the best,<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:12.0pt'><span style='color:#1F497D'>Ron Teitelbaum</span><br><br>Sincerely, <br><br>Joe. <br><br><br><b><i><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></i></b></p><div class=MsoNormal><hr size=3 width=300 style='width:2.5in' align=left></div><p class=MsoNormal>View this message in context: <a href="http://forum.world.st/FileDirectory-tp4897377p4897621.html">Re: FileDirectory</a><br>Sent from the <a href="http://forum.world.st/Squeak-Beginners-f107673.html">Squeak - Beginners mailing list archive</a> at Nabble.com.<o:p></o:p></p></div></div></body></html>