{"id":53,"date":"2019-01-16T04:18:59","date_gmt":"2019-01-16T04:18:59","guid":{"rendered":"https:\/\/www.kindsonthegenius.com\/java\/?p=53"},"modified":"2019-03-02T04:36:02","modified_gmt":"2019-03-02T04:36:02","slug":"10-java-non-access-modifiers","status":"publish","type":"post","link":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/","title":{"rendered":"Java &#8211; Non-Access Modifiers"},"content":{"rendered":"<p>Java provides the following four non-access modifiers<\/p>\n<ol>\n<li><a href=\"#t1\">Static Modifier (static keyword)<\/a><\/li>\n<li><a href=\"#t2\">Final Modifier (final keyword)<\/a><\/li>\n<li><a href=\"#t3\">Abstract Modifier (abstract keyword)<\/a><\/li>\n<li><a href=\"#t4\">Synchronized Modifier (synchronized keyword)<\/a><\/li>\n<li><a href=\"#t5\">Volatile Modifier (volatile keyword)<\/a><\/li>\n<li><a href=\"#t6\">Transient Modifier(transient keyword)<\/a><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h4><strong id=\"t1\">1. Static Modifier (static keyword)<\/strong><\/h4>\n<p>Static modifier applies to variables and method. Does not apply to classes or interfaces. Let&#8217;s consider static variables and static class<\/p>\n<p>&nbsp;<\/p>\n<p><strong>(a) Static Variable<\/strong><\/p>\n<p>Static keyword is used to create static variable. A static variable does not depend on the objects or instances of the class. It is independent. Only one copy static variable exists even if there are many instances of the class.<\/p>\n<p>Static variables are also called class variables. This is because they belong to the class, not to objects. Also note that you cannot declare local variables as static<\/p>\n<p>&nbsp;<\/p>\n<p><strong>(b) Static Methods<\/strong><\/p>\n<p>Static keyword is used to\u00a0 create static methods. Just like static variable, static method is independent of instances of the class. They are also called class methods.<\/p>\n<p>You can access class variables and methods using the syntax &lt;class_name&gt;.&lt;method_name&gt;<\/p>\n<p>The example of Listing 1.0 illustrate how static variable works. I recommend you copy and run it to see the output. Note that throughout the program, it&#8217;s just one numberOfShapes variable that exists.<\/p>\n<p>&nbsp;<\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\"><span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #008800; font-weight: bold;\">class<\/span> <span style=\"color: #bb0066; font-weight: bold;\">Shape<\/span> <span style=\"color: #333333;\">{<\/span>\r\n\t<span style=\"color: #008800; font-weight: bold;\">static<\/span> <span style=\"color: #333399; font-weight: bold;\">int<\/span> numberOfShapes <span style=\"color: #333333;\">=<\/span> <span style=\"color: #0000dd; font-weight: bold;\">0<\/span><span style=\"color: #333333;\">;<\/span>\r\n\t\r\n\t<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #0066bb; font-weight: bold;\">Shape<\/span><span style=\"color: #333333;\">()<\/span> <span style=\"color: #333333;\">{<\/span>\r\n\t\tnumberOfShapes<span style=\"color: #333333;\">++;<\/span>\r\n\t<span style=\"color: #333333;\">}<\/span>\r\n\t\r\n\t<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #008800; font-weight: bold;\">static<\/span> <span style=\"color: #333399; font-weight: bold;\">void<\/span> <span style=\"color: #0066bb; font-weight: bold;\">main<\/span><span style=\"color: #333333;\">(<\/span>String<span style=\"color: #333333;\">[]<\/span> args<span style=\"color: #333333;\">)<\/span> <span style=\"color: #333333;\">{<\/span>\r\n\t\t\r\n\t\tShape shape1 <span style=\"color: #333333;\">=<\/span> <span style=\"color: #008800; font-weight: bold;\">new<\/span> Shape<span style=\"color: #333333;\">();<\/span>\r\n\t\tShape shape2 <span style=\"color: #333333;\">=<\/span> <span style=\"color: #008800; font-weight: bold;\">new<\/span> Shape<span style=\"color: #333333;\">();<\/span>\r\n\t\t\r\n\t\tSystem<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">out<\/span><span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">println<\/span><span style=\"color: #333333;\">(<\/span>numberOfShapes<span style=\"color: #333333;\">);<\/span>\r\n\t\t\r\n\t\tSystem<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">out<\/span><span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">println<\/span><span style=\"color: #333333;\">(<\/span>Shape<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">numberOfShapes<\/span><span style=\"color: #333333;\">);<\/span>\r\n\t\t\r\n\t\tShape<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">numberOfShapes<\/span> <span style=\"color: #333333;\">=<\/span> <span style=\"color: #0000dd; font-weight: bold;\">20<\/span><span style=\"color: #333333;\">;<\/span>\r\n\t\tSystem<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">out<\/span><span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">println<\/span><span style=\"color: #333333;\">(<\/span>numberOfShapes<span style=\"color: #333333;\">);<\/span>\r\n\t<span style=\"color: #333333;\">}<\/span>\r\n<span style=\"color: #333333;\">}<\/span>\r\n<\/pre>\n<\/div>\n<p>Listing 1.0: Example of Static Variable<\/p>\n<p>&nbsp;<\/p>\n<h4><strong id=\"t2\">2. Final Modifier (final keyword)<\/strong><\/h4>\n<p>The final modifier can be applied to classes, methods and variables.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>(a) Final Variables<\/strong><\/p>\n<p>If you declare a variable as final, then it is initialized only once. So you cannot change the value later. A final reference variable can never be re-assigned to refer to another object.<\/p>\n<p>Let&#8217;s take an example.<\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\"><span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #008800; font-weight: bold;\">class<\/span> <span style=\"color: #bb0066; font-weight: bold;\">Tester<\/span> <span style=\"color: #333333;\">{<\/span>\r\n\r\n\t<span style=\"color: #008800; font-weight: bold;\">final<\/span> <span style=\"color: #333399; font-weight: bold;\">int<\/span> pay <span style=\"color: #333333;\">=<\/span> <span style=\"color: #0000dd; font-weight: bold;\">1000<\/span><span style=\"color: #333333;\">;<\/span>\r\n\r\n\t<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #008800; font-weight: bold;\">static<\/span> <span style=\"color: #008800; font-weight: bold;\">final<\/span> <span style=\"color: #333399; font-weight: bold;\">double<\/span> OVERTIME <span style=\"color: #333333;\">=<\/span> <span style=\"color: #6600ee; font-weight: bold;\">200.00<\/span><span style=\"color: #333333;\">;<\/span>\r\n\t\r\n\t<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #008800; font-weight: bold;\">static<\/span> <span style=\"color: #333399; font-weight: bold;\">void<\/span> <span style=\"color: #0066bb; font-weight: bold;\">main<\/span><span style=\"color: #333333;\">(<\/span>String<span style=\"color: #333333;\">[]<\/span> args<span style=\"color: #333333;\">)<\/span> <span style=\"color: #333333;\">{<\/span>\r\n\t\tTester t <span style=\"color: #333333;\">=<\/span> <span style=\"color: #008800; font-weight: bold;\">new<\/span> Tester<span style=\"color: #333333;\">();<\/span>\r\n\t\tt<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">pay<\/span> <span style=\"color: #333333;\">=<\/span> <span style=\"color: #0000dd; font-weight: bold;\">45<\/span><span style=\"color: #333333;\">;<\/span> <span style=\"color: #888888;\">\/\/gives error<\/span>\r\n\t\t\r\n\t\tOVERTIME <span style=\"color: #333333;\">=<\/span> <span style=\"color: #0000dd; font-weight: bold;\">300<\/span><span style=\"color: #333333;\">;<\/span> <span style=\"color: #888888;\">\/\/Error..you cannot re-assign final variable<\/span>\r\n\t<span style=\"color: #333333;\">}<\/span>\r\n<span style=\"color: #333333;\">}<\/span>\r\n<\/pre>\n<\/div>\n<p>Listing 1.1: Final variables<\/p>\n<p>&nbsp;<\/p>\n<p>I recommend you try to run this code. You will notice the compiler error message. You cannot assign a final variable<\/p>\n<p>&nbsp;<\/p>\n<p><strong>(b) Final Methods<\/strong><\/p>\n<p>You use final for methods that need not be override in the subclass. Therefore, you cannot modify a final method in a child class.\u00a0 You can make a method final by adding the final keyword to it.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>(c) Final Classes<\/strong><\/p>\n<p>A final class is a class that cannot be subclassed. Therefore, you cannot create a subclass from a class declared as final. You can however instantiate a final class. Example is given in Listing 1.2<\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\"><span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #008800; font-weight: bold;\">final<\/span> <span style=\"color: #008800; font-weight: bold;\">class<\/span> <span style=\"color: #bb0066; font-weight: bold;\">Circle<\/span> <span style=\"color: #333333;\">{<\/span>\r\n\t<span style=\"color: #008800; font-weight: bold;\">private<\/span> <span style=\"color: #333399; font-weight: bold;\">int<\/span> height<span style=\"color: #333333;\">;<\/span>\t\r\n\t<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #0066bb; font-weight: bold;\">Circle<\/span><span style=\"color: #333333;\">()<\/span> <span style=\"color: #333333;\">{<\/span> <span style=\"color: #888888;\">\/\/constructor<\/span>\r\n\t<span style=\"color: #333333;\">}<\/span>\t\r\n<span style=\"color: #333333;\">}<\/span>\r\n\r\n<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #008800; font-weight: bold;\">class<\/span> <span style=\"color: #bb0066; font-weight: bold;\">newCircle<\/span> <span style=\"color: #008800; font-weight: bold;\">extends<\/span> Circle <span style=\"color: #333333;\">{<\/span> <span style=\"color: #888888;\">\/\/gives error<\/span>\r\n\t\r\n<span style=\"color: #333333;\">}<\/span>\r\n<\/pre>\n<\/div>\n<p>Listing 1.2: Final class<\/p>\n<p>&nbsp;<\/p>\n<p>I recommend you run the code in Listing 1.2. Notice the error message. You cannot subclass a final class.<\/p>\n<p>&nbsp;<\/p>\n<h4><strong id=\"t3\">3. Abstract Modifier (abstract keyword)<\/strong><\/h4>\n<p>You use abstract modifier for classes and method. Cannot be used for variables.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>(a) Abstract Class<\/strong><\/p>\n<p>You cannot instantiate an abstract class. This means you cannot create objects from abstract class. What then can you do with it? It exists only for creating subclasses. Therefore you extend an abstract class.<\/p>\n<p>It then follows that a class cannot be both final and abstract.<\/p>\n<p>If you have an abstract method in a class, then that class must be abstract. However, you can have an abstract class without any abstract method.<\/p>\n<p>Two examples of abstract classes are given in Listing 1.3.<\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\"><span style=\"color: #888888;\">\/\/An abtract class with both abstract and non-abstract methods<\/span>\r\n<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #008800; font-weight: bold;\">abstract<\/span> <span style=\"color: #008800; font-weight: bold;\">class<\/span> <span style=\"color: #bb0066; font-weight: bold;\">Triangle<\/span> <span style=\"color: #333333;\">{<\/span>\r\n\t<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #333399; font-weight: bold;\">int<\/span> height<span style=\"color: #333333;\">;<\/span>\t\r\n\r\n\t<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #333399; font-weight: bold;\">void<\/span> <span style=\"color: #0066bb; font-weight: bold;\">Draw<\/span><span style=\"color: #333333;\">(<\/span><span style=\"color: #333399; font-weight: bold;\">int<\/span> height<span style=\"color: #333333;\">)<\/span> <span style=\"color: #333333;\">{<\/span>  <span style=\"color: #888888;\">\/\/Non-abstract method<\/span>\r\n\t\t\r\n\t<span style=\"color: #333333;\">}<\/span>\r\n\t\r\n\t<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #008800; font-weight: bold;\">abstract<\/span> <span style=\"color: #333399; font-weight: bold;\">void<\/span> <span style=\"color: #0066bb; font-weight: bold;\">Draw<\/span><span style=\"color: #333333;\">();<\/span>  <span style=\"color: #888888;\">\/\/Abstract method<\/span>\r\n\t\r\n<span style=\"color: #333333;\">}<\/span>\r\n\r\n<span style=\"color: #888888;\">\/\/An abstract class with no abstract method<\/span>\r\n<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #008800; font-weight: bold;\">abstract<\/span> <span style=\"color: #008800; font-weight: bold;\">class<\/span> <span style=\"color: #bb0066; font-weight: bold;\">Square<\/span> <span style=\"color: #333333;\">{<\/span>\r\n\t<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #333399; font-weight: bold;\">int<\/span> side<span style=\"color: #333333;\">;<\/span>\t\r\n\r\n\t<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #333399; font-weight: bold;\">void<\/span> <span style=\"color: #0066bb; font-weight: bold;\">Draw<\/span><span style=\"color: #333333;\">(<\/span><span style=\"color: #333399; font-weight: bold;\">int<\/span> side<span style=\"color: #333333;\">)<\/span> <span style=\"color: #333333;\">{<\/span>  <span style=\"color: #888888;\">\/\/Non-abstract method<\/span>\r\n\t\t\r\n\t<span style=\"color: #333333;\">}<\/span>\t\r\n<span style=\"color: #333333;\">}<\/span>\r\n<\/pre>\n<\/div>\n<p>Listing 1.3: Abstract Classes<\/p>\n<p>&nbsp;<\/p>\n<p>Attempt these codes yourself. Then you will gradually get it very clear. If you have challenges, let me know in the comment below. I would give you the needed support<\/p>\n<p>Furthermore, you cannot have a method body in an abstract method.<\/p>\n<p>&nbsp;<\/p>\n<h4><strong id=\"t4\">4. Synchronized Modifier (synchronized keyword)<\/strong><\/h4>\n<p>You use this with applications the use threading. It tells the compiler that the method can only be accessed by one thread at a time. Moreover, you can combine synchronize with any of the four access level modifiers.<\/p>\n<p>Example is given below<\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\">\t<span style=\"color: #008800; font-weight: bold;\">public<\/span> <span style=\"color: #008800; font-weight: bold;\">synchronized<\/span> <span style=\"color: #333399; font-weight: bold;\">void<\/span> <span style=\"color: #0066bb; font-weight: bold;\">Display<\/span><span style=\"color: #333333;\">()<\/span> <span style=\"color: #333333;\">{<\/span>\r\n\t\t<span style=\"color: #888888;\">\/\/codes<\/span>\r\n\t<span style=\"color: #333333;\">}<\/span>\r\n<\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<h4><strong id=\"t5\">5. Volatile Modifier (volatile keyword)<\/strong><\/h4>\n<p>Applies to variables. You use volatile to indicate that a thread accessing the variable must always merge its own private copy of this variable with the master copy that is in memory.<\/p>\n<p>Therefore when a volatile variable is accessed, all cached copy of the variable in main memory is synchronized<\/p>\n<p>&nbsp;<\/p>\n<h4><strong id=\"t6\">6. Transient Modifier (transient keyword)<\/strong><\/h4>\n<p>This applies to variables. This modifier tells Java that the variable should be skipped when the object is being serialized.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Java provides the following four non-access modifiers Static Modifier (static keyword) Final Modifier (final keyword) Abstract Modifier (abstract keyword) Synchronized Modifier (synchronized keyword) Volatile Modifier &hellip; <\/p>\n","protected":false},"author":395,"featured_media":55,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-53","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Java - Non-Access Modifiers - Java Tutorials<\/title>\n<meta name=\"description\" content=\"In this tutorial, we learn about non-access modifiers in Java. This includes, final, static, abstract, volatile, transient and synchronized\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java - Non-Access Modifiers - Java Tutorials\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, we learn about non-access modifiers in Java. This includes, final, static, abstract, volatile, transient and synchronized\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/\" \/>\n<meta property=\"og:site_name\" content=\"Java Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2019-01-16T04:18:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-03-02T04:36:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kindsonthegenius.com\/java\/wp-content\/uploads\/sites\/9\/2019\/01\/Non-Access-Modifiers.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"950\" \/>\n\t<meta property=\"og:image:height\" content=\"518\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"kindsonthegenius\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"kindsonthegenius\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/\"},\"author\":{\"name\":\"kindsonthegenius\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/#\\\/schema\\\/person\\\/63a68934672db675ff0cd80d066510c2\"},\"headline\":\"Java &#8211; Non-Access Modifiers\",\"datePublished\":\"2019-01-16T04:18:59+00:00\",\"dateModified\":\"2019-03-02T04:36:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/\"},\"wordCount\":681,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/wp-content\\\/uploads\\\/sites\\\/9\\\/2019\\\/01\\\/Non-Access-Modifiers.jpg\",\"articleSection\":[\"Java Tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/\",\"url\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/\",\"name\":\"Java - Non-Access Modifiers - Java Tutorials\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/wp-content\\\/uploads\\\/sites\\\/9\\\/2019\\\/01\\\/Non-Access-Modifiers.jpg\",\"datePublished\":\"2019-01-16T04:18:59+00:00\",\"dateModified\":\"2019-03-02T04:36:02+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/#\\\/schema\\\/person\\\/63a68934672db675ff0cd80d066510c2\"},\"description\":\"In this tutorial, we learn about non-access modifiers in Java. This includes, final, static, abstract, volatile, transient and synchronized\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/wp-content\\\/uploads\\\/sites\\\/9\\\/2019\\\/01\\\/Non-Access-Modifiers.jpg\",\"contentUrl\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/wp-content\\\/uploads\\\/sites\\\/9\\\/2019\\\/01\\\/Non-Access-Modifiers.jpg\",\"width\":950,\"height\":518,\"caption\":\"Non-access modifiers in Java\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/10-java-non-access-modifiers\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java &#8211; Non-Access Modifiers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/#website\",\"url\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/\",\"name\":\"Java Tutorials\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/#\\\/schema\\\/person\\\/63a68934672db675ff0cd80d066510c2\",\"name\":\"kindsonthegenius\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3079a7f663b02e801d03cd075852a037af36bd179b5fbcd0603bae3dd7833a9b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3079a7f663b02e801d03cd075852a037af36bd179b5fbcd0603bae3dd7833a9b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3079a7f663b02e801d03cd075852a037af36bd179b5fbcd0603bae3dd7833a9b?s=96&d=mm&r=g\",\"caption\":\"kindsonthegenius\"},\"url\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/java\\\/author\\\/kindsonthegenius-2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java - Non-Access Modifiers - Java Tutorials","description":"In this tutorial, we learn about non-access modifiers in Java. This includes, final, static, abstract, volatile, transient and synchronized","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:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/","og_locale":"en_US","og_type":"article","og_title":"Java - Non-Access Modifiers - Java Tutorials","og_description":"In this tutorial, we learn about non-access modifiers in Java. This includes, final, static, abstract, volatile, transient and synchronized","og_url":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/","og_site_name":"Java Tutorials","article_published_time":"2019-01-16T04:18:59+00:00","article_modified_time":"2019-03-02T04:36:02+00:00","og_image":[{"width":950,"height":518,"url":"https:\/\/www.kindsonthegenius.com\/java\/wp-content\/uploads\/sites\/9\/2019\/01\/Non-Access-Modifiers.jpg","type":"image\/jpeg"}],"author":"kindsonthegenius","twitter_card":"summary_large_image","twitter_misc":{"Written by":"kindsonthegenius","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/#article","isPartOf":{"@id":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/"},"author":{"name":"kindsonthegenius","@id":"https:\/\/www.kindsonthegenius.com\/java\/#\/schema\/person\/63a68934672db675ff0cd80d066510c2"},"headline":"Java &#8211; Non-Access Modifiers","datePublished":"2019-01-16T04:18:59+00:00","dateModified":"2019-03-02T04:36:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/"},"wordCount":681,"commentCount":0,"image":{"@id":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kindsonthegenius.com\/java\/wp-content\/uploads\/sites\/9\/2019\/01\/Non-Access-Modifiers.jpg","articleSection":["Java Tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/","url":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/","name":"Java - Non-Access Modifiers - Java Tutorials","isPartOf":{"@id":"https:\/\/www.kindsonthegenius.com\/java\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/#primaryimage"},"image":{"@id":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kindsonthegenius.com\/java\/wp-content\/uploads\/sites\/9\/2019\/01\/Non-Access-Modifiers.jpg","datePublished":"2019-01-16T04:18:59+00:00","dateModified":"2019-03-02T04:36:02+00:00","author":{"@id":"https:\/\/www.kindsonthegenius.com\/java\/#\/schema\/person\/63a68934672db675ff0cd80d066510c2"},"description":"In this tutorial, we learn about non-access modifiers in Java. This includes, final, static, abstract, volatile, transient and synchronized","breadcrumb":{"@id":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/#primaryimage","url":"https:\/\/www.kindsonthegenius.com\/java\/wp-content\/uploads\/sites\/9\/2019\/01\/Non-Access-Modifiers.jpg","contentUrl":"https:\/\/www.kindsonthegenius.com\/java\/wp-content\/uploads\/sites\/9\/2019\/01\/Non-Access-Modifiers.jpg","width":950,"height":518,"caption":"Non-access modifiers in Java"},{"@type":"BreadcrumbList","@id":"https:\/\/www.kindsonthegenius.com\/java\/10-java-non-access-modifiers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.kindsonthegenius.com\/java\/"},{"@type":"ListItem","position":2,"name":"Java &#8211; Non-Access Modifiers"}]},{"@type":"WebSite","@id":"https:\/\/www.kindsonthegenius.com\/java\/#website","url":"https:\/\/www.kindsonthegenius.com\/java\/","name":"Java Tutorials","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kindsonthegenius.com\/java\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.kindsonthegenius.com\/java\/#\/schema\/person\/63a68934672db675ff0cd80d066510c2","name":"kindsonthegenius","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3079a7f663b02e801d03cd075852a037af36bd179b5fbcd0603bae3dd7833a9b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3079a7f663b02e801d03cd075852a037af36bd179b5fbcd0603bae3dd7833a9b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3079a7f663b02e801d03cd075852a037af36bd179b5fbcd0603bae3dd7833a9b?s=96&d=mm&r=g","caption":"kindsonthegenius"},"url":"https:\/\/www.kindsonthegenius.com\/java\/author\/kindsonthegenius-2\/"}]}},"_links":{"self":[{"href":"https:\/\/www.kindsonthegenius.com\/java\/wp-json\/wp\/v2\/posts\/53","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kindsonthegenius.com\/java\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kindsonthegenius.com\/java\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kindsonthegenius.com\/java\/wp-json\/wp\/v2\/users\/395"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kindsonthegenius.com\/java\/wp-json\/wp\/v2\/comments?post=53"}],"version-history":[{"count":1,"href":"https:\/\/www.kindsonthegenius.com\/java\/wp-json\/wp\/v2\/posts\/53\/revisions"}],"predecessor-version":[{"id":56,"href":"https:\/\/www.kindsonthegenius.com\/java\/wp-json\/wp\/v2\/posts\/53\/revisions\/56"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kindsonthegenius.com\/java\/wp-json\/wp\/v2\/media\/55"}],"wp:attachment":[{"href":"https:\/\/www.kindsonthegenius.com\/java\/wp-json\/wp\/v2\/media?parent=53"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kindsonthegenius.com\/java\/wp-json\/wp\/v2\/categories?post=53"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kindsonthegenius.com\/java\/wp-json\/wp\/v2\/tags?post=53"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}