// Ċ // ĠCopyright Ġ 2 0 1 8 ĠV in ic ius ĠJ orge ĠV end ram ini Ċ // Ċ // ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ // Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ // ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ // Ċ // Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ // Ċ // ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ // Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ // ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ // ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ // Ġlimitations Ġunder Ġthe ĠLicense . Ċ // Ċ internal Ġopen Ġclass ĠBox Ġ{ Ċ ĉ open Ġvar Ġa : ĠInt Ġ= Ġ 5 Ċ ĉ open Ġvar Ġb : ĠString Ċĉ ĉ get () Ġ{ Ċĉĉ ĉ return Ġ" get Ġb " Ċĉ ĉ } Ċĉ ĉ set ( newValue ) Ġ{ Ċĉĉ ĉ println (" set Ġb ") Ċĉ ĉ } Ċ ĉ open Ġvar Ġc : ĠInt ? Ġ= Ġnull ĊĊ ĉ open Ġfun Ġreturn Five (): ĠInt Ġ{ Ċĉ ĉ return Ġa Ċ ĉ } ĊĊ ĉ open Ġfun Ġreturn Int ( a : ĠInt ): ĠInt Ġ{ Ċĉ ĉ return Ġa Ċ ĉ } Ċ } Ċ Ċ internal Ġopen Ġclass ĠA Ġ{ Ċ ĉ open Ġclass ĠB Ġ{ Ċ ĉ } ĊĊ ĉ val Ġb : ĠB Ġ= ĠB () Ċ } Ċ Ċ internal Ġopen Ġclass ĠC Ġ{ Ċ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ fun Ġa (): ĠC Ġ{ Ċĉĉ ĉ return ĠC () Ċĉ ĉ } ĊĊĉ ĉ fun Ġc (): ĠC ? Ġ{ Ċĉĉ ĉ return ĠC () Ċĉ ĉ } ĊĊĉ ĉ fun Ġd (): ĠC ? Ġ{ Ċĉĉ ĉ return Ġnull Ċĉ ĉ } ĊĊĉ ĉ fun Ġf (): ĠInt Ġ{ Ċĉĉ ĉ return Ġ 1 Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ open Ġvar Ġx : ĠInt Ġ= Ġ 0 ĊĊ ĉ open Ġfun Ġb (): ĠC Ġ{ Ċĉ ĉ return ĠC () Ċ ĉ } ĊĊ ĉ open Ġfun Ġe (): ĠInt Ġ{ Ċĉ ĉ println (" Hello , Ġworld !") Ċĉ ĉ return Ġ 1 Ċ ĉ } Ċ } Ċ Ċ internal Ġdata Ġclass ĠD ( Ċ ĉ val Ġx : ĠInt Ċ ) Ġ{ Ċ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ operator Ġfun Ġinvoke ( string : ĠString ?): ĠD ? Ġ{ Ċĉĉ ĉ string Ġ?: Ġreturn Ġnull Ċĉĉ ĉ return Ġwhen Ġ( string ) Ġ{ Ċĉĉĉ ĉ " A " Ġ-> ĠD ( x Ġ= Ġ 0 ) Ċĉĉĉ ĉ " B " Ġ-> ĠD ( x Ġ= Ġ 0 ) Ċĉĉĉ ĉ " C " Ġ-> ĠD ( x Ġ= Ġ 0 ) Ċĉĉĉ ĉ " D " Ġ-> ĠD ( x Ġ= Ġ 0 ) Ċĉĉĉ ĉ " E " Ġ-> ĠD ( x Ġ= Ġ 0 ) Ċĉĉĉ ĉ else Ġ-> Ġnull Ċĉĉ ĉ } Ċĉ ĉ } Ċ ĉ } Ċ } Ċ Ċ internal Ġopen Ġclass ĠE Ġ{ Ċ ĉ open Ġvar Ġa : ĠInt Ġ= Ġ 0 Ċ } Ċ Ċ internal Ġclass ĠF Ġ{ Ċ ĉ open Ġvar Ġa : ĠInt Ġ= Ġ 0 Ċ } Ċ Ċ internal Ġopen Ġclass ĠMy Class Ġ{ Ċ ĉ open Ġvar Ġx : ĠInt Ġ= Ġ 0 ĊĊ ĉ operator Ġopen Ġfun Ġget ( i : ĠInt ): ĠInt Ġ{ Ċĉ ĉ return Ġx Ġ+ Ġi Ċ ĉ } ĊĊ ĉ operator Ġopen Ġfun Ġset ( i : ĠInt , ĠnewValue : ĠInt ) Ġ{ Ċĉ ĉ this . x Ġ= ĠnewValue Ġ+ Ġ 1 Ċ ĉ } Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ Ċ ĉ val Ġbox 1 : ĠBox Ġ= ĠBox () ĊĊ ĉ println ( box 1 . a ) Ċ ĉ println ( box 1 . return Five ()) Ċ ĉ println ( box 1 . return Int ( a Ġ= Ġ 1 0 )) Ċ ĉ println ( box 1 . b ) ĊĊ ĉ box 1 . b Ġ= Ġ" wh atever " ĊĊ ĉ println ( box 1 . c ) Ċ ĉ println ( C . a (). x ) Ċ ĉ println ( C (). b (). x ) ĊĊ ĉ var Ġa : ĠC ? Ġ= ĠC . c () Ċ ĉ val Ġac : ĠC ? Ġ= Ġa ĊĊ ĉ if Ġ( ac Ġ!= Ġnull ) Ġ{ Ċĉ ĉ println ( ac . x ) Ċ ĉ } ĊĊ ĉ a Ġ= ĠC . d () ĊĊ ĉ val Ġad : ĠC ? Ġ= Ġa ĊĊ ĉ if Ġ( ad Ġ!= Ġnull ) Ġ{ Ċĉ ĉ println ( ad . x ) Ċ ĉ } ĊĊ ĉ println ( C (). e ()) Ċ ĉ println ( C . f ()) Ċ ĉ println ( D ( x Ġ= Ġ 1 0 )) Ċ ĉ println ( D ( string Ġ= Ġ" not Ġsupported ")) Ċ ĉ println ( D ( string Ġ= Ġ" A ") !! ) ĊĊ ĉ val Ġmy Class : ĠMy Class Ġ= ĠMy Class () ĊĊ ĉ println ( my Class [ 1 ]) Ċ ĉ println ( my Class [ 2 ]) Ċ ĉ println ( my Class [ 3 ]) ĊĊ ĉ my Class [ 1 ] Ġ= Ġ 1 0 ĊĊ ĉ println ( my Class [ 1 ]) Ċ ĉ println ( my Class [ 2 ]) Ċ ĉ println ( my Class [ 3 ]) Ċ } Ċ