\setlength{\unitlength}{0.01cm} \hspace{-2cm}\b{tabular}[t]{r @{\hspace{0.1cm}}p{11.5cm}} & \b{picture}(950,400)(-20,0) \nop{ \put(100,300){ \oval(300,200) } \put(200,420){\line(5,2){150} } \put(-60,260){ \makebox(300,200){ constructor } } } \put(660,-100){ \makebox(50,500){ \b{tabular}[b]{|r|r@{\hspace{0.1cm}}p{2.0cm}|} \multicolumn{3}{|c|}{\x {\bf object {M counter M} } } \\ \hline \hline {M instance variable M} & n & \\ \cline{2-3} {M methods M} & initialize <- & n \assignsym 0. \\ %%\cline{2-3} \cline{2-3} \x & increment <- & n \assignsym n + 1. \\ \x & value <- & result n. \\ \nop{ \multicolumn{3}{|c|}{ {M state information M} } \\ \hline {M accept list M} & \multicolumn{2}{p{3.5cm}|}{ ctr } \\ \hline {M accept queue M} & \multicolumn{2}{p{3.5cm}|}{ empty } \\ \hline {M process stack M} & \multicolumn{2}{p{3.5cm}|}{ empty } \\ \hline {M locked M} & \multicolumn{2}{p{3.5cm}|}{ true } \\ \hline } \e{tabular} } } \e{picture} \\ \\ \nop{ \it explanation & \multicolumn{1}{p{12.5cm}}{ \small When an instance of an object is created, a copy is made of the object declared in the program. Each instance has its own non-logical (instance) variables. For active objects a constructor process is started evaluating the constructor, in this case the goal ctr(). Since the accept list is initially set to accept a method with the name of the object, the constructor goal will be the first goal that is accepted. Other goals will then be put in the accept queue to await a proper accept statement. } \\ %%\cline{2-2} } \e{tabular}