import Ġjavax . lang . model . element . N esting Kind Ċ Ċ /** Ċ Ġ* Ġ ä¼ ´ çĶŁ å¯¹è±¡ ï¼ļ å·¥ åİĤ æĸ¹æ³ķ åĴĮ éĿĻæĢģ æĪĲåĳĺ Ċ Ġ* Ġkotlin ä¸Ń ç±» å¹¶ ä¸įèĥ½ æĭ¥ æľī éĿĻæĢģ æĪĲåĳĺ Ċ Ġ*/ Ċ fun Ġmain () Ġ{ ĊĠĠĠ ĠA . bar () Ċ } Ċ Ċ class ĠA Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĽå»º ä¸Ģä¸ª A çļĦ ä¼ ´ çĶŁ å¯¹è±¡ ĊĠĠĠĠ Ġ* Ġ ä¼ ´ çĶŁ å¯¹è±¡ å°±æĺ¯ åı¯ä»¥åľ¨ æ²¡æľī ç±»çļĦ å®ŀä¾ĭ çļĦ æĥħåĨµä¸ĭ è°ĥçĶ¨ ï¼Į è®¿éĹ® ç±»çļĦ åĨħéĥ¨ çļĦ æĪĲåĳĺ ĊĠĠĠĠ Ġ* Ġcompanion Ġ åĬł äºĨ è¿Ļä¸ª åħ³éĶ®åŃĹ åı¯ä»¥éĢļè¿ĩ å®¹åĻ¨ çļĦ åĲįç§° æĿ¥ è®¿éĹ® å±ŀæĢ§ åĴĮ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbar () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Companion Ġobject Ġcalled ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠAccount Ġprivate Ġconstructor ( val Ġnickname : ĠString ) Ġ{ ĊĠĠĠ Ġ/** * ĊĠĠĠĠ Ġ* ĠæŃ¤ å¤Ħ ä½¿çĶ¨çļĦ å·¥ åİĤ æĸ¹å¼ı åĪĽå»º Account çļĦ å®ŀä¾ĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Sub scri bing Account ( email : ĠString ) Ġ= ĠAccount ( email . substring Before ('@ ')) ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Face Book Account ( accountId : ĠInt ) Ġ= ĠAccount ( get Face Book ( accountId )) ĊĠĠĠ Ġ} Ċ } Ċ /** Ċ Ġ* Ġ ä¼ ´ çĶŁ å¯¹è±¡ æĺ¯ä¸Ģä¸ª å£°æĺİ åĨį ç±» åĨħéĥ¨ çļĦ æĻ®éĢļ çļĦ å¯¹è±¡ ï¼Į ä»ĸ åı¯ä»¥ æľī åĲįåŃĹ ï¼Į å®ŀçİ° ä¸Ģä¸ª æİ¥åı£ æĪĸèĢħ æĺ¯ æī©å±ķ åĩ½æķ° åĴĮ å±ŀæĢ§ çŃī çŃī Ċ Ġ*/ ĊĊ Ċ // ä¼ ´ çĶŁ å¯¹è±¡ å®ŀçİ° æİ¥åı£ Ċ class ĠPerson 1 ( val Ġname : String ){ ĊĠĠĠ Ġcompanion Ġobject : JSON Factory < Person 1 > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfrom Json ( json Text : ĠString ): ĠPerson 1 = Ġfrom Json (" å®ŀçİ° äºĨä¸Ģä¸ª æİ¥åı£ çļĦ ä¼ ´ çĶŁ å¯¹è±¡ ") ĊĊĠĠĠ Ġ} Ċ } Ċ interface ĠJSON Factory < T >{ ĊĠĠĠ Ġfun Ġfrom Json ( json Text : String ): T Ċ } Ċ // ä¼ ´ çĶŁ å¯¹è±¡ æī©å±ķ Ċ class ĠPerson 2 ( val Ġf rist name : String , v all ast name : String ){ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠPerson 2 . Companion . fr on Json ( json : String ): Person 2 { ĊĠĠĠ Ġreturn ĠPerson 2 (" æł ¾ "," æ¡ Ĥ æĺİ ") Ċ } Ċ /*** Ċ Ġ* Ġå¯¹è±¡ è¡¨è¾¾å¼ı ï¼ļ å®ŀçİ° java ä¸ŃçļĦ åĮ ¿ åĲį åĨħéĥ¨ ç±» Ċ Ġ* Ċ Ġ* Ġå¯¹è±¡ è¡¨è¾¾å¼ı ä¸İ å¯¹è±¡ å£°æĺİ ä¸įåĲĮ æ¯ıæ¬¡ å¯¹è±¡ è¡¨è¾¾å¼ı éĥ½ä¼ļ è¢« æī§è¡Į ĠåĪĽå»º ä¸Ģä¸ª æĸ°çļĦ å®ŀä¾ĭ å¯¹è±¡ Ċ Ġ* Ġwindow . add Mouse Listener { Ċ Ġ* ĠĠĠ Ġobject : Mouse Adapter (){ Ċ Ġ* ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmouse Click ( e : MouseEvent ){ Ċ Ġ* ĠĠĠĠĠĠĠ Ġ// Ġtodo Ċ Ġ* ĠĠĠĠĠĠĠ Ġ} Ċ Ġ* ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmouse Enter ( e : MouseEvent ){ Ċ Ġ* ĠĠĠĠĠĠĠ Ġ// Ġtodo Ċ Ġ* ĠĠĠĠĠĠĠ Ġ} Ċ Ġ* ĠĠĠ Ġ} Ċ Ġ* Ġ} Ċ Ġ*/ ĊĊĊĊĊ