What is the purpose of access modifiers?

后端 未结 6 2136
-上瘾入骨i
-上瘾入骨i 2020-12-19 03:04

I know this applies to many languages, and not just Java, but that is the language I\'m most familiar with.

I understand what the modifiers do, and how to use them.

6条回答
  •  不思量自难忘°
    2020-12-19 03:44

    Access modifiers are there to set access levels for classes, variables, methods and constructors. This provides an individual with the chance of controlling better the privacy of the application. There are 4 access modifiers.

    Modifier | Class | Package | Subclass | World

    no modifier:--|----yes----|------yes--------|--------no--------|-----no----|


    private:-------|----yes----|-------no--------|--------no--------|-----no----|


    public:--------|----yes----|------yes--------|-------yes-------|----yes----|


    protected:---|----yes----|------yes--------|-------yes-------|-----no-----|


    Regarding your question, we do need and use access modifiers because we need to restrict whom can call our program and in what way.

    Also, when it comes to variables if you make something public, that means that I have direct access to it. Therefore, I am allowed to do whatever I want without following your guidelines through your methods.

    For example:

    public int maxUsers;
    
    
    public void setMaxUsers(int users) throws IllegalArgumentException{
       if(users > 0 && users <= 1000){
          maxUsers = users;
       }else{
          throw new IllegalArgumentException("The users can not be less than 0 or greater than 1000")"
       }
    }
    

    Imagine your whole program being based on its maxUsers. Since, you give me the right to access that variable directly, I could do this: maxUsers = -15; and not use the setMaxUsers method, which will simply make your program behave in an abnormal way (in the best case).

提交回复
热议问题