I came across this questions on one of the online Java Tests. The options were 4,5,8 and any number of times.
I have only used one inner class, but have never tried multiple ones. I was wondering if anyone knows the answer.
Nested classes that are declared static are called static nested classes. A nested class is a member of its enclosing class. Non-static nested classes (inner classes) have access to other members of the enclosing class, even if they are declared private.
There are basically four types of inner classes in java.
There are two types of nested classes non-static and static nested classes. The non-static nested classes are also known as inner classes.
It's a completely irrelevant question and I hope they weren't using the results for anything important. I guess the answer they were looking for was 'any number of times' but in practice there will be a limit in any given implementation of Java. If it's not defined directly it will be determined by something like the maximum file size, or some other (possibly undocumented) internal limit. The best way to find out is to try it.
Update: 30 works, but 300 gives this error:
A.java:3: error while writing B0.B1.B2.B3.B4.B5.B6.B7.B8.B9.B10.B11.B12.B13.B14.
B15.B16.B17.B18.B19.B20.B21.B22.B23.B24.B25.B26.B27.B28.B29.B30.B31.B32.B33.B34.
B35.B36.B37.B38.B39.B40.B41.B42.B43.B44.B45.B46.B47.B48.B49.B50.B51.B52.B53.B54.
B55.B56.B57.B58.B59.B60.B61.B62.B63.B64.B65.B66.B67.B68.B69.B70.B71.B72.B73.B74.
B75.B76.B77.B78.B79.B80.B81.B82.B83.B84.B85.B86.B87.B88.B89.B90.B91.B92.B93.B94.
B95.B96.B97.B98.B99.B100.B101.B102.B103.B104.B105.B106.B107.B108.B109.B110.B111.
B112.B113.B114.B115.B116.B117.B118.B119.B120.B121.B122.B123.B124.B125.B126.B127.
B128.B129.B130.B131.B132.B133.B134.B135.B136.B137.B138.B139.B140.B141.B142.B143.
B144.B145.B146.B147.B148.B149.B150.B151.B152.B153.B154.B155.B156.B157.B158.B159.
B160.B161.B162.B163.B164.B165.B166.B167.B168.B169.B170.B171.B172.B173.B174.B175.
B176.B177.B178.B179.B180.B181.B182.B183.B184.B185.B186.B187.B188.B189.B190.B191.
B192.B193.B194.B195.B196.B197.B198.B199.B200.B201.B202.B203.B204.B205.B206.B207.
B208.B209.B210.B211.B212.B213.B214.B215.B216.B217.B218.B219.B220.B221.B222.B223.
B224.B225.B226.B227.B228.B229.B230.B231.B232.B233.B234.B235.B236.B237.B238.B239.
B240.B241.B242.B243.B244.B245.B246.B247.B248.B249.B250.B251.B252.B253.B254.B255.
B256.B257.B258.B259.B260.B261.B262.B263.B264.B265.B266.B267.B268.B269.B270.B271.
B272.B273.B274.B275.B276.B277.B278.B279.B280.B281.B282.B283.B284.B285.B286.B287.
B288.B289.B290.B291.B292.B293.B294.B295.B296.B297.B298.B299: B0$B1$B2$B3$B4$B5$B
6$B7$B8$B9$B10$B11$B12$B13$B14$B15$B16$B17$B18$B19$B20$B21$B22$B23$B24$B25$B26$B
27$B28$B29$B30$B31$B32$B33$B34$B35$B36$B37$B38$B39$B40$B41$B42$B43$B44$B45$B46$B
47$B48$B49$B50$B51$B52$B53$B54$B55$B56$B57$B58$B59$B60$B61$B62$B63$B64$B65$B66$B
67$B68$B69$B70$B71$B72$B73$B74$B75$B76$B77$B78$B79$B80$B81$B82$B83$B84$B85$B86$B
87$B88$B89$B90$B91$B92$B93$B94$B95$B96$B97$B98$B99$B100$B101$B102$B103$B104$B105
$B106$B107$B108$B109$B110$B111$B112$B113$B114$B115$B116$B117$B118$B119$B120$B121
$B122$B123$B124$B125$B126$B127$B128$B129$B130$B131$B132$B133$B134$B135$B136$B137
$B138$B139$B140$B141$B142$B143$B144$B145$B146$B147$B148$B149$B150$B151$B152$B153
$B154$B155$B156$B157$B158$B159$B160$B161$B162$B163$B164$B165$B166$B167$B168$B169
$B170$B171$B172$B173$B174$B175$B176$B177$B178$B179$B180$B181$B182$B183$B184$B185
$B186$B187$B188$B189$B190$B191$B192$B193$B194$B195$B196$B197$B198$B199$B200$B201
$B202$B203$B204$B205$B206$B207$B208$B209$B210$B211$B212$B213$B214$B215$B216$B217
$B218$B219$B220$B221$B222$B223$B224$B225$B226$B227$B228$B229$B230$B231$B232$B233
$B234$B235$B236$B237$B238$B239$B240$B241$B242$B243$B244$B245$B246$B247$B248$B249
$B250$B251$B252$B253$B254$B255$B256$B257$B258$B259$B260$B261$B262$B263$B264$B265
$B266$B267$B268$B269$B270$B271$B272$B273$B274$B275$B276$B277$B278$B279$B280$B281
$B282$B283$B284$B285$B286$B287$B288$B289$B290$B291$B292$B293$B294$B295$B296$B297
$B298$B299.class (The filename, directory name, or volume label syntax is incorr
ect)
Code used to generate source (written in Python):
n = input()
print "class A{public static void main(String[] a){}}\n"
print ''.join("class B%d{" % x for x in range(n)) + '}' * n
Disappointing. I was actually hoping it would be a lot more. I wonder if it could get much further on another system which allows longer filenames.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With