什么是Java类的访问权限?

Python019

什么是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类是可见的。

private类型的是可以在本类当中随时访问和修改的 但是如果定义的是静态常量就不可修改 当然静态常量我们常常设为public类型的

比如

public class Integrhaha{

private in i

} 那么 这个i就是可以在Integerhaha这个类中访问的 比如这个类中有个方法 需要用到这个i 那么就没问题 用就行 ;可是若是在另外一个类中 则就不能访问这个i了

而public中的就没有限制了 想用就用 无论是谁

你可以到网上搜一下public private protected 这三个的区别 不会很难的>

如果没有写就是默认访问权限。

java的类有2种访问权限,public、默认

而方法和变量有4种:public、默认、protected、private

其中默认访问权限和protected很相似,有着细微的差别。

public意味着任何地方的其他类都能访问

默认则是同一个包的类可以访问。

protected表示同一个包的类可以访问,其他的包的该类的子类也可以访问。

private表示只有自己类能访问