Inner classes: Difference between revisions
Content added Content deleted
m (julia example) |
(J) |
||
Line 165: | Line 165: | ||
</pre> |
</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}}== |
=={{header|Julia}}== |