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

рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рднрд╛рд╖рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЖрдорддреМрд░ рдкрд░ рднрд╛рд╖рд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрддрд┐ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдпрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдХреНрд╕рд░ рд╡реЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирдИ, рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рдорд╛рдореВрд▓реА рдмрджрд▓рд╛рд╡реЛрдВ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди рдЕрдХреНрд╕рд░ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди, рдХрдбрд╝рд╛рдИ рд╕реЗ рдмреЛрд▓рдирд╛, рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдирд╣реАрдВ рд╣реИрдВред рдпреЗ рд╕реВрдХреНрд╖реНрдо рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ рдЬреЛ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдпрд╛ рдЙрдирдХреЗ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рдХрдЯ рд╣реБрдП рд╣реИрдВред
рдЕрдирд╛рдо рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛рдПрдВ
рдЬрд╛рд╡рд╛ рдореЗрдВ, рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛рдПрдВ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ:
- рд╕реНрдерд┐рд░ рдШреЛрдВрд╕рд▓рд╛
- рдЖрдВрддрд░рд┐рдХ (рднреАрддрд░реА)
- рд╕реНрдерд╛рдиреАрдп (рд╡рд┐рдзрд┐ рд╕реНрдерд╛рдиреАрдп)
- рдмреЗрдирд╛рдореА (рдЕрдирд╛рдо)
рдЕрдирд╛рдо рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рдЕрдирд╛рдо рд╡рд░реНрдЧ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рд╡рд░реНрдЧ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╡реЗрдВрдЯ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдЕрдирд╛рдо рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдордХреНрдЦреА рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдПрдХ рдЕрдирд╛рдо рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рдПрдХ рдЧреИрд░-рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдПрдХ рдмрд┐рдВрджреБ рд╣реИ рдЬреЛ рдЕрдирд╛рдо рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╡рд╛рд╕реНрддрд╡
рдореЗрдВ рд╕реНрд░реЛрдд рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдмрдирд╛рддрд╛ рд╣реИ ред рдЗрд╕ рдЙрдкрд╡рд░реНрдЧ рдХреЛ
Class$X
рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ
Class
рдмрд╛рд╣рд░реА рд╡рд░реНрдЧ рд╣реИ, рдФрд░
X
рд╡рд╣ рдХреНрд░рдо рд╣реИ рдЬреЛ рдЙрд╕ рдХреНрд░рдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрд╛рд╣рд░реА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
AnonDemo$3
AnonDemo
рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рддреАрд╕рд░рд╛ рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рд╣реИред рдЖрдк рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рдмреБрд▓рд╛ рд╕рдХрддреЗред рдФрд░, рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рдЕрдирд╛рдо рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рд╣рдореЗрд╢рд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдмрдЪреНрдЪрд╛ рд╡рд░реНрдЧ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ (
var
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде, рдЬрд┐рд╕реЗ рд╣рдо рдЬрд▓реНрдж рд╣реА рджреЗрдЦреЗрдВрдЧреЗ)ред
рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
class Anon { }; public class AnonDemo { public static void main (String[] args) { Anon anonInner = new Anon () { public String toString() { return "Overriden"; }; public void doSomething() { System.out.println("Blah"); }; }; System.out.println(anonInner.toString()); anonInner.doSomething();
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рдПрдиреЙрди рд╡рд░реНрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЕрдирд╛рдо рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рдХреЛ рддреБрд░рдВрдд рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣рдордиреЗ
рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЕрдирд╛рдо рдЙрдкрд╡рд░реНрдЧ рдмрдирд╛рдпрд╛ ред рдЬрд╛рд╡рд╛ 10 рд╕реЗ рдкрд╣рд▓реЗ, рдЧреБрдордирд╛рдо рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛рдПрдВ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд╣реБрд░реВрдкреА рдереАрдВред рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ "рд▓рдЧрднрдЧ", рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧреИрд░-рдмрд╣реБрд░реВрдкреА рдХреЛрдб, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдВрдЧреЗред
new Anon() { public void foo() { System.out.println("Woah"); } }.foo();
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рд╣рдо рдПрдХ рдЕрдирд╛рдо рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдореВрд▓ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдмрдирд╛рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рдСрдкрд░реЗрд╢рди рдкреНрд░рдХреГрддрд┐ рдореЗрдВ рдмрд╣реБрд░реВрдкреА рд╣реЛрдЧрд╛ред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИрдВ рдХрд┐ рд╣рдо рдЙрд╕ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЧреБрдордирд╛рдо рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рд╣рдо рдЗрд╕реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ (
Class$X
) рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдереЗред
рдмрд╣реБрд░реВрдкрддрд╛ рдФрд░ рдЕрдирд╛рдо рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛рдПрдВ, рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрд░рд┐рдгрд╛рдо
рдХреНрдпрд╛ рдЖрдкрдиреЗ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рджреЗрдЦрд╛ рд╣реИ? рдЪреВрдВрдХрд┐ рд╣рдо рд╕рдмрдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд░реЗрдлрд░реЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдЬрд╝реНрдо рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣рдо рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдпрд╛ 2) рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд╡рд▓ 1) рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ, рдПрдХ рдЕрдирд╛рдо рдЖрдВрддрд░рд┐рдХ рд╢реНрд░реЗрдгреА рдХреА рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП
toString()
рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдПрдХ рдУрд╡рд░рд░рд╛рдЗрдб "рдУрд╡рд░рд░рд╛рдЗрдб" рдореВрд▓реНрдп
doSomething()
, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЙрд▓рд┐рдВрдЧ
doSomething()
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ?
рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд╡рд░реНрдЧ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдирд┐рдпрдо рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЕрдкрд╡рд╛рдж рд╣реИ рдпрджрд┐ рдХреЛрдИ рдЙрдкрд╡рд░реНрдЧ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЬрд╛рд╡рд╛, рдЗрд╕рдХреА рдмрд╣реБрд░реВрдкреА рдкреНрд░рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИ, рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╡рд░реНрдЪреБрдЕрд▓ рд╕рдмрдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рдпрдирд╛рдорд┐рдХ рдореЗрдердб рдбрд┐рд╕реНрдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдПрдХ
рдЖрднрд╛рд╕реА рд╡рд┐рдзрд┐ рдПрдХ рдРрд╕реА рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛ рдореЗрдВ, рд╕рднреА рдЧреИрд░-рдЕрдВрддрд┐рдо, рдЧреИрд░-рдирд┐рдЬреА рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ рддрд░реАрдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрднрд╛рд╕реА рд╣реИрдВред рдореИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмреЛрд▓рддрд╛ рд╣реВрдВ, рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди jvm рдЕрдиреБрдХреВрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрд╛рд╡рд╛ 10 рдХрд╛ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ?
рдПрдХ рдЫреЛрдЯреА рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬрд┐рд╕реЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
class Anon { }; public class AnonDemo { public static void main(String[] args) { var anonInner = new Anon() { public void hello() { System.out.println( "New method here, and you can easily access me in Java 10!\n" + "The class is: " + this.getClass() ); }; }; anonInner.hello();
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рдо
hello()
рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ! рд╢реИрддрд╛рди рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╣реИред рдпрджрд┐ рдЖрдк
var
рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрд░рдХреНрд╖рд┐рдд рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ,
рдЬрд╛рд╡рд╛ рд╕рдЯреАрдХ рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рдХреЗ рд╕рдЯреАрдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЙрдкрд╡рд░реНрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИрдВредрдЬрдм рд╣рдордиреЗ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рддреЛ рд╣рдордиреЗ рдЬрд╛рд╡рд╛ 10 рд╕реЗ рдкрд╣рд▓реЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдерд╛?
рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рджреВрд░ рдореЗрдВ, рд▓реЗрдХрд┐рди рдЕрддреАрдд рдХреЛ рдирд╣реАрдВ рднреБрд▓рд╛рдпрд╛ рдЧрдпрд╛, рднреАрддрд░ рдХреЗ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрдбрд╝реА рдмрд╣рд╕ рд╣реБрдИред рдФрд░ рдЕрдЧрд░ рдпрд╣ рдПрдХ рд░рд╣рд╕реНрдп рд╣реИ, рддреЛ рдпрд╣ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рдмрд╕реЗ рдмреБрд░реЗ рд░рд╣рд╕реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рдХрдИ рд▓реЛрдЧ рдЗрд╕ рддрдереНрдп рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдЕрдирд╛рдо рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рдХреЗ рд╕рдЯреАрдХ рд╕рдВрджрд░реНрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдЪрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рдХрдЪрд░рд╛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдмреЗрдирд╛рдореА рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдордХреНрдЦреА рдкрд░ рдПрдХ рдЕрдиреБрдмрдВрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рджреВрд╕рд░реЗ рд╡рд░реНрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╢рд╛рдпрдж, рдЙрддреНрд╕реБрдХ рдмрд╛рд░рдмрд░рд╛ рдЙрд╕рдХреА рдирд╛рдХ рд╕реЗ рдирд╣реАрдВ рдлрдЯреА рдереА, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмрд╣реБрдд рдЙрддреНрд╕реБрдХ рд╣реИрдВред рд╢рд╛рдпрдж рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдХреА рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП!
рдЬрд╛рд╡рд╛ 10 рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдорд╛рди рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
Anon anonInner2 = new Anon() { public void hello() { System.out.println("Woah! "); }; }; anonInner2.getClass().getMethod("hello").invoke(anonInner2);
рдкреВрд░реНрдг рд╕реНрд░реЛрдд
рдпрд╣рд╛рдВ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ
рд╣реИрдВ public class VarAnonInner { public static void main (String[] args) throws Exception { var anonInner = new Anon() { public void hello() { System.out.println("New method here, and you can easily access me in Java 10!\n" + "The class is: " + this.getClass() ); }; }; anonInner.hello(); Anon anonInner2 = new Anon() { public void hello() { System.out.println("Woah! "); }; }; anonInner2.getClass().getMethod("hello").invoke(anonInner2); new Anon() { public void hello() { System.out.println("Woah!!! "); }; }.hello();
рд╣рдо рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдпрд╣ рднреА рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд░ рдПрдХ
рдореБрдлреНрдд рд╡реЗрдмрд┐рдирд╛рд░ рдЖрдЬ 20.00 рдмрдЬреЗ рд╣реЛрдЧрд╛ред