Kotlin: рд╕реНрдерд┐рд░ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ


рдпрд╣ рд▓реЗрдЦ рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдЧрд╛ред
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдХреЛрдЯрд▓рд┐рди рдХрд╛ рдХреЛрдИ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ!

рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИред

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

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

рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕реНрдЯреЗрдЯрд┐рдХ рдХреНрдпрд╛ рд╣реИ? рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
  • рд╕реНрдерд┐рд░ рдХреНрд╖реЗрддреНрд░
  • рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпрд╛рдБ
  • рд╕реНрдерд┐рд░ рдиреЗрд╕реНрдЯреЗрдб рдХрдХреНрд╖рд╛рдПрдВ


рдЖрдЗрдП рдПрдХ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ (рдпрд╣ рдкрд╣рд▓реА рдмрд╛рдд рд╣реИ рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ)ред

рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЬрд╛рд╡рд╛ рд╡рд░реНрдЧ рдмрдирд╛рдПрдБ:
public class SimpleClassJava1 { public static String staticField = "Hello, static!"; public static void setStaticValue (String value){ staticField = value; } } 

рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рди рд╣реИ: рдХрдХреНрд╖рд╛ рдореЗрдВ рд╣рдо рдПрдХ рд╕реНрдерд┐рд░ рдХреНрд╖реЗрддреНрд░ рдФрд░ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рдмрдирд╛рддреЗ рд╣реИрдВред рд╣рдо рдмрд╛рд╣рд░ рд╕реЗ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдХреНрд╖реЗрддреНрд░ рдФрд░ рд╡рд┐рдзрд┐ рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

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

 class SimpleClassKotlin1 { var staticField = "Hello, static!" fun setStaticValue(value: String) { staticField = value } } 

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╡реИрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИ ... рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдмрд╛рдИрдЯреЗрдХреЛрдб рдХреЛ рдЬрд╛рд╡рд╛ рдХреЛрдб рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗ рдФрд░ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖ:
 public final class SimpleClassKotlin1 { @NotNull private String staticField = "Hello, static!"; @NotNull public final String getStaticField() { return this.staticField; } public final void setStaticField(@NotNull String var1) { Intrinsics.checkParameterIsNotNull(var1, "<set-?>"); this.staticField = var1; } public final void setStaticValue(@NotNull String value) { Intrinsics.checkParameterIsNotNull(value, "value"); this.staticField = value; } } 

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

рд╡реИрд╕реЗ, рд▓рдЧрднрдЧ рдЫрд╣ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рдПрдХ рд╣реА рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЛ рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рдерд╛ред рддреЛ рдлрд┐рд░ рд╕реЗ: рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ!

рд╣рдо рдЖрдЧреЗ рдкреНрд░рдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо рдХреЛрдЯрд▓рд┐рди рдкрд░ рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдЬрд╛рд╡рд╛ рд╡рд░реНрдЧ рдХреЗ рд╕реНрдерд┐рд░ рддрддреНрд╡реЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:
 SimpleClassJava1.setStaticValue("hi!") SimpleClassJava1.staticField = "hello!!!" 

рдпрд╣рд╛рдБ рд╣реИ рдХреИрд╕реЗ! рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЛрдб рдХрд╛ рд╕реНрд╡рдд: рдкреВрд░реНрдг рд╣реЛрдирд╛ рд╣рдореЗрдВ рд╕рдм рдХреБрдЫ рдмрддрд╛рддрд╛ рд╣реИ! рдмрд╣реБрдд рдЙрддреНрд╕реБрдХ рд╣реИред

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

рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдФрд░ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдЪреАрдЬ рдЬрд┐рд╕реЗ рдЖрдк рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐рдпреЛрдВ - рдкреИрдХреЗрдЬ рд╕реНрддрд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред рдпрд╣реА рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХрд╛ рддрд░реНрдХ рдЬреЛ рдкреИрдХреЗрдЬ рд╕реНрдкреЗрд╕ рдореЗрдВ рдХрд╣реАрдВ рд╢реВрдиреНрдп рдореЗрдВ рд╣реИред рд╣рдо рдкреИрдХреЗрдЬ рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА рдлрд╛рдЗрд▓ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рд░реБрдЪрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ JustFun.kt рдирд╛рдо рджреЗрдВ рдФрд░ рдЗрд╕реЗ рдкреИрдХреЗрдЬ com.example.mytestapplication
 package com.example.mytestapplication fun testFun(){ // some code } 


рдЬрд╛рд╡рд╛ рдореЗрдВ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рдЗрдЯрдХреЛрдб рдХреЛ рдмрджрд▓реЗрдВ рдФрд░ рдЕрдВрджрд░ рджреЗрдЦреЗрдВ:
 public final class JustFunKt { public static final void testFun() { // some code } } 

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡рдпрдВ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рдпрджрд┐ рд╣рдо рдкреИрдХреЗрдЬ package com.example.mytestapplication (рдЬреЛ рдХрд┐ рдлрдВрдХреНрд╢рди рдХреЗ рд╕рдорд╛рди рдкреИрдХреЗрдЬ рд╣реИ) рдореЗрдВ рд╕реНрдерд┐рдд рдПрдХ рд╡рд░реНрдЧ (рдпрд╛ рд╕рдорд╛рди рдлрд╝рдВрдХреНрд╢рди) рд╕реЗ testFun рдореЗрдВ testFun рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреЗрд╡рд▓ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рджреВрд╕рд░реЗ рдкреИрдХреЗрдЬ рд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рд╣реИ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ:
 import com.example.pavka.mytestapplication.testFun 

рдЕрдЧрд░ рд╣рдо Java рдХреЛрдб рд╕реЗ function t estFun рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рд╣рдореЗрд╢рд╛ рдлрдВрдХреНрд╢рди рдХреЛ рдЗрдореНрдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдлрд┐рд░ рдЪрд╛рд╣реЗ рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ:
 import static com.example.pavka.mytestapplication.ForFunKt.testFun; 

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

рдЖрдЗрдП рд╕реНрдереИрддрд┐рдХ рддрд░реАрдХреЛрдВ рдФрд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рджреЗрдЦреЗрдВред

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

рдХреЛрдЯрд▓рд┐рди рд╣рдореЗрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрдХрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдПрдХрд▓ рдкреНрд░рддрд┐ рдореЗрдВ рднреА рдореМрдЬреВрдж рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╕рд┐рдВрдЧрд▓рдЯрдиред

рдХреЛрдЯрд▓рд┐рди рдХреЗ рдкрд╛рд╕ рд╕рд┐рдВрдЧрд▓рд▓реЗрдЯреНрд╕ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреАрд╡рд░реНрдб рд╣реИред

 object MySingltoneClass { // some code } 


рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реВрдк рд╕реЗ рдЖрд▓рд╕реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реА рдХреЙрд▓ рдХреЗ рд╕рдордпред

рдареАрдХ рд╣реИ, рдЬрд╛рд╡рд╛ рдореЗрдВ рднреА рд╕рд┐рдВрдЧрд▓реЗрдЯреНрд╕ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЖрдБрдХрдбрд╝реЗ рд╣реИрдВ?

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

 class SimpleClassKotlin1 { companion object{ var companionField = "Hello!" fun companionFun (vaue: String){ // some code } } } 


рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ SimpleClassKotlin1 рд╡рд░реНрдЧ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЙрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдмрд╛рдБрдзрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдЗрд╕реЗ рд╕рд╛рдереА рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЖрдк рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐, рдкрд┐рдЫрд▓реЗ рд╕рд┐рдВрдЧрд▓рдЯрди рдШреЛрд╖рдгрд╛ (MySingltoneClass) рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕рд┐рдВрдЧрд▓рдЯрди рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рд╕рд╛рдереА рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЕрдкрдиреЗ рдирд╛рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ Companion рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рд╛рдереА рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 val companionInstance = SimpleClassKotlin1.Companion 

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╕рд╛рдереА рд╡рд░реНрдЧ рдХреЗ рдЧреБрдгреЛрдВ рдФрд░ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд╕реАрдзреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ рдпрд╣ рд╕рдВрд▓рдЧреНрди рд╣реИ:
 SimpleClassKotlin1.companionField SimpleClassKotlin1.companionFun("Hi!") 

рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд┐рд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд╣реИ рдирд╛?

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

 interface FactoryInterface<T> { fun factoryMethod(): T } class SimpleClassKotlin1 { companion object : FactoryInterface<MyClass> { override fun factoryMethod(): MyClass = MyClass() } } 


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

рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рд╡рд░реНрдЧреЛрдВ рдХреА рдмрд╛рдд рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЙрди рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЙрдирдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ "рд╣реБрдб рдХреЗ рдиреАрдЪреЗред" рд╣рдорд╛рд░реА рд╕рд░рд▓ рдХрдХреНрд╖рд╛ рд▓реЗрдВ:

 class SimpleClassKotlin1 { companion object{ var companionField = "Hello!" fun companionFun (vaue: String){ } } object OneMoreObject { var value = 1 fun function(){ } } 


рдЕрдм рдЬрд╛рд╡рд╛ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рдЗрдЯрдХреЛрдб рдХреЛ рдбрд┐рдХрдВрдкрд╛рдЗрд▓ рдХрд░реЗрдВ:
 public final class SimpleClassKotlin1 { @NotNull private static String companionField = "Hello!"; public static final SimpleClassKotlin1.Companion Companion = new SimpleClassKotlin1.Companion((DefaultConstructorMarker)null); public static final class OneMoreObject { private static int value; public static final SimpleClassKotlin1.OneMoreObject INSTANCE; public final int getValue() { return value; } public final void setValue(int var1) { value = var1; } public final void function() { } static { SimpleClassKotlin1.OneMoreObject var0 = new SimpleClassKotlin1.OneMoreObject(); INSTANCE = var0; value = 1; } } public static final class Companion { @NotNull public final String getCompanionField() { return SimpleClassKotlin1.companionField; } public final void setCompanionField(@NotNull String var1) { Intrinsics.checkParameterIsNotNull(var1, "<set-?>"); SimpleClassKotlin1.companionField = var1; } public final void companionFun(@NotNull String vaue) { Intrinsics.checkParameterIsNotNull(vaue, "vaue"); } private Companion() { } // $FF: synthetic method public Companion(DefaultConstructorMarker $constructor_marker) { this(); } } } 

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖред

рд╕рд╛рдереА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдХреЗ рд╕реНрдерд┐рд░ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
 private static String companionField = "Hello!"; 


рдпрд╣ рд╡рд╣реА рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рдереЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдлрд╝реАрд▓реНрдб рдирд┐рдЬреА рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рд╕рд╛рдереА рд╡рд░реНрдЧ рдХреЗ рдЧреЗрдЯрдЯрд░ рдФрд░ рд╕реЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ рдпрд╣рд╛рдБ public static final class рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
 public static final SimpleClassKotlin1.Companion Companion = new SimpleClassKotlin1.Companion((DefaultConstructorMarker)null); 


рд╕рд╛рдереА рдлрдВрдХреНрд╢рди рдлрдВрдХреНрд╢рди рд╣рдорд╛рд░реА рдХреНрд▓рд╛рд╕ рдХрд╛ рд╕реНрдЯреИрдЯрд┐рдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдмрди рдкрд╛рдпрд╛ (рд╢рд╛рдпрдж рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдпрд╣ рд╕рд┐рдВрдкрд▓рдХреНрд▓рд╛рд╕рдХреЛрдЯрд▓рд┐рди 1 рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдХрд╛ рдлрдВрдХреНрд╢рди рд░рд╣рд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рдЙрд╕реА рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

OneMoreObject рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рд╛рде OneMoreObject рд╕реНрдерд┐рддрд┐ рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ, рд╕рд╛рдереА рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореВрд▓реНрдп рд╡рд░реНрдЧ рдХрд╛ рдХреНрд╖реЗрддреНрд░ SimpleClassKotlin1 рдХрдХреНрд╖рд╛ рдореЗрдВ рдирд╣реАрдВ OneMoreObject , рд▓реЗрдХрд┐рди OneMoreObject рдореЗрдВ рдмрдирд╛ рд░рд╣рд╛, рд▓реЗрдХрд┐рди рд╕реНрдерд┐рд░ рднреА рд╣реЛ рдЧрдпрд╛ рдФрд░ рдЙрддреНрдкрдиреНрди рдЧреЗрдЯрд░ рдФрд░ рд╕реЗрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред

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

рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрд▓ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
 SimpleClassKotlin1.Companion.companionFun("hello!"); SimpleClassKotlin1.Companion.setCompanionField("hello!"); SimpleClassKotlin1.Companion.getCompanionField(); 

рдпрд╛рдиреА, рдпрд╣рд╛рдВ рд╣рдо рд╕реАрдзреЗ рд╕рд╛рдереА рдХреЗ рдирд╛рдо рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд╛рдереА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдирд╛рдо рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рд╣реИ рдирд╛?

рдлрд┐рд░ рднреА, рдХреЛрдЯрд▓рд┐рди рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдиреЗ рдЗрд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛ рджрд┐рдпрд╛ред рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред
 @JvmField var companionField = "Hello!" 

рдЕрдЧрд░ рд╣рдо рдЗрд╕ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдЕрдкрдиреЗ companionField рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ companionField рдлрд╝реАрд▓реНрдб рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬрдм рдЬрд╛рд╡рд╛ рдХреЛ рдмрд╛рдЗрдЯ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдерд┐рд░ рдлрд╝реАрд▓реНрдб рдХрд╛ companionField Field SimpleClassKotlin1 рдЕрдм рдирд┐рдЬреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реИ, рдФрд░ companionField рдЧреЗрдЯреНрдЯрд░ рдФрд░ рд╕реЗрдЯрд░ рд╕реНрдерд┐рд░ Companion рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИред рдЕрдм рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ Java рдХреЛрдб рд╕реЗ companionField рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

 lateinit var lateinitField: String 

рдФрд░ рдПрдХ рдФрд░ рддрд░реАрдХрд╛: рд╣рдо рд╕рдВрд╢реЛрдзрдХ рдХрд╛рдВрд╕реНрдЯрд┐рдЯреНрдпреВрд╢рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рд╕рд╛рдереА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕реНрдерд┐рд░ рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡реИрдз рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
 const val myConstant = "CONSTANT" 

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

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

рдпрджрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЛ рдмрдирд╛рддреЗ рд╕рдордп рд╕рд╛рдереА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдлрд╝рдВрдХреНрд╢рди рднреА рдПрдХ рд╕реНрдЯреИрдЯрд┐рдХ рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рдП, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП @JvmStatic рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╕рд╛рдереА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП @JvmStatic рдПрдиреЛрдЯреЗрд╢рди (рдФрд░ рд╕рд┐рд░реНрдл рд╕рд┐рдВрдЧрд▓рдЯрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рдВрдкрддреНрддрд┐ рдПрдХ рд╕реНрдерд┐рд░ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓реЗрдЧреА, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░ рдЧреЗрдЯреНрдЯрд░ рдФрд░ рд╕реЗрдЯрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдХреЛрдЯрд▓рд┐рди рд╡рд░реНрдЧ рдХреЛ рджреЗрдЦреЗрдВ:
 class SimpleClassKotlin1 { companion object{ @JvmStatic fun companionFun (vaue: String){ } @JvmStatic var staticField = 1 } } 


рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдирд┐рдореНрди рдХреЙрд▓ рдЬрд╛рд╡рд╛ рд╕реЗ рдорд╛рдиреНрдп рд╣реИрдВ:
 int x; SimpleClassKotlin1.companionFun("hello!"); x = SimpleClassKotlin1.getStaticField(); SimpleClassKotlin1.setStaticField(10); SimpleClassKotlin1.Companion.companionFun("hello"); x = SimpleClassKotlin1.Companion.getStaticField(); SimpleClassKotlin1.Companion.setStaticField(10); 


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрд▓ рдХреЛрдЯрд▓рд┐рди рд╕реЗ рдорд╛рдиреНрдп рд╣реИрдВ:
 SimpleClassKotlin1.companionFun("hello!") SimpleClassKotlin1.staticField SimpleClassKotlin1.Companion.companionFun("hello!") SimpleClassKotlin1.Companion.staticField 


рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд╣рд▓реЗ 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреЛрдЯрд▓рд┐рди рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ 2. рд╢реЗрд╖ рдХреЙрд▓ рдХреЗрд╡рд▓ рдорд╛рдиреНрдп рд╣реИрдВред

рдЕрдм рдпрд╣ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рд╕реНрдерд┐рд░ рдиреЗрд╕реНрдЯреЗрдб рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдПрдирд╛рд▓реЙрдЧ рд╕рдВрд╢реЛрдзрдХ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдирд┐рдпрдорд┐рдд рдиреЗрд╕реНрдЯреЗрдб рд╡рд░реНрдЧ рд╣реИ:
 class SimpleClassKotlin1 { class LooksLikeNestedStatic { } } 


рдмрд╛рдЗрдЯрдХреЛрдб рдХреЛ рдЬрд╛рд╡рд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ:
 public final class SimpleClassKotlin1 { public static final class LooksLikeNestedStatic { } } 


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд░реНрдЧ рдЕрдВрддрд┐рдо рд╣реЛ, рддреЛ рдХреЛрдЯрд▓рд┐рди рдХреЛрдб рдореЗрдВ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд╕рдВрд╢реЛрдзрдХ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрд╣ рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╛рдж рдЖрдпрд╛ред

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

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

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣реА рд╕рдм рд╣реИ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдХреБрдЫ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░рд╢реНрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред

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


All Articles