рдХреЛрдЯрд▓рд┐рди: рдЧрд╣рд░реА рдЦреБрджрд╛рдИред рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░



рдордИ 2017 рдореЗрдВ, Google рдиреЗ рдШреЛрд╖рдгрд╛ рдХреА рдХрд┐ рдХреЛрдЯрд▓рд┐рди рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рдХрд╛рд╕ рднрд╛рд╖рд╛ рдмрди рдЧрдИ рд╣реИред рдХрд┐рд╕реА рдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕ рднрд╛рд╖рд╛ рдХрд╛ рдирд╛рдо рд╕реБрдирд╛, рдХрд┐рд╕реА рдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЗрд╕ рдкрд░ рд▓рд┐рдЦрд╛, рд▓реЗрдХрд┐рди рдЙрд╕ рдХреНрд╖рдг рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╣рд░ рдХреЛрдИ рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд┐рдХрд╛рд╕ рдХреЗ рдХрд░реАрдм рд╣реИ, рдЕрдм рдЗрд╕реЗ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдордЬрдмреВрд░ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж рдЙрддреНрд╕рд╛рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рдЖрдИрдВ "рдЖрдЦрд┐рд░рдХрд╛рд░!" рдФрд░ рднрдпрд╛рдирдХ рдЖрдХреНрд░реЛрд╢ "рд╣рдореЗрдВ рдПрдХ рдирдИ рднрд╛рд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?" рдЬрд╛рд╡рд╛ рдиреЗ рдХреГрдкрдпрд╛ рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛? " рдЖрджрд┐ рдЖрджрд┐

рддрдм рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИ, рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдЯрд▓рд┐рди рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрд╛ рдмреБрд░рд╛, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣рд╕ рдЕрднреА рднреА рдХрдо рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрдб рдЗрд╕ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд╛рдлреА рд░реВрдврд╝рд┐рд╡рд╛рджреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рднреА рдЗрд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЖрдк рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рдареЛрдХрд░ рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡рд┐рдХрд╛рд╕ рдХреА рдЧрддрд┐ 30% рдмрдврд╝ рдЬрд╛рддреА рд╣реИред

рдЖрдЬ, рдХреЛрдЯрд▓рд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдмрдЪрдкрди рдХреА рдмреАрдорд╛рд░рд┐рдпреЛрдВ рд╕реЗ рдЙрдмрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рдвреЗрд░ рд╕рд╛рд░реЗ рд╕рд╡рд╛рд▓реЛрдВ рдФрд░ рдвреЗрд░ рдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ред рдирдЧреНрди рдЖрдВрдЦреЛрдВ рд╕реЗ, рдЗрд╕рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рджреЛрдиреЛрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреАрдВред

рдФрд░ рдЗрд╕ рд▓рд╣рд░ рдкрд░, рдПрдХ рдпреБрд╡рд╛, рд▓реЗрдХрд┐рди рд▓реЛрдХрдкреНрд░рд┐рдп рднрд╛рд╖рд╛ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ред рдЬрдЯрд┐рд▓ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдФрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рдФрд░ рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдХреЗ рд╕рд╛рде рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред рдкреНрд░рд╢реНрди рдХреЛ рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдкрдврд╝рдХрд░ рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рд▓реЗрдЦ рд░реБрдЪрд┐ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдиреАрдВрд╡ рд░рдЦреЗрдЧрд╛ред рдЗрд╕ рдмреАрдЪ, рдореИрдВ рдХрд╛рдлреА рдмреБрдирд┐рдпрд╛рджреА рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛, рдЬреЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдиреБрдХрд╕рд╛рди рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВред рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ, рдХреЛрдЯрд▓рд┐рди рдореЗрдВ, рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг - рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдХрд╛рдЗрдпрд╛рдВ - рд╡рд░реНрдЧ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рддрд░реНрдХ рднреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрдИ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╛рд╣рд░ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЬрд╛рд╡рд╛ рд╕реЗ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдирдП рдХреАрд╡рд░реНрдб рдХреА рдХрдореА рд╣реИред рдЕрдм рдЧрд╣рд░рд╛рдИ рд╕реЗ рджреЗрдЦреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХрдХреНрд╖рд╛ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХ рдФрд░ рдорд╛рдзреНрдпрдорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░рд╛рдердорд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рд╕рдВрд╢реЛрдзрдХ рдФрд░ рдПрдиреЛрдЯреЗрд╢рди рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдХреАрд╡рд░реНрдб рдХреЛ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдкрд╛рд╕ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдХреНрд╖рд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдмрд╛рдж рдХреЛрдИ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╣рдо рддреБрд░рдВрдд рд╡рд░реНрдЧ рдХреЗ рд╢рд░реАрд░ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдЬрд╛рд╡рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рдирддрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдХреА рд╕реНрдкрд╖реНрдЯ рдШреЛрд╖рдгрд╛ рдХреЗ рдЕрднрд╛рд╡ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ (рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛) рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред рдпрд╣ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рджрд┐рдЦрддрд╛ рд╣реИ:

