package Ġsection 3 Ċ Ċ /** Ċ Ġ* ĠCamera Mode Ġclass Ġuses Ġsecondary Ġconstructors . Ċ Ġ* ĠThese Ġwill Ġbe Ġreplaced Ġwith Ġa Ġcompanion Ġobject Ġmethod Ċ Ġ* Ġto Ġsimply Ġthe Ġcode . Ċ Ġ*/ Ċ class ĠCamera Mode Ġ{ ĊĊĠĠĠ Ġval Ġmode : ĠString ĊĊĠĠĠ Ġconstructor () Ġ{ ĊĠĠĠĠĠĠĠ Ġmode Ġ= Ġ" auto " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( sh utter : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmode Ġ= Ġ" sh utter Ġpriority " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( ap ert ure : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmode Ġ= Ġ" ap ert ure Ġpriority " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( sh utter : ĠInt , Ġa perture : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmode Ġ= Ġ" manual " ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ /** Ċ Ġ* ĠThis Ġexercise Ġwill Ġdemonstrate Ġhow Ġto Ġreplace Ġa Ġclasses Ċ Ġ* Ġsecondary Ġconstructors Ġby Ġusing Ġa Ġfactory Ġpattern Ġthat Ċ Ġ* Ġuses Ġa Ġcompanion Ġobject . Ċ Ġ*/ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġ// ĠCreate Ġdifferent Ġinstances Ġof ĠCamera Mode Ġthen Ġdisplay Ġit 's Ġmode Ġproperty ĊĠĠĠ Ġval Ġmode One Ġ= ĠCamera Mode () ĊĠĠĠ Ġval Ġmode Two Ġ= ĠCamera Mode ( 2 0 0 0 ) ĊĠĠĠ Ġval Ġmode Three Ġ= ĠCamera Mode ( 1 . 2 ) ĊĠĠĠ Ġval Ġmode Four Ġ= ĠCamera Mode ( sh utter Ġ= Ġ 2 0 0 0 , Ġa perture Ġ= Ġ 1 . 2 ) ĊĠĠĠ Ġprintln ( mode One . mode ) ĊĠĠĠ Ġprintln ( mode Two . mode ) ĊĠĠĠ Ġprintln ( mode Three . mode ) ĊĠĠĠ Ġprintln ( mode Four . mode ) Ċ } ĊĊ