In Java, what is the difference between default, public, protected, and private?

+1 vote
211 views
asked Nov 3, 2017 by Hitesh Garg (352 points)  

What are all the access specifiers and their restrictions in Java?
What are the rules on when to use which access specifier?

1 Answer

+1 vote
answered Nov 4, 2017 by Rahul Singh (543 points)  
selected Nov 4, 2017 by Hitesh Garg
 
Best answer

As per the official tutorial below is the sorted list of access modifiers in which we accessibility increases from left to right..

private < default < protected < public

Table of access of different access modifiers at different levels-

            | Class | Package | Subclass | Subclass | World
            |       |         |(same pkg)|(diff pkg)| 
————————————+———————+—————————+——————————+——————————+————————
public      |   *   |    *    |    *     |     *    |   *     
————————————+———————+—————————+——————————+——————————+————————
protected   |   *   |    *    |    *     |     *    |         
————————————+———————+—————————+——————————+——————————+————————
no modifier |   *   |    *    |    *     |          |    
————————————+———————+—————————+——————————+——————————+————————
private     |   *   |         |          |          |    

* : accessible
blank : not accessible

124 questions

41 answers

3 comments

928 users

Most popular tags

java python python3 oracle database java-8 sql-server python2 oracle11g git oracle-12g command-line maven sql-server-2012 sql input array list fenitoina dilantin java的 angular javascripts git-branch intellij-idea hashmap collection file-io io temovate clobetasol ampicillin principen daclatasvir daklinza vasotec enalapril nexium esomeprazole tadalafil tadlis sildenafil citrate pefomax xeloda capecitabina clobetasol temovate stemetil prochlorperazine methotrexate methotrexate sildenafilo y dapoxetina super kamagra norvasc amlodipine citalopram celexa amitriptylin saroten vitamin b12 methylcobalamin valaciclovir valtrex zudena udenafil sildenafil citrate vigour depakote divalproex retin-a tretinoine sildenafil citrate ip-max nizoral ketoconazol ciaton tadalafil norethisteronacetat aygestin indomethacin indocin tiova tiotropium bromid finasterida proscar lithium carbonate eskalith finasterida propecia levitra vardenafil vantin cefpodoxima loxitane loxapine rulide roxithromycine avodart dutasterid tecnomax sildenafil citrate methylcobalamin vitamin b12 permethrin acticin etinilestradiol norgestrel ovral pk-merz amantadin cycrin medroxyprogesterone serophene clomiphene spironolactone aldactone mesalazin pentasa zebeta bisoprolol cytodrox hydroxyurea ampicillin ampicillin pletal cilostazol paracetamol panadol pepcid famotidina meclizine hydrochloride antivert donaton tadalafil sdf dsfs sdgfgsdg mac null-pointer-exception constructor oracle-12c terminal hibernate-5 hibernate git-merge es6 programming git-amend git-commit java-stream git-remote multithreading access-modifiers nested-classes
Welcome to Codingeek Q&A, where you can ask questions and receive answers from other members of the community.
...