{"id":25527720,"date":"2022-06-11T02:49:35","date_gmt":"2022-06-10T21:19:35","guid":{"rendered":"https:\/\/entri.app\/blog\/?p=25527720"},"modified":"2022-11-23T15:33:29","modified_gmt":"2022-11-23T10:03:29","slug":"how-to-implement-nested-class-in-java","status":"publish","type":"post","link":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/","title":{"rendered":"How to Implement Nested Class in Java?"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69e4c07940a70\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69e4c07940a70\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#Static_nested_classes\" >Static nested classes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#Inner_classes\" >Inner classes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#Types_of_Classes_in_Java\" >Types of Classes in Java<\/a><\/li><\/ul><\/nav><\/div>\n<div>\n<div class=\"article-title\">\n<h1><\/h1>\n<\/div>\n<div class=\"article-buttons\">\n<div class=\"article--viewer_like tooltip\">In Java, it is possible to define a class within another class, such classes are known as nested classes. They enable you to logically group classes that are only used in one place, hence this increases the use of encapsulation, and creates more readable and maintainable code.<\/div>\n<div><a href=\"https:\/\/bit.ly\/3ELmCiA\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-25520910 size-full\" src=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square.png\" alt=\"Python and Machine Learning Square\" width=\"345\" height=\"345\" srcset=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square.png 345w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square-300x300.png 300w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square-150x150.png 150w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square-24x24.png 24w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square-48x48.png 48w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square-96x96.png 96w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square-75x75.png 75w\" sizes=\"auto, (max-width: 345px) 100vw, 345px\" \/><\/a><\/div>\n<\/div>\n<\/div>\n<div class=\"text\">\n<ul>\n<li>The scope of a nested class is bounded by the scope of its enclosing class.<\/li>\n<li>A nested class has access to the members, including private members, of the class in which it is nested. The reverse is also true i.e., the enclosing class can access the members of the nested class.<\/li>\n<li>A nested class is also a member of its enclosing class.<\/li>\n<li>As a member of its enclosing class, a nested class can be declared\u00a0private,\u00a0public,\u00a0protected, or\u00a0package private(default).<\/li>\n<\/ul>\n<h4 style=\"text-align: center;\"><strong><a href=\"https:\/\/bit.ly\/3ELmCiA\" target=\"_blank\" rel=\"noopener\">Learn Coding in your Language! Enroll Here!<\/a><\/strong><\/h4>\n<ul>\n<li>Nested classes are divided into two categories:\n<ol>\n<li><strong>static nested class :<\/strong>\u00a0Nested classes that are declared\u00a0<em>static<\/em>\u00a0are called static nested classes.<\/li>\n<li><strong>inner class :\u00a0<\/strong>An inner class is a non-static nested class.<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p><strong>Syntax:<\/strong><\/p>\n<pre>class OuterClass\r\n{\r\n...\r\n    class NestedClass\r\n    {\r\n        ...\r\n    }\r\n}<\/pre>\n<h2 style=\"text-align: left;\" align=\"center\"><span class=\"ez-toc-section\" id=\"Static_nested_classes\"><\/span><strong>Static nested classes<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In the case of normal or regular inner classes, there cannot be an inner class object without an outer class object existing. i.e., an object of the inner class is always strongly associated with an outer class object. But in the case of static nested class, Without an outer class object existing, there may be a static nested class object. i.e., an object of a static nested class is not strongly associated with the outer class object.<br \/>\nAs with class methods and variables, a static nested class is associated with its outer class. And like static class methods, a static nested class cannot refer directly to instance variables or methods defined in its enclosing class, it can use them only through an object reference.<br \/>\nThey are accessed using the enclosing class name.<\/p>\n<pre>OuterClass.StaticNestedClass\r\n<\/pre>\n<p>For example, to create an object for the static nested class, use this syntax:<\/p>\n<pre>OuterClass.StaticNestedClass nestedObject =\r\n     new OuterClass.StaticNestedClass();<\/pre>\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\">\n<div class=\"editor-buttons-div\" title=\"Run and Edit\">\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_453675\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"comments\">\/\/ Java program to demonstrate accessing<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"comments\">\/\/ a static nested class<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"comments\">\/\/ outer class<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">OuterClass<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ static member<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">static<\/code> <code class=\"keyword\">int<\/code> <code class=\"plain\">outer_x = <\/code><code class=\"value\">10<\/code><code class=\"plain\">;<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ instance(non-static) member<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">outer_y = <\/code><code class=\"value\">20<\/code><code class=\"plain\">;<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ private member<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">private<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">int<\/code> <code class=\"plain\">outer_private = <\/code><code class=\"value\">30<\/code><code class=\"plain\">;<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ static nested class<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">static<\/code> <code class=\"keyword\">class<\/code> <code class=\"plain\">StaticNestedClass<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">void<\/code> <code class=\"plain\">display()<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ can access static member of outer class<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"outer_x = \"<\/code> <code class=\"plain\">+ outer_x);<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ can access display private static member of outer class<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"outer_private = \"<\/code> <code class=\"plain\">+ outer_private);<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ The following statement will give compilation error<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ as static nested class cannot directly access non-static members<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ System.out.println(\"outer_y = \" + outer_y);<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"comments\">\/\/ Driver class<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"keyword\">public<\/code> <code class=\"keyword\">class<\/code> <code class=\"plain\">StaticNestedClassDemo<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String[] args)<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ accessing a static nested class<\/code><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">OuterClass.StaticNestedClass nestedObject = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">OuterClass.StaticNestedClass();<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">nestedObject.display();<\/code><\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Output:<\/strong><\/p>\n<pre>outer_x = 10\r\nouter_private = 30\r\n<\/pre>\n<h2 style=\"text-align: left;\" align=\"center\"><span class=\"ez-toc-section\" id=\"Inner_classes\"><\/span><strong>Inner classes<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To represent an inner class, you must first represent the outer class. Then, create the inner object within the outer object with this syntax:<\/p>\n<pre>OuterClass.InnerClass innerObject = outerObject.new InnerClass();\r\n<\/pre>\n<p><strong>There are two special kinds of inner classes :<\/strong><\/p>\n<ol>\n<li>Local inner classes<\/li>\n<li>Anonymous inner classes<\/li>\n<\/ol>\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_293073\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"comments\">\/\/ Java program to demonstrate accessing<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"comments\">\/\/ a inner class<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"comments\">\/\/ outer class<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">OuterClass<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ static member<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">static<\/code> <code class=\"keyword\">int<\/code> <code class=\"plain\">outer_x = <\/code><code class=\"value\">10<\/code><code class=\"plain\">;<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ instance(non-static) member<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">outer_y = <\/code><code class=\"value\">20<\/code><code class=\"plain\">;<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ private member<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">private<\/code> <code class=\"keyword\">int<\/code> <code class=\"plain\">outer_private = <\/code><code class=\"value\">30<\/code><code class=\"plain\">;<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ inner class<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">class<\/code> <code class=\"plain\">InnerClass<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">void<\/code> <code class=\"plain\">display()<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ can access static member of outer class<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"outer_x = \"<\/code> <code class=\"plain\">+ outer_x);<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ can also access non-static member of outer class<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"outer_y = \"<\/code> <code class=\"plain\">+ outer_y);<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ can also access a private member of the outer class<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"outer_private = \"<\/code> <code class=\"plain\">+ outer_private);<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"comments\">\/\/ Driver class<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"keyword\">public<\/code> <code class=\"keyword\">class<\/code> <code class=\"plain\">InnerClassDemo<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String[] args)<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ accessing an inner class<\/code><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">OuterClass outerObject = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">OuterClass();<\/code><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">OuterClass.InnerClass innerObject = outerObject.<\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">InnerClass();<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">innerObject.display();<\/code><\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p>Output:<\/p>\n<pre>outer_x = 10\r\nouter_y = 20\r\nouter_private = 30\r\n<\/pre>\n<p align=\"center\"><strong>Comparison between normal or regular class and static nested class<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>S.NO<\/th>\n<th>Normal\/Regular inner class<\/th>\n<th>Static nested class<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1.<\/td>\n<td>Without an outer class object existing, there cannot be an inner class object. That is, the inner class object is always associated with the outer class object.<\/td>\n<td>Without an outer class object existing, there may be a static nested class object. That is, static nested class object is not associated with the outer class object.<\/td>\n<\/tr>\n<tr>\n<td>2.<\/td>\n<td>Inside normal\/regular inner class, static members can\u2019t be declared.<\/td>\n<td>Inside static nested class, static members can be declared.<\/td>\n<\/tr>\n<tr>\n<td>3.<\/td>\n<td>As main() method can\u2019t be declared, regular inner class can\u2019t be invoked directly from the command prompt.<\/td>\n<td>As main() method can be declared, the static nested class can be invoked directly from the command prompt.<\/td>\n<\/tr>\n<tr>\n<td>4.<\/td>\n<td>Both static and non static members of outer class can be accessed directly.<\/td>\n<td>Only a static member of outer class can be accessed directly.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div>\n<div class=\"article-title\">\n<h2><span class=\"ez-toc-section\" id=\"Types_of_Classes_in_Java\"><\/span><strong>Types of Classes in Java<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<\/div>\n<\/div>\n<div class=\"text\">\n<p>A class is a blueprint in the Java programming language from which an individual object can be built. In Java, we may declare a class by using the class keyword. Class members and functions are declared simply within the class. Classes are required for the creation of Java programs. The object-oriented paradigm (OOP) allows users to describe real-world objects. A class is sometimes known as a user-defined data type. The following components make up a class declaration:<\/p>\n<ul>\n<li>Modifiers<\/li>\n<li>Class name<\/li>\n<li>Keywords<\/li>\n<li>The class body within curly brackets {}.<\/li>\n<\/ul>\n<h3><strong>Types of Classes<\/strong><\/h3>\n<ol>\n<li>Final Class<\/li>\n<li>Static Class<\/li>\n<li>Abstract Class<\/li>\n<li>Concrete Class<\/li>\n<li>POJO Class<\/li>\n<li>Singleton Class<\/li>\n<li>Inner Class<\/li>\n<\/ol>\n<h3><strong>1. Final Class<\/strong><\/h3>\n<p>When a variable, function, or class is declared final, its value persists throughout the program. Declaring a method with the final keyword indicates that the method cannot be overridden by subclasses, which means a class that is marked final cannot be subclasses. This is very useful when creating immutable classes such as \u00a0String classes. A class cannot be mutated unless it is declared final.<\/p>\n<div class=\"noIdeBtnDiv\">\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<ul class=\"responsive-tabs__list\" role=\"tablist\">\n<li id=\"tablist1-tab1\" class=\"responsive-tabs__list__item responsive-tabs__list__item--active\" role=\"tab\">Java<\/li>\n<\/ul>\n<div id=\"tablist1-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist1-tab1\">\n<div class=\"code-block\">\n<div class=\"code-container\">\n<div id=\"highlighter_917688\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.io.*;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.lang.*;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.util.*;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">final<\/code> <code class=\"keyword\">class<\/code> <code class=\"plain\">Base {<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">void<\/code> <code class=\"plain\">Display()<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.print(<\/code><code class=\"string\">\"Method for Base class.\"<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Extended <\/code><code class=\"keyword\">extends<\/code> <code class=\"plain\">Base {<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">void<\/code> <code class=\"plain\">Display()<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.print(<\/code><code class=\"string\">\"Method of Extended class.\"<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">GFG {<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String[] arg)<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">Extended d = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">Extended();<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">d.Display();<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h3><strong>2. Static Class<\/strong><\/h3>\n<p>Static is a Java word that explains how objects are kept in memory. A static object belongs to that class rather than instances of that class. The primary function of the class is to provide blueprints for the inherited classes. A static class has only static members. An object cannot be created for a static class.<\/p>\n<div class=\"noIdeBtnDiv\">\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<ul class=\"responsive-tabs__list\" role=\"tablist\">\n<li id=\"tablist2-tab1\" class=\"responsive-tabs__list__item responsive-tabs__list__item--active\" role=\"tab\">Java<\/li>\n<\/ul>\n<div id=\"tablist2-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist2-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\"><\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_962103\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.io.*;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.lang.*;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.util.*;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">staticclasses {<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">static<\/code> <code class=\"keyword\">int<\/code> <code class=\"plain\">s;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">met(<\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">x, <\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">y)<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"string\">\"static method to calculate sum\"<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">s = x + y;<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(x + <\/code><code class=\"string\">\"+\"<\/code> <code class=\"plain\">+ y);<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">static<\/code> <code class=\"keyword\">class<\/code> <code class=\"plain\">MyNestedClass {<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">static<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"string\">\"static block inside a static class\"<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">disp()<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">x1;<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">y1;<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">Scanner sc = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">Scanner(System.in);<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"Enter two numbers\"<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">x1 = sc.nextInt();<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">y1 = sc.nextInt();<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">met(x1, y1);<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"Sum of the 2 numbers-\"<\/code> <code class=\"plain\">+ s);<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"keyword\">public<\/code> <code class=\"keyword\">class<\/code> <code class=\"plain\">GFG {<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String args[])<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">staticclasses.MyNestedClass nestedclass<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">= <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">staticclasses.MyNestedClass();<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">nestedclass.disp();<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h3><strong>3. Abstract Class<\/strong><\/h3>\n<p>A class that has zero or more abstract methods and is specified with the abstract keyword is called an abstract class. We must rigorously extend the abstract classes to a concrete class in order to use them because they are incomplete classes. Constructors and static methods can also be included. It can have final methods, which force the subclass to keep the body of the method unhung.<\/p>\n<div class=\"noIdeBtnDiv\">\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<ul class=\"responsive-tabs__list\" role=\"tablist\">\n<li id=\"tablist3-tab1\" class=\"responsive-tabs__list__item responsive-tabs__list__item--active\" role=\"tab\">Java<\/li>\n<\/ul>\n<div id=\"tablist3-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist3-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_482681\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.io.*;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.lang.*;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.util.*;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">interface<\/code> <code class=\"plain\">X {<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">product(<\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">x, <\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">y);<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"keyword\">abstract<\/code> <code class=\"keyword\">class<\/code> <code class=\"plain\">Product <\/code><code class=\"keyword\">implements<\/code> <code class=\"plain\">X {<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">int<\/code> <code class=\"plain\">product(<\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">x, <\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">y) { <\/code><code class=\"keyword\">return<\/code> <code class=\"plain\">x * y; }<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"keyword\">class<\/code> <code class=\"plain\">GFG <\/code><code class=\"keyword\">extends<\/code> <code class=\"plain\">Product {<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String args[])<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">Main ob = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">Main();<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">p = ob.product(<\/code><code class=\"value\">20<\/code><code class=\"plain\">, <\/code><code class=\"value\">10<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"Product: \"<\/code> <code class=\"plain\">+ p);<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h3><strong>4. Concrete Class<\/strong><\/h3>\n<p>A normal class with an implementation for all of its methods and no abstract methods is called a concrete class. They are not permitted to have any processes that are not in use at the time. If it implements all of its methods, a concrete class can extend its parent, an abstract class, or an interface. It\u2019s a fully working, instantiable class.<\/p>\n<div class=\"noIdeBtnDiv\">\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<ul class=\"responsive-tabs__list\" role=\"tablist\">\n<li id=\"tablist4-tab1\" class=\"responsive-tabs__list__item responsive-tabs__list__item--active\" role=\"tab\">Java<\/li>\n<\/ul>\n<div id=\"tablist4-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist4-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_561675\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.io.*;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.lang.*;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.util.*;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">public<\/code> <code class=\"keyword\">class<\/code> <code class=\"plain\">GFG {<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">static<\/code> <code class=\"keyword\">int<\/code> <code class=\"plain\">sum(<\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">x, <\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">y) { <\/code><code class=\"keyword\">return<\/code> <code class=\"plain\">x + y; }<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String args[])<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">p = sum(<\/code><code class=\"value\">10<\/code><code class=\"plain\">, <\/code><code class=\"value\">8<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"Sum: \"<\/code> <code class=\"plain\">+ p);<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"text-align: center;\"><a href=\"https:\/\/bit.ly\/3ELmCiA\" target=\"_blank\" rel=\"noopener\"><strong>Learn to code from industry experts! Enroll here<\/strong><\/a><\/p>\n<h3><strong>5. POJO Class<\/strong><\/h3>\n<p>\u201cPlain Old Java Object\u201d is an abbreviation for \u201cPlain Old Java Object.\u201d A POJO class has only private variables with setter and getter methods to access them. It\u2019s a pure data structure with fields that can override some Object methods (e.g. equals) or other interfaces (e.g. serializable), but it has no behavior of its own.<\/p>\n<p><strong>POJO class properties:<\/strong><\/p>\n<ul>\n<li>When writing a POJO class, public setter and getter methods are required.<\/li>\n<li>Private variables should be used for all instance variables.<\/li>\n<li>It should not extend classes that have already been defined.<\/li>\n<li>It should not implement interfaces that have been pre-defined.<\/li>\n<\/ul>\n<div class=\"noIdeBtnDiv\">\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<ul class=\"responsive-tabs__list\" role=\"tablist\">\n<li id=\"tablist5-tab1\" class=\"responsive-tabs__list__item responsive-tabs__list__item--active\" role=\"tab\">Java<\/li>\n<\/ul>\n<div id=\"tablist5-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist5-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\"><\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_612234\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.io.*;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.lang.*;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.util.*;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">POJO {<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">private<\/code> <code class=\"keyword\">int<\/code> <code class=\"plain\">value = <\/code><code class=\"value\">365<\/code><code class=\"plain\">;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">int<\/code> <code class=\"plain\">getValue() { <\/code><code class=\"keyword\">return<\/code> <code class=\"plain\">value; }<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">setValue(<\/code><code class=\"keyword\">int<\/code> <code class=\"plain\">value) { <\/code><code class=\"keyword\">this<\/code><code class=\"plain\">.value = value; }<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"keyword\">public<\/code> <code class=\"keyword\">class<\/code> <code class=\"plain\">GFG {<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String args[])<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">POJO p = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">POJO();<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(p.getValue());<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h3>\u00a0<strong>6. Singleton Class<\/strong><\/h3>\n<p>A singleton class is one that has just one object at any one moment. If we try to create an instance again, the newly created instance refers to the previous one. Any modification we make to the class through any instance impacts the variables in that specific instance as well. It is commonly used to manage access while working with database connections and socket programming.<\/p>\n<div class=\"noIdeBtnDiv\">\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<ul class=\"responsive-tabs__list\" role=\"tablist\">\n<li id=\"tablist6-tab1\" class=\"responsive-tabs__list__item responsive-tabs__list__item--active\" role=\"tab\">Java<\/li>\n<\/ul>\n<div id=\"tablist6-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist6-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_126671\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.io.*;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.lang.*;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.util.*;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Singleton {<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">private<\/code> <code class=\"keyword\">static<\/code> <code class=\"plain\">Singleton single_instance = <\/code><code class=\"keyword\">null<\/code><code class=\"plain\">;<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"plain\">String s;<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">private<\/code> <code class=\"plain\">Singleton()<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">s = <\/code><code class=\"string\">\"This is a string part of Singleton class\"<\/code><code class=\"plain\">;<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ here a private constructor is used<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ Method<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"plain\">Singleton Singleton()<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">if<\/code> <code class=\"plain\">(single_instance == <\/code><code class=\"keyword\">null<\/code><code class=\"plain\">) {<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">single_instance = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">Singleton();<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">return<\/code> <code class=\"plain\">single_instance;<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"comments\">\/\/ Main class<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"keyword\">class<\/code> <code class=\"plain\">GFG {<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String args[])<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">Singleton x = Singleton.Singleton();<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">Singleton y = Singleton.Singleton();<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ change var of x<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">x.s = (x.s).toUpperCase();<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"String from x is --&gt;\"<\/code> <code class=\"plain\">+ x.s);<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"String from y is --&gt;\"<\/code> <code class=\"plain\">+ y.s);<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"\\n\"<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number40 index39 alt1\"><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">y.s = (y.s).toLowerCase();<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"String from x is --&gt;\"<\/code> <code class=\"plain\">+ x.s);<\/code><\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"String from y is --&gt;\"<\/code> <code class=\"plain\">+ y.s);<\/code><\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h3><strong>7. Inner Class<\/strong><\/h3>\n<p>We can define a class within a class in Java, and these classes are referred to as nested classes. It\u2019s used to logically arrange classes and achieve encapsulation. The outer class members (including private) can be accessed by the inner class.<\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<div class=\"noIdeBtnDiv\">\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<ul class=\"responsive-tabs__list\" role=\"tablist\">\n<li id=\"tablist7-tab1\" class=\"responsive-tabs__list__item responsive-tabs__list__item--active\" role=\"tab\">Java<\/li>\n<\/ul>\n<div id=\"tablist7-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist7-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_221922\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.io.*;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">OuterClass {<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ Write the code<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">class<\/code> <code class=\"plain\">NestedClass {<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\">\/\/ Write the code<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>There are 4 types of inner classes:<\/strong><\/p>\n<ul>\n<li>Nested Inner class<\/li>\n<li>Anonymous inner classes<\/li>\n<li>Static nested classes<\/li>\n<li>Method Local inner classes<\/li>\n<\/ul>\n<p><strong>A. Nested Inner Class:<\/strong><\/p>\n<p>It has access to an outer class\u2019s private instance variables. The access modifiers private, protected, public, and default can be applied to any instance variable.<\/p>\n<div class=\"noIdeBtnDiv\">\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<ul class=\"responsive-tabs__list\" role=\"tablist\">\n<li id=\"tablist8-tab1\" class=\"responsive-tabs__list__item responsive-tabs__list__item--active\" role=\"tab\">Java<\/li>\n<\/ul>\n<div id=\"tablist8-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist8-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_721433\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.io.*;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.lang.*;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.util.*;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Outer {<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">class<\/code> <code class=\"plain\">Inner {<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">show()<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"Inside a nested class\"<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"keyword\">class<\/code> <code class=\"plain\">GFG {<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String[] args)<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">Outer.Inner in = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">Outer().<\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">Inner();<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">in.show();<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>B. Anonymous Inner Class:<\/strong><\/p>\n<p>These classes are declared without any name.<\/p>\n<p><strong>Example 1: Using Subclass<\/strong><\/p>\n<div class=\"noIdeBtnDiv\">\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<ul class=\"responsive-tabs__list\" role=\"tablist\">\n<li id=\"tablist9-tab1\" class=\"responsive-tabs__list__item responsive-tabs__list__item--active\" role=\"tab\">Java<\/li>\n<\/ul>\n<div id=\"tablist9-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist9-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_970692\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.io.*;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.lang.*;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.util.*;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Outer {<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">void<\/code> <code class=\"plain\">show()<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"Show method of super class\"<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"keyword\">class<\/code> <code class=\"plain\">GFG {<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">static<\/code> <code class=\"plain\">Outer o = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">Outer() {<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">void<\/code> <code class=\"plain\">show()<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">super<\/code><code class=\"plain\">.show();<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"Demo class\"<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">};<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String[] args) { o.show(); }<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Example 2: Using Interface<\/strong><\/p>\n<div class=\"noIdeBtnDiv\">\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<ul class=\"responsive-tabs__list\" role=\"tablist\">\n<li id=\"tablist10-tab1\" class=\"responsive-tabs__list__item responsive-tabs__list__item--active\" role=\"tab\">Java<\/li>\n<\/ul>\n<div id=\"tablist10-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist10-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_433479\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.io.*;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.lang.*;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.util.*;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">GFG {<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">static<\/code> <code class=\"plain\">Hello h = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">Hello() {<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">show()<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"string\">\"This is an anonymous class\"<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">};<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String[] args) { h.show(); }<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"keyword\">interface<\/code> <code class=\"plain\">Hello {<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">void<\/code> <code class=\"plain\">show();<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>C. Static Nested Class:<\/strong><\/p>\n<p>These classes are like static members of the outer class.<\/p>\n<div class=\"noIdeBtnDiv\">\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<ul class=\"responsive-tabs__list\" role=\"tablist\">\n<li id=\"tablist11-tab1\" class=\"responsive-tabs__list__item responsive-tabs__list__item--active\" role=\"tab\">Java<\/li>\n<\/ul>\n<div id=\"tablist11-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist11-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_450678\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.io.*;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.lang.*;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.util.*;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">GFG {<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">static<\/code> <code class=\"keyword\">int<\/code> <code class=\"plain\">data = <\/code><code class=\"value\">100<\/code><code class=\"plain\">;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">static<\/code> <code class=\"keyword\">class<\/code> <code class=\"plain\">Inner {<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">void<\/code> <code class=\"plain\">msg()<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"data is \"<\/code> <code class=\"plain\">+ data);<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String args[])<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">GFG.Inner obj = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">GFG.Inner();<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">obj.msg();<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"text-align: center;\"><strong><a href=\"https:\/\/bit.ly\/3ELmCiA\" target=\"_blank\" rel=\"noopener\">Grab the opportunity to learn Python with Entri! Click Here<\/a><\/strong><\/p>\n<p><strong>D. Method Local inner Class:<\/strong><\/p>\n<p>An inner class can be declared within a method of an outer class.<\/p>\n<p><a href=\"https:\/\/bit.ly\/3ELmCiA\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-25522670 size-full\" src=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Rectangle-1.png\" alt=\"Python and Machine Learning Rectangle\" width=\"970\" height=\"250\" srcset=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Rectangle-1.png 970w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Rectangle-1-300x77.png 300w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Rectangle-1-768x198.png 768w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Rectangle-1-750x193.png 750w\" sizes=\"auto, (max-width: 970px) 100vw, 970px\" \/><\/a><\/p>\n<div class=\"noIdeBtnDiv\">\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<ul class=\"responsive-tabs__list\" role=\"tablist\">\n<li id=\"tablist12-tab1\" class=\"responsive-tabs__list__item responsive-tabs__list__item--active\" role=\"tab\">Java<\/li>\n<\/ul>\n<div id=\"tablist12-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist12-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_201301\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.io.*;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.lang.*;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"keyword\">import<\/code> <code class=\"plain\">java.util.*;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Outer {<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">void<\/code> <code class=\"plain\">outerMethod()<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"Outer Method\"<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">class<\/code> <code class=\"plain\">Inner {<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">void<\/code> <code class=\"plain\">innerMethod()<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">System.out.println(<\/code><code class=\"string\">\"Inner Method\"<\/code><code class=\"plain\">);<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">Inner y = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">Inner();<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">y.innerMethod();<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"keyword\">class<\/code> <code class=\"plain\">GFG {<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">public<\/code> <code class=\"keyword\">static<\/code> <code class=\"keyword\">void<\/code> <code class=\"plain\">main(String[] args)<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">{<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">Outer x = <\/code><code class=\"keyword\">new<\/code> <code class=\"plain\">Outer();<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">x.outerMethod();<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">}<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In Java, it is possible to define a class within another class, such classes are known as nested classes. They enable you to logically group classes that are only used in one place, hence this increases the use of encapsulation, and creates more readable and maintainable code. The scope of a nested class is bounded [&hellip;]<\/p>\n","protected":false},"author":111,"featured_media":25527947,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[802,1882],"tags":[],"class_list":["post-25527720","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles","category-java-programming"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Implement Nested Class in Java? - Entri Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Implement Nested Class in Java? - Entri Blog\" \/>\n<meta property=\"og:description\" content=\"In Java, it is possible to define a class within another class, such classes are known as nested classes. They enable you to logically group classes that are only used in one place, hence this increases the use of encapsulation, and creates more readable and maintainable code. The scope of a nested class is bounded [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Entri Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/entri.me\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-06-10T21:19:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-23T10:03:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/How-to-Implement-Nested-Class-in-Java.png\" \/>\n\t<meta property=\"og:image:width\" content=\"820\" \/>\n\t<meta property=\"og:image:height\" content=\"615\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Feeba Mahin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@entri_app\" \/>\n<meta name=\"twitter:site\" content=\"@entri_app\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Feeba Mahin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/\"},\"author\":{\"name\":\"Feeba Mahin\",\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/person\/f036dab84abae3dcc9390a1110d95d36\"},\"headline\":\"How to Implement Nested Class in Java?\",\"datePublished\":\"2022-06-10T21:19:35+00:00\",\"dateModified\":\"2022-11-23T10:03:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/\"},\"wordCount\":1235,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/entri.app\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/How-to-Implement-Nested-Class-in-Java.png\",\"articleSection\":[\"Articles\",\"Java Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/\",\"url\":\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/\",\"name\":\"How to Implement Nested Class in Java? - Entri Blog\",\"isPartOf\":{\"@id\":\"https:\/\/entri.app\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/How-to-Implement-Nested-Class-in-Java.png\",\"datePublished\":\"2022-06-10T21:19:35+00:00\",\"dateModified\":\"2022-11-23T10:03:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#primaryimage\",\"url\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/How-to-Implement-Nested-Class-in-Java.png\",\"contentUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/How-to-Implement-Nested-Class-in-Java.png\",\"width\":820,\"height\":615},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/entri.app\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Entri Skilling\",\"item\":\"https:\/\/entri.app\/blog\/category\/entri-skilling\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Java Programming\",\"item\":\"https:\/\/entri.app\/blog\/category\/entri-skilling\/java-programming\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"How to Implement Nested Class in Java?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/entri.app\/blog\/#website\",\"url\":\"https:\/\/entri.app\/blog\/\",\"name\":\"Entri Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/entri.app\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/entri.app\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/entri.app\/blog\/#organization\",\"name\":\"Entri App\",\"url\":\"https:\/\/entri.app\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png\",\"contentUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png\",\"width\":989,\"height\":446,\"caption\":\"Entri App\"},\"image\":{\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/entri.me\/\",\"https:\/\/x.com\/entri_app\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/person\/f036dab84abae3dcc9390a1110d95d36\",\"name\":\"Feeba Mahin\",\"url\":\"https:\/\/entri.app\/blog\/author\/feeba123\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Implement Nested Class in Java? - Entri Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/","og_locale":"en_US","og_type":"article","og_title":"How to Implement Nested Class in Java? - Entri Blog","og_description":"In Java, it is possible to define a class within another class, such classes are known as nested classes. They enable you to logically group classes that are only used in one place, hence this increases the use of encapsulation, and creates more readable and maintainable code. The scope of a nested class is bounded [&hellip;]","og_url":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/","og_site_name":"Entri Blog","article_publisher":"https:\/\/www.facebook.com\/entri.me\/","article_published_time":"2022-06-10T21:19:35+00:00","article_modified_time":"2022-11-23T10:03:29+00:00","og_image":[{"width":820,"height":615,"url":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/How-to-Implement-Nested-Class-in-Java.png","type":"image\/png"}],"author":"Feeba Mahin","twitter_card":"summary_large_image","twitter_creator":"@entri_app","twitter_site":"@entri_app","twitter_misc":{"Written by":"Feeba Mahin","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#article","isPartOf":{"@id":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/"},"author":{"name":"Feeba Mahin","@id":"https:\/\/entri.app\/blog\/#\/schema\/person\/f036dab84abae3dcc9390a1110d95d36"},"headline":"How to Implement Nested Class in Java?","datePublished":"2022-06-10T21:19:35+00:00","dateModified":"2022-11-23T10:03:29+00:00","mainEntityOfPage":{"@id":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/"},"wordCount":1235,"commentCount":0,"publisher":{"@id":"https:\/\/entri.app\/blog\/#organization"},"image":{"@id":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#primaryimage"},"thumbnailUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/How-to-Implement-Nested-Class-in-Java.png","articleSection":["Articles","Java Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/","url":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/","name":"How to Implement Nested Class in Java? - Entri Blog","isPartOf":{"@id":"https:\/\/entri.app\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#primaryimage"},"image":{"@id":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#primaryimage"},"thumbnailUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/How-to-Implement-Nested-Class-in-Java.png","datePublished":"2022-06-10T21:19:35+00:00","dateModified":"2022-11-23T10:03:29+00:00","breadcrumb":{"@id":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#primaryimage","url":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/How-to-Implement-Nested-Class-in-Java.png","contentUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/How-to-Implement-Nested-Class-in-Java.png","width":820,"height":615},{"@type":"BreadcrumbList","@id":"https:\/\/entri.app\/blog\/how-to-implement-nested-class-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/entri.app\/blog\/"},{"@type":"ListItem","position":2,"name":"Entri Skilling","item":"https:\/\/entri.app\/blog\/category\/entri-skilling\/"},{"@type":"ListItem","position":3,"name":"Java Programming","item":"https:\/\/entri.app\/blog\/category\/entri-skilling\/java-programming\/"},{"@type":"ListItem","position":4,"name":"How to Implement Nested Class in Java?"}]},{"@type":"WebSite","@id":"https:\/\/entri.app\/blog\/#website","url":"https:\/\/entri.app\/blog\/","name":"Entri Blog","description":"","publisher":{"@id":"https:\/\/entri.app\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/entri.app\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/entri.app\/blog\/#organization","name":"Entri App","url":"https:\/\/entri.app\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png","contentUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png","width":989,"height":446,"caption":"Entri App"},"image":{"@id":"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/entri.me\/","https:\/\/x.com\/entri_app"]},{"@type":"Person","@id":"https:\/\/entri.app\/blog\/#\/schema\/person\/f036dab84abae3dcc9390a1110d95d36","name":"Feeba Mahin","url":"https:\/\/entri.app\/blog\/author\/feeba123\/"}]}},"_links":{"self":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts\/25527720","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/users\/111"}],"replies":[{"embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/comments?post=25527720"}],"version-history":[{"count":8,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts\/25527720\/revisions"}],"predecessor-version":[{"id":25548034,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts\/25527720\/revisions\/25548034"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/media\/25527947"}],"wp:attachment":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/media?parent=25527720"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/categories?post=25527720"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/tags?post=25527720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}