java中的访问控制及其作用?

Python010

java中的访问控制及其作用?,第1张

1、public:public表明该数据成员、所有类都可以直接进行调用

2、private:private表示私有,私有的意思就是除了class自己之外,任何其他类都不可以直接使用

3、protected:同一个包下都可以访问

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

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

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

~~访问一般是是说访问权限

JAVA里面 准确来讲是有四个访问控制符 默认、public、private、protected等四个

pravite 只能在同一个类中访问

protected,可以在同一个类、同一个包、不同包中的子类访问

默认:在同一个类、同一个包中访问

public 同一个类,同一个包、不同包中的子类、不同包中的非子类 指访问变量。

~~调用一般是指调用方法和变量,其对象是方法,对象名.add()、对象名.i