什么是Java类的访问权限?

声明Java类时,必须要声明访问权限,访问权限是Java语言的权限关键字,可以是public、private、protected,它们到底起什么作用呢?能给出详细解释吗?... 声明Java类时,必须要声明访问权限,访问权限是Java语言的权限关键字,可以是public、private、protected,它们到底起什么作用呢?能给出详细解释吗? 展开
 我来答
郎哥编程课堂
2018-12-06 · 百度认证:优质教育领域创作者
郎哥编程课堂
专注计算机编程、互联网以及人工智能教育
向TA提问
展开全部
在解释访问权限控制之前,先看一个场景。

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

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

来自:求助得到的回答
小李的日记本
2018-12-06 · 超过13用户采纳过TA的回答
知道答主
回答量:33
采纳率:80%
帮助的人:3.8万
展开全部

在有多个类的情况下,private(私有)修饰的类、方法、属性、除了本类中,其他是访问不到的,你可以试一下,编译器肯定报错,protected(保护)修饰的类、方法、属性,在同一个包(java包的概念你应该清楚吧)或者其子类中是可以访问的,其他不可访问,访问报错。public(公开),相当于没有秘密,不论在哪里,随便用。

-- -- 来找亿千年信息科技有限公司的回答。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式