1. рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ

рдЖрдкрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕реАрдЦрд╛ рд╣реИ рдХрд┐ рд╕реНрдереИрддрд┐рдХ рдЪрд░ рдФрд░ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рднреА рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рджреВрд░ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВрдЧреЗред

рдЬрд╛рд╡рд╛ рдореЗрдВ, рдЖрдкрдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рднреАрддрд░ рдХрдХреНрд╖рд╛рдПрдВ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рднреАрддрд░ рдХрдХреНрд╖рд╛рдПрдВ рднреА рдЬреЛ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рднреАрддрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рднреАрддрд░ рд╣реИрдВред рдпрд╣ рд╕рдм рдмрд╣реБрдд рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ:

class OuterClass
{
   variables of the class
   methods of the class

   class NestedClass
   {
      variables of the class
      methods of the class
   }
}

рд╣рдо рд╕рд┐рд░реНрдл рдПрдХ рд╡рд░реНрдЧ рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рдЕрдВрджрд░ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрддрдирд╛ рд╕рд░рд▓ рд╣реИред

рдЙрджрд╛рд╣рд░рдг:

public class Solution
{
   static ArrayList<Point> points = new ArrayList<Point>();

   public static void main(String[] args)
   {
      Point point = new Point();
      point.x = 100;
      point.y = 200;
      points.add(point);
   }

   static class Point
   {
      int x;
      int y;
   }
}

рдиреЗрд╕реНрдЯреЗрдб рдХреНрд▓рд╛рд╕реЗрд╕ рд╕реНрдЯреИрдЯрд┐рдХ рдпрд╛ рдиреЙрди-рд╕реНрдЯреИрдЯрд┐рдХ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рд╕реНрдЯреЗрдЯрд┐рдХ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЛ рд╕реНрдЯреИрдЯрд┐рдХ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд▓рд╛рд╕реЗрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдиреЙрди-рд╕реНрдЯреИрдЯрд┐рдХ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЛ рдЗрдирд░ рдХреНрд▓рд╛рд╕реЗрд╕ ( рдЗрдирд░ рдХреНрд▓рд╛рд╕реЗрд╕ ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред



2. рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ

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

рдХрдХреНрд╖рд╛ рдХрд╛ рдирд╛рдо

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

OuterClass.InnerClass

рдЙрджрд╛рд╣рд░рдг:

рдмрд╛рд╣рд░реА рд╡рд░реНрдЧ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд▓рд╛рд╕ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд▓рд╛рд╕ рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо
com.codegym.Solution
Point
com.codegym.Solution.Point
java.util.Map
Entry
java.util.Map.Entry
java.util.Files
DirectoryStream
java.util.Files.DirectoryStream
java.nio.WindowsPath
Closeable
java.nio.WindowsPath.Closeable

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

JDK рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг EntryрдХреНрд▓рд╛рд╕ рдХреЗ рдЕрдВрджрд░ рдХреА MapрдХреНрд▓рд╛рд╕ рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА-рд╡реИрд▓реНрдпреВ рдкреЗрдпрд░ рдХрд╛ рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ HashMap, рддреЛ рдЙрд╕ entrySet()рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ a рд▓реМрдЯрд╛рддреА рд╣реИ редSet<Map.Entry>

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рдмрд╛рд╣рд░реА рд╡рд░реНрдЧ рдФрд░ рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рд╡рд░реНрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИредMap.Entry

рдПрдХ рд╡рд╕реНрддреБ рдмрдирд╛рдирд╛

рд╕реНрдЯреИрдЯрд┐рдХ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд▓рд╛рд╕ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

OuterClass.NestedClass name = new OuterClass.NestedClass();

рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдирд╛рдо рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВред

рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛

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

OuterClass.NestedClass.staticMethod();

рд╕реНрдереИрддрд┐рдХ рдЪрд░ рддрдХ рдкрд╣реБрдБрдЪрдирд╛

рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рдЪрд░ рддрдХ рдкрд╣реБрдБрдЪрдирд╛ рднреА рдЖрд╕рд╛рди рд╣реИ:

OuterParent.NestedClass.nameOfStaticVariable


3. рд╕реНрдерд┐рд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ

рд╕реНрдЯреЗрдЯрд┐рдХ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЛ рд╕реНрдЯреИрдЯрд┐рдХ рдХрд╣рд▓рд╛рдиреЗ рдХрд╛ рдХрдо рд╕реЗ рдХрдо рдХрд╛рд░рдг рд╣реИред рд╡реЗ рдирд┐рдпрдорд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдХреА рддрд░рд╣ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ ред рдЧреИрд░ рд╕реНрдереИрддрд┐рдХ рддрд░реАрдХреЛрдВ рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд╣рд░реА рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕реНрдерд┐рд░ рдиреЗрд╕реНрдЯреЗрдб рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рд╕рд╛рдзрд╛рд░рдг (рдиреЗрд╕реНрдЯреЗрдб рдирд╣реАрдВ рдФрд░ рд╕реНрдерд┐рд░ рдирд╣реАрдВ) рд╡рд░реНрдЧ рд╕реЗ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг:

рд╕реНрдЯреЗрдЯрд┐рдХ рдиреЗрд╕реНрдЯреЗрдб рдкреНрд╡рд╛рдЗрдВрдЯ рдХреНрд▓рд╛рд╕ рд╕рд╛рдзрд╛рд░рдг рдмрд┐рдВрджреБ рд╡рд░реНрдЧред
public class Solution
{
   static ArrayList<Point> points;

   public static void main(String[] args)
   {
      Point point = new Point();
      point.x = 100;
      point.y = 200;
      points = new ArrayList<Point>();
      points.add(point);
   }

   static class Point
   {
      int x;
      int y;
   }
}
public class Solution
{
   static ArrayList<Point> points;

   public static void main(String[] args)
   {
      Point point = new Point();
      point.x = 100;
      point.y = 200;
      points = new ArrayList<Point>();
      points.add(point);
   }
}

class Point
{
   int x;
   int y;
}

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

рдЙрджрд╛рд╣рд░рдг:

рд╕реНрдЯреЗрдЯрд┐рдХ рдиреЗрд╕реНрдЯреЗрдб рдкреНрд╡рд╛рдЗрдВрдЯ рдХреНрд▓рд╛рд╕ рд╕рд╛рдзрд╛рд░рдг рдмрд┐рдВрджреБ рд╡рд░реНрдЧред
public class Solution
{
   private static ArrayList<Point> points;

   static class Point
   {
      int x;
      int y;

      public static void main(String[] args)
      {
         Point point = new Point();
         point.x = 100;
         point.y = 200;

         // This will work
         points = new ArrayList<Point>();
         points.add(point);
      }
   }
}
public class Solution
{
   private static ArrayList<Point> points;
}

class Point
{
   int x;
   int y;

   public static void main(String[] args)
   {
      Point point = new Point();
      point.x = 100;
      point.y = 200;

      // This will generate an error
      points = new ArrayList<Point>();
      points.add(point);
   }
}

mainрд╕рд╛рдзрд╛рд░рдг Pointрд╡рд░реНрдЧ рдореЗрдВ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╡рд░реНрдЧ рдХреЗ рдЪрд░ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдБрдЪ рд╕рдХрддреА рд╣реИрдВ !private static pointsSolution

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

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