Jump to content

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}}==
6,962

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.