fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġuser Ġ= ĠUser (" foo ", Ġ 1 0 ) Ġ// Ġdata Ġclass ãģ§ å®ļç¾© ĊĠĠĠ Ġval Ġuser 2 Ġ= ĠUser 2 (" bar ", Ġ 2 0 ) Ġ// Ġclass ãģ§ å®ļç¾© ĊĠĠĠ Ġval Ġuser 3 Ġ= ĠUser (" bar ", Ġ 3 0 ) Ġ// Ġdata Ġclass ãģ§ å®ļç¾© ĊĠĠĠ Ġval Ġuser 4 Ġ= ĠUser (" foo ", Ġ 1 0 ) Ġ// Ġdata Ġclass ãģ§ å®ļç¾© ĊĠĠĠ Ġval Ġuser 5 Ġ= ĠUser 2 (" bar ", Ġ 2 0 ) Ġ// Ġclass ãģ§ å®ļç¾© ĊĠĠĠ Ġval Ġperson Ġ= ĠPerson () Ġ// Ġdata Ġclass ãģ§ å®ļç¾© ĊĊĠĠĠ Ġprintln (" .... equals - START .... ") ĊĠĠĠ Ġ// Ġprintln (" user . equals ( user 2 ): Ġ${ user . equals ( user 2 )} ") Ġ// ĠOperator Ġ' ==' Ġcannot Ġbe Ġapplied Ġto Ġ' User ' Ġand Ġ' User 2 ' ĊĠĠĠ Ġprintln (" user . equals ( user 3 ): Ġ${ user . equals ( user 3 )} ") ĊĠĠĠ Ġprintln (" user . equals ( user 4 ): Ġ${ user . equals ( user 4 )} ") ĊĠĠĠ Ġ// Ġprintln (" user . equals ( person ): Ġ${ user . equals ( person )} ") Ġ// ĠOperator Ġ' ==' Ġcannot Ġbe Ġapplied Ġto Ġ' User ' Ġand Ġ' Person ' ĊĠĠĠ Ġprintln (" user 2 . equals ( user 5 ): Ġ${ user 2 . equals ( user 5 )} ") ĊĠĠĠ Ġprintln (" .... equals - END .... ") ĊĊĠĠĠ Ġprintln ("") ĊĊĠĠĠ Ġprintln (" .... toString - START .... ") ĊĠĠĠ Ġprintln (" from Ġdata Ġclass : Ġ$ user ") ĊĠĠĠ Ġprintln (" from Ġclass : Ġ$ user 2 ") ĊĠĠĠ Ġprintln (" .... toString - END .... ") ĊĊĠĠĠ Ġprintln ("") ĊĊĠĠĠ Ġprintln (" .... comp orn ent N - START .... ") ĊĠĠĠ Ġval Ġname Ġ= Ġuser . component 1 () ĊĠĠĠ Ġval Ġage Ġ= Ġuser . component 2 () ĊĠĠĠ Ġprintln (" name : Ġ$ name , Ġage : Ġ$ age ") ĊĠĠĠ Ġprintln (" .... comp orn ent N - END .... ") ĊĊĠĠĠ Ġprintln ("") ĊĊĠĠĠ Ġprintln (" .... copy - START .... ") ĊĠĠĠ Ġval Ġcopy User Ġ= Ġuser . copy () ĊĠĠĠ Ġval Ġolder User Ġ= Ġuser . copy ( age = 2 5 ) ĊĠĠĠ Ġprintln (" copy User Ġ$ copy User ") ĊĠĠĠ Ġprintln (" older User Ġ$ older User ") ĊĊĠĠĠ Ġ// Ġcopy ãģ§ ä½ľ ãĤī ãĤĮ ãģŁ ãĤª ãĥĸãĤ¸ãĤ§ãĤ¯ãĥĪ ãģ¯ ãĤ³ ãĥĶ ãĥ¼ åħĥ ãģ¨ ãĤª ãĥĸãĤ¸ãĤ§ãĤ¯ãĥĪ ãģ® åıĤçħ§ åħĪ ãģ¯ åĪ¥ ĊĠĠĠ Ġprintln ("${ user Ġ=== Ġcopy User }" Ġ) ĊĠĠĠ Ġprintln (" .... copy - END .... ") Ċ } Ċ Ċ class ĠUser 2 ( val Ġname : ĠString , Ġval Ġage : ĠInt ) Ċ Ċ data Ġclass ĠUser ( val Ġname : ĠString , Ġval Ġage : ĠInt ) Ċ Ċ data Ġclass ĠPerson ( val Ġname : ĠString Ġ= Ġ" foo ") Ġ{ ĊĠĠĠ Ġval Ġage : ĠInt Ġ= Ġ 1 0 Ġ// Ġoption Ċ }