Inner classes: Difference between revisions
J
m (julia example) |
(J) |
||
Line 165:
</pre>
=={{header|J}}==
J allows inner classes, but because such classes are always public,
there is little or no utility to be had nesting classes in J.
Class definition for task:
<syntaxhighlight lang=J>coclass 'baggagecheck'
create=: {{
data=: keys=: i.0
mysn=: '' conew 'serialnumber'
}}
create_serialnumber_=: {{number=: 0}}
destroy_serialnunber_=: codestroy
get_serialnumber_=: {{number=: 1+number}}
destroy=: {{
destroy__mysn ''
codestroy ''
}}
checkin=: {{
sn=.get__mysn''
data=: data,<y
keys=: keys,sn
sn
}}
checkout=: {{
r=.>(keys i. y){data
b=. keys~:y
data=: b#data
keys=: b#keys
r
}}</syntaxhighlight>
Example use:
<syntaxhighlight lang=J> checker=: '' conew 'baggagecheck'
checkin__checker 'suitcase'
1
checkin__checker 'box'
2
checkin__checker 'bicycle'
3
checkout__checker 2
box
</syntaxhighlight>
=={{header|Julia}}==
|