class MyClassA 

рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:

 class MyClassA constructor() 

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд┐рдирдореНрд░рддрд╛ рд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред

рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рд╡рд╣ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рд╣рдореЗрд╢рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рд╣рдо рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ, рдЬрдм рд╣рдо рджреНрд╡рд┐рддреАрдпрдХ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред рддрджрдиреБрд╕рд╛рд░, рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ (рдкреНрд░рд╛рдердорд┐рдХ) рдПрдХ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВред

рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рдмрд┐рдирд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╣реБрдВрдЪ рди рд╣реЛ, рддреЛ private рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ constructor рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рд╢рд░реАрд░ рдирд╣реАрдВ рд╣реИ, рдЕрд░реНрдерд╛рддред рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред рдпрд╣ рдмрд╕ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХрдХреНрд╖рд╛ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реНрддрд░ рдкрд░, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 class MyClassA constructor(param1: String, param2: Int, param3: Boolean){ // some code } 

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд╛рд░рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдФрд░ рдирд╣реАрдВред рдЕрдкрдиреЗ рд╢реБрджреНрдз рд░реВрдк рдореЗрдВ, рд╣рдо рдЗрди рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдХреНрд╖рд╛ рдХреЗ рдХрд╛рдордХрд╛рдЬреА рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдХрдХреНрд╖рд╛ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдпрд╣реАрдВ рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 class MyClassA constructor(val param1: String, var param2: Int, param3: Boolean){ // some code } 

рдпрд╣рд╛рдВ, param1 рдФрд░ param2 рдХреЛ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдХрдХреНрд╖рд╛ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ, рдЬреЛ рдирд┐рдореНрди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:

 class MyClassA constructor(p1: String, p2: Int, param3: Boolean){ val param1 = p1 var param2 = p2 // some code } 

рдЦреИрд░, рдпрджрд┐ рдЖрдк рдЬрд╛рд╡рд╛ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ (рдФрд░ рд╡реИрд╕реЗ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЖрдк рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдЯрд▓рд┐рди рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрд┐рддрдирд╛ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ):

 public class MyClassAJava { private final String param1; private Integer param2; public MyClassAJava(String p1, Integer p2, Boolean param3) { this.param1 = p1; this.param2 = p2; } public String getParam1() { return param1; } public Integer getParam2() { return param2; } public void setParam2(final Integer param2) { this.param2 = param2; } // some code } 

рдЪрд▓реЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреА рдЕрдзрд┐рдХ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ: рд╡реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмреНрд▓реЙрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╕рдордп, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреАрд╡рд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдкреНрд░рд╛рдердорд┐рдХ this (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рдХреЛ рднреА this рдХреА рдорджрдж рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реНрддрд░ рдкрд░, рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 class MyClassA(val p1: String) { constructor(p1: String, p2: Int, p3: Boolean) : this(p1) { // some code } // some code } 

рдпрд╛рдиреА рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реАред
рдЕрдм, рдпрджрд┐ рд╣рдо рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рд╣реЛрдЧрд╛:

рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ;
рдореБрдЦреНрдп рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдмреБрд▓рд╛рдУ;
рдореБрдЦреНрдп рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рд╡рд░реНрдЧ p1 1 рдХреЗ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг;
рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрдиред

рдпрд╣ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдорд╛рди рд╣реИ:

 class MyClassAJava { private final String param1; public MyClassAJava(String p1) { param1 = p1; } public MyClassAJava(String p1, Integer p2, Boolean param3) { this(p1); // some code } // some code } 

рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмреЙрдбреА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ this рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреВрд╕рд░реЗ рд╕реЗ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдЯрд▓рд┐рди рдореЗрдВ, рдпрд╣ рдореБрджреНрджрд╛ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЙрд▓ рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдпрд╛ред рдмрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдХрд┐рд╕реА рднреА (рдкреНрд░рд╛рдердорд┐рдХ рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд) рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрдХ рдХреЗ рд╢рд░реАрд░ рд╕реЗ рд╕реАрдзреЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рд╣рдореЗрд╢рд╛ рдореБрдЦреНрдп рдПрдХ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрдиреНрдп рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рддреЗ рд╣реБрдП рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рдо рдЕрднреА рднреА рдореБрдЦреНрдп рдЪреАрдЬ рдкрд░ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВред рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреА рдЯреНрд░рд┐рдЧрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рдЙрд▓реНрдЯреЗ рдХреНрд░рдо рдореЗрдВ рд╣реЛрдЧреА:

 class MyClassA(p1: String) { constructor(p1: String, p2: Int, p3: Boolean) : this(p1) { // some code } constructor(p1: String, p2: Int, p3: Boolean, p4: String) : this(p1, p2, p3) { // some code } // some code } 

рдЕрдм рдЕрдиреБрдХреНрд░рдо рд╣реИ:

  • 4 рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛;
  • 3 рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛;
  • рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдмреБрд▓рд╛рдУ;
  • рдкреНрд░рд╛рдердорд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдХрдХреНрд╖рд╛ рдкреА 1 рдХреЗ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг;
  • 3 рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди;
  • 4 рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмреЙрдбреА рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрдиред

рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рд╣рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ред

рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдкрд╛рд╕ рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрдмрдХрд┐ рдЗрд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рддрдм рдХрд┐рд╕реА рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЕрдиреНрдп рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рднреА рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореБрдЦреНрдп рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрди рдорд╛рдорд▓реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрдХреНрд╖рд╛ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХреЛрдИ рдирд┐рд░реНрдорд╛рддрд╛ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИ, рддреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 class MyClassA { // some code } 

рд╣рдо рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 val myClassA = MyClassA() 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ:

 class MyClassA { constructor(p1: String, p2: Int, p3: Boolean) { // some code } // some code } 

рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 val myClassA = MyClassA(тАЬsome stringтАЭ, 10, True) 

рдЬрд╛рд╡рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рд╣реИред

рд╡реИрд╕реЗ, рдкреНрд░рд╛рдердорд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреА рддрд░рд╣, рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдкрд╛рд╕ рдмреЙрдбреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрджрд┐ рдЙрд╕рдХрд╛ рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рдЕрдиреНрдп рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИред

 class MyClassA { constructor(p1: String, p2: Int, p3: Boolean) : this(p1, p2, p3, "") constructor(p1: String, p2: Int, p3: Boolean, p4: String) { // some code } // some code } 

рдпрд╣ рдЗрд╕ рддрдереНрдп рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐, рдкреНрд░рд╛рдердорд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреА рддрд░реНрдХ рд╕реВрдЪреА рдореЗрдВ рд╡рд░реНрдЧ рдлрд╝реАрд▓реНрдб рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг рдирд┐рд╖рд┐рджреНрдз рд╣реИред
рдпрд╛рдиреА рдРрд╕рд╛ рд░рд┐рдХреЙрд░реНрдб рдЕрдорд╛рдиреНрдп рд╣реЛрдЧрд╛:

 class MyClassA { constructor(val p1: String, var p2: Int, p3: Boolean){ // some code } // some code } 

рдЕрд▓рдЧ-рдЕрд▓рдЧ, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛, рдкреНрд░рд╛рдердорд┐рдХ рдПрдХ рдХреА рддрд░рд╣, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

 class MyClassA { constructor(){ // some code } // some code } 

рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдХреА рдмрд╛рдд рдХрд░реЗрдВ рддреЛ рдХреЛрдИ рднреА рдХреЛрдЯрд▓рд┐рди рдХреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред

рдЕрдм рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рд╣реИ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реНрдХ рд╣реИрдВред рдореИрдВ рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:

 public class MyClassAJava { private String param1; private Integer param2; private boolean param3; private int param4; public MyClassAJava(String p1) { this (p1, 5); } public MyClassAJava(String p1, Integer p2) { this (p1, p2, true); } public MyClassAJava(String p1, Integer p2, boolean p3) { this(p1, p2, p3, 20); } public MyClassAJava(String p1, Integer p2, boolean p3, int p4) { this.param1 = p1; this.param2 = p2; this.param3 = p3; this.param4 = p4; } // some code } 

рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХрд╛рдлреА рдЖрдо рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреЛрдЯрд▓рд┐рди рдкрд░ рдХреИрд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 class MyClassA (var p1: String, var p2: Int = 5, var p3: Boolean = true, var p4: Int = 20){ // some code } 

рдЕрдм, рдХреЛрдбрд┐рди рдХреЛ рдПрдХ рд╕рд╛рде рдкреИрдЯ рдХрд░реЗрдВ рдХрд┐ рдЙрд╕рдиреЗ рдХреЛрдб рдХреЛ рдХрд┐рддрдирд╛ рдХрд╛рдЯрд╛ред рд╡реИрд╕реЗ, рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдЕрдзрд┐рдХ рдСрд░реНрдбрд░ рдорд┐рд▓рддреЗ рд╣реИрдВред рдпрд╛рдж рд░рдЦреЗрдВ, рдЖрдкрдиреЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдРрд╕рд╛ рдХреБрдЫ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛:

  public MyClassAJava(String p1, Integer p2, boolean p3) { this(p3, p1, p2, 20); } public MyClassAJava(boolean p1, String p2, Integer p3, int p4) { // some code } 

рдЬрдм рдЖрдк рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдвреВрдВрдврдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рд▓рд┐рдЦрд╛ рдерд╛, рдПрдХ рдмрдЯрди рд▓реЗрдВ, рдЗрд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рд▓рд╛рдПрдВ рдФрд░ рдЙрджрд╛рд╕ рд╕реНрд╡рд░ рдореЗрдВ рдкреВрдЫреЗрдВ: "рдХреНрдпреЛрдВ?"
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдХреЛрдЯрд▓рд┐рди рдкрд░ рдЗрд╕ рдЙрдкрд▓рдмреНрдзрд┐ рдХреЛ рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рд╡рд┐рд╡рд░рдг рд╣реИ рдХрд┐, рдХреЛрдЯрд▓рд┐рди рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдВрдХреЗрддрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ: рдпрджрд┐ рд╣рдо рдЬрд╛рд╡рд╛ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ @JvmOverloads рдПрдиреЛрдЯреЗрд╢рди рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:

 class MyClassA @JvmOverloads constructor(var p1: String, var p2: Int = 5, var p3: Boolean = true, var p4: Int = 20){ // some code } 

рдЕрдиреНрдпрдерд╛, рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред

рдЕрдм рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░реНрд╕ рдХреА ред

рдПрдХ рдЗрдирд┐рд▓рд╛рдЗрдЬрд╝рд░ init рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХреЛрдб рдХрд╛ рдПрдХ рдмреНрд▓реЙрдХ рд╣реИред рдЗрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ, рдЖрдк рдкреНрд░рд╛рдердорд┐рдХ рдХрдХреНрд╖рд╛ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рддрд░реНрдХреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╡рд░реНрдЧ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдЖрд░рдореНрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрд░реНрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рдмреНрд▓реЙрдХ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рднреА рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрд╛рд╡рд╛ рдореЗрдВ рдЖрд░рдВрднреАрдХрд░рдг рдмреНрд▓реЙрдХ рднреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпреЗ рдПрдХ рд╣реА рдЪреАрдЬ рдирд╣реАрдВ рд╣реИрдВред рдЙрдирдореЗрдВ, рд╣рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдЯрд▓рд┐рди рдореЗрдВ, рдмрд╛рд╣рд░ рд╕реЗ рдПрдХ рдореВрд▓реНрдп (рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рддрд░реНрдХ) рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдПрдХ рдЕрд▓рдЧ рдмреНрд▓реЙрдХ рдореЗрдВ рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╢рд░реАрд░ рдХреЗ рд╕рдорд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реА рдирдЬрд░ рдореЗрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдЪрд▓реЛ рдареАрдХ рд╣реИред

рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдЗрдирд┐рд▓рд╛рдЗрдЬрд╝рд░ рднреА рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдХреЛрдб, рд╕рднреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рддрд░рд╣, рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдХреЛрдб рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрдирдХреЗ рдХреЙрд▓ рдХрд╛ рдХреНрд░рдо рдХреЛрдб рдореЗрдВ рдЙрдирдХреЗ рд╕реНрдерд╛рди рдХреЗ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдПрдЧрд╛ред рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд░реНрдЧ рдлрд╝реАрд▓реНрдб рдЖрд░рдВрднреАрдХрд░рдг init рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рд╣рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЛрдб рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рднреА рдЖрд░рдВрднреАрдХрд░рдг рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмреНрд▓реЙрдХ рд╕реЗ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд▓рд╛рдкрд░рд╡рд╛рд╣реА рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЧрд▓рддреА рдореЗрдВ рднрд╛рдЧрдиреЗ рдХрд╛ рдореМрдХрд╛ рд╣реИред

рдореИрдВ рдЖрдкрдХреЛ рд╢реБрд░реБрдЖрддреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓реЗ рджреВрдВрдЧрд╛ред

 class MyClassB { init { testParam = "some string" showTestParam() } init { testParam = "new string" } var testParam: String = "after" constructor(){ Log.i("wow", "in constructor testParam = $testParam") } fun showTestParam(){ Log.i("wow", "in showTestParam testParam = $testParam") } } 

рдпрд╣ рдХреЛрдб рдХрд╛рдлреА рдорд╛рдиреНрдп рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдмреНрд▓реЙрдХ рдореЗрдВ testParam рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рдХрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╣реЛрддрд╛ рд╣реИред рд╡реИрд╕реЗ, рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдпрджрд┐ рд╣рдо init рдмреНрд▓реЙрдХ рдХреЗ рдКрдкрд░ testParam рдлрд╝реАрд▓реНрдб рдХреА рдШреЛрд╖рдгрд╛ рдХреЛ testParam , рддреЛ рдпрд╣ рдмрд┐рдирд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛)ред рдпрджрд┐ рд╣рдо рдЬрд╛рд╡рд╛ рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдмрд╛рдЗрдЯ рдХреЛрдб рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ:

 public class MyClassB { @NotNull private String testParam = "some string"; @NotNull public final String getTestParam() { return this.testParam; } public final void setTestParam(@NotNull String var1) { Intrinsics.checkParameterIsNotNull(var1, "<set-?>"); this.testParam = var1; } public final void showTestParam() { Log.i("wow", "in showTestParam testParam = " + this.testParam); } public MyClassB() { this.showTestParam(); this.testParam = "new string"; this.testParam = "after"; Log.i("wow", "in constructor testParam = " + this.testParam); } } 

рдпрд╣рд╛рдБ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди ( init рдмреНрд▓реЙрдХ рдпрд╛ рдЙрд╕рдХреЗ рдмрд╛рд╣рд░) рдХреЗ рджреМрд░рд╛рди рдлрд╝реАрд▓реНрдб рдкрд░ рдкрд╣рд▓реА рдХреЙрд▓ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЗрд╕рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдПрдХ рдореВрд▓реНрдп рдХреЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рдЕрдиреНрдп рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ (рдПрдХ рдореВрд▓реНрдп рдХреЗ рдкрд╣рд▓реЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЛ рдХреНрд╖реЗрддреНрд░ рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рд╣рдо рд╡рд┐рдШрдЯрди рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рд╕рднреА рдЬрд╛рджреВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдХрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИрдВ рдЬреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХреЛрдИ рдкреНрд░рд╛рдердорд┐рдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЬрд╛рд╡рд╛ рдХреЛрдб рдореЗрдВ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ testParam рдХреНрд╖реЗрддреНрд░ рдХреЗ рдорд╛рди рдХреЗ рд╕рднреА рдмрд╛рдж рдХреЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ testParam рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдкреНрд░рд╛рдердорд┐рдХ рдореЗрдВред рдлреБрдл ...

рдФрд░ testParam рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд: testParam рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ var рд╕реЗ val рдмрджрд▓реЗрдВ:

 class MyClassB { init { testParam = "some string" showTestParam() } init { testParam = "new string" } val testParam: String = "after" constructor(){ Log.i("wow", "in constructor testParam = $testParam") } fun showTestParam(){ Log.i("wow", "in showTestParam testParam = $testParam") } } 

рдФрд░ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдХреЛрдб рдореЗрдВ рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ:

 MyClassB myClassB = new MyClassB(); 

рд╕рдм рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рд┐рдд, рд╢реБрд░реВ, рдФрд░ рдЕрдм рд╣рдо рд▓реЙрдЧ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦрддреЗ рд╣реИрдВ:

in showTestParam testParam = рдХреБрдЫ рддрд╛рд░
in рд░рдЪрдирд╛рдХрд╛рд░ testParam = after

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ val рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдлрд╝реАрд▓реНрдб рдХреЛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдореВрд▓реНрдп рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдРрд╕рд╛ рдХреНрдпреЛрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдЯрд▓рд┐рди рд╕рдВрдХрд▓рдХ рдореЗрдВ рдПрдХ рджреЛрд╖ рд╣реИ, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╢рд╛рдпрдж рдпрд╣ рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдЬ рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реИред

рдЙрдкрд░реЛрдХреНрдд рдорд╛рдорд▓реЛрдВ рд╕реЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рддреЗ рд╣реБрдП, рдХреЛрдИ рдХреЗрд╡рд▓ рдЖрд░рдВрднреАрдХрд░рдг рдмреНрд▓реЙрдХреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рди рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрд░рдВрднреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрд╛рд░-рдмрд╛рд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрдирд┐рдЯ рдмреНрд▓реЙрдХ рд╕реЗ рдХреЗрд╡рд▓ рд╢реБрджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдХреНрд╖рд╛ рдореЗрдВ рдмрд┐рдЦрд░реЗ рдирд╣реАрдВред рдпрд╣ рд╕рдм рд╕рдВрднрд╡ рднреНрд░рдо рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

So. рдкреНрд░рд╛рд░рдВрднрдХрд░реНрддрд╛ рдХреЛрдб рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмреНрд▓реЙрдХ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЪрд╛рд╣реЗ рдЬрд┐рд╕ рднреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕реЗ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реЛред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдФрд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░реНрд╕ рдХреА рдкрд░рд╕реНрдкрд░ рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдПрдХ рд╡рд░реНрдЧ рдХреЗ рднреАрддрд░, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ;
  • рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдмреБрд▓рд╛рдУ;
  • рдХреЛрдб рдореЗрдВ рдЙрдирдХреЗ рд╕реНрдерд╛рди рдХреЗ рдХреНрд░рдо рдореЗрдВ рд╡рд░реНрдЧ рдлрд╝реАрд▓реНрдб рдФрд░ рдЗрдирд┐рд╢рд▓рд╛рдЗрдЬрд╝рд░ рдмреНрд▓реЙрдХ рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг;
  • рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрдиред

рд╡рд┐рд░рд╛рд╕рдд рд╡рд╛рд▓реЗ рдорд╛рдорд▓реЗ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддреЗ рд╣реИрдВред

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЪреВрдВрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рднреА рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдРрд╕рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, Any рдФрд░ Object рдПрдХ рд╣реА рдЪреАрдЬ рдирд╣реАрдВ рд╣реИрдВред

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореВрд▓ рд╡рд░реНрдЧ рдХреА рддрд░рд╣ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рд╡рд░реНрдЧ рдХреЗ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХреЗ рдореБрдЦреНрдп рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

 class MyClassC(p1: String): MyClassA(p1) { constructor(p1: String, p2: Int): this(p1) { //some code } //some code } 

рдпрджрд┐ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧ рдХреЗ рдкрд╛рд╕ рдкреНрд░рд╛рдердорд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ super рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рд╡рд░реНрдЧ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рддрд╛ рдЕрднрд┐рднрд╛рд╡рдХ рд╡рд░реНрдЧ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ:

 class MyClassC : MyClassA { constructor(p1: String): super(p1) { //some code } constructor(p1: String, p2: Int): super(p1, p2) { //some code } //some code } 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реНрдпреБрддреНрдкрдиреНрди рд╡рд░реНрдЧ рдХреЗ рдЕрдиреНрдп рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореВрд▓ рдХрдХреНрд╖рд╛ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛:

 class MyClassC : MyClassA{ constructor(p1: String): super(p1){ //some code } constructor(p1: String, p2: Int): this (p1){ //some code } //some code } 

рдпрджрд┐ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧ рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдмрд╕ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдХреЗ рдмрд╛рдж рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

 class MyClassC: MyClassA(тАЬsome stringтАЭ) { //some code } 

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрднреА рднреА рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рд░рд┐рдХреЙрд░реНрдб рдорд╛рдиреНрдп рд╣реИ:

 class MyClassC : MyClassB { constructor(){ //some code } constructor(p1: String){ } //some code } 

рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдореВрд▓ рд╢реНрд░реЗрдгреА рдореЗрдВ рдмрд┐рдирд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ (рдкреНрд░рд╛рдердорд┐рдХ рдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ - рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ)ред

рдЕрдм рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рджреМрд░рд╛рди рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдФрд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдХреЗ рдЖрд╣реНрд╡рд╛рди рдХреЗ рдЖрджреЗрд╢ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

  • рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдмреБрд▓рд╛рдУ;
  • рд╡рд╛рд░рд┐рд╕ рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдмреБрд▓рд╛рдУ;
  • рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛;
  • рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдмреБрд▓рд╛рдУ;
  • рдореВрд▓ init рдмреНрд▓реЙрдХ init
  • рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╢рд░реАрд░ рдХреЛрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди;
  • рд╡рд╛рд░рд┐рд╕ рдХреЗ init рдмреНрд▓реЙрдХ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди;
  • рд╡рд╛рд░рд┐рд╕ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдмреЙрдбреА рдХреЛрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдиред

рдЖрдЗрдП рдЬрд╛рд╡рд╛ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЛрдЯрд▓рд┐рди рд╕реЗ рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХрд╛ рдХреЛрдИ рдПрдирд╛рд▓реЙрдЧ рдирд╣реАрдВ рд╣реИред рдЬрд╛рд╡рд╛ рдореЗрдВ, рд╕рднреА рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рд╕рд╣рдХрд░реНрдореА рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдпрд╛ рддреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛ рдФрд░ рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИ, рдпрд╣ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рд╕рдордп рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ: рдЬрдм рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рд╡рд░реНрдЧ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рдореВрд▓ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рд╣реИ - рд╕рдВрдХрд▓рдХ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓рдиреЗ рдирд╣реАрдВ рджреЗрдЧрд╛ред рдЬрд╛рд╡рд╛ рдореЗрдВ, рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗред рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ: рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ)ред

рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдо рдорд╛рди рд▓реЗрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдФрд░ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХрд╛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдм рд╣рдо рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВред рд╣рдо рдереЛрдбрд╝рд╛ рдЖрд░рд╛рдо рдХрд░реЗрдВрдЧреЗ рдФрд░ рджреВрд╕рд░реА рджрд┐рд╢рд╛ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░реЗрдВрдЧреЗ!

Source: https://habr.com/ru/post/hi425943/


All Articles