什么是Java类的访问权限?

Python014

什么是Java类的访问权限?,第1张

在解释访问权限控制之前,先看一个场景。

在学生信息管理系统中,有两个类,分别是学生类和课程类,课程类提供了课程表和课程安排两个方法,学生类可以调用课程类提供的课程表查看课程安排,但不能调用课程安排方法,该如何处理,此时就可以利用访问权限来进行控制。

在Java中,提供了四种访问权限控制:默认访问权限(包访问权限),public,private以及protected。

默认访问权限(default):即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。

private: 对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。

protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护的”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。

public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。下表列出了四种访问权限的控制粒度:

例1:

Main.java:

package com.cxh.test1 

public class Main { 

    /**     

    * @param args     */ 

   public static void main(String[]  args) 

   {   

       // TODO Auto-generated method stub

       People     people = new People("Tom")     

       System.out.println(people.getName())    

    }

}

People.java

package com.cxh.test1

class People {   //默认访问权限(包访问权限) 

    private String name =  null

    public People(String name)

    { 

       this.name     = name   

     }

     public String getName() { 

       return     name 

     } 

    public void setName(String  name) 

    {        

        this.name     = name

    }

}

从代码可以看出,修饰People类采用的是默认访问权限,而由于People类和Main类在同一个包中,因此People类对于Main类是可见的。

public

访问范围最大,也就是任何其他类都可以调用这个类的方法或属性。

private

访问范围最小,也就是只能在这个类的内部使用,外部调用不了

protected

访问范围算是中间,只有本类和子类才能访问。

JavaWeb项目限制IP访问

Tomcat配置IP访问限制与允许(server.xml)

JavaWeb—过滤器的使用–禁止IP登陆

在实际的应用中,我们会遇到这样的情况,需要对某些Ip进行访问限制,不让非法的Ip访问应用系统。只有合法的Ip才能可以继续访问!