What's the difference between public, default, protected, and private in Java? - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

What's the difference between public, default, protected, and private in Java?

Damian99Damian99 USAPosts: 116Member

Please clarify when to use public, default, protected, and private in Java.

Tagged:

Comments

  • FTLFTL Posts: 3Member

    I think these apply to members(variables and methods). They are used for access control.

    public= all other classes can access the variables/members.
    private= only that class can access the variables/members.
    default and proected are related to packages.
    default:
    only a class in the same package can access the members.
    protected - if i remember correctly- acts like private within a package, except for subclasses.

    For classes, you can only have public and non-public(default)

  • sreekanthgudesreekanthgude hyderabadPosts: 2Member
  • DavidMDavidM USAPosts: 342Member
    edited January 2014
    Modifier    | Class | Package | Subclass | World
    ————————————+———————+—————————+——————————+———————
    public      |  ✔    |    ✔    |    ✔     |   ✔
    ————————————+———————+—————————+——————————+———————
    protected   |  ✔    |    ✔    |    ✔     |   ✘
    ————————————+———————+—————————+——————————+———————
    no modifier |  ✔    |    ✔    |    ✘     |   ✘
    ————————————+———————+—————————+——————————+———————
    private     |  ✔    |    ✘    |    ✘     |   ✘
    

    Official documentation.

  • GouthamKumarGouthamKumar NellorePosts: 17Member

    The most strict level of access control allowed in Java is private. Any member variable or method marked as private will be only accessible in that class. But we might not need such a strong restriction all the time. So Java supports the other levels like default (no-modifier), protected, and public. Please note that while private, protected and public are keywords, the default access level is NOT a keyword. If we do not place either private, protected or public before a member variable or method, then it is automatically considered as default access level. For more details and practice programs please follow the link http://java.meritcampus.com/t/131/Other-levels-of-access-control

  • manishamanisha Posts: 32Member

    These are the access specifiers which are used to specify the level of access of a variable, method, constructor etc.

    There are following access specifiers in java:
    1) Public
    2) Private
    3) Protected
    4) Default (No modifier)

    By attaching these keywords with the member of class, we specify the level of access of members.

    Public access specifier specify that a method/attribute can be called from anywhere whereas private means the members of class can only be accessed inside the class, other classes can not access them. Private is strict access specifier from all.

    For more Details on access specifiers Refer following link:
    http://java.meritcampus.com/t/131/Other-levels-of-access-control?tc=mm224

Sign In or Register to comment.