当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > Java中的权限修饰符

Java中的权限修饰符 时间:2018-12-24      来源:华清远见

java面向对象的基本思想之一是封装细节并且公开接口。Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而向使用者暴露接口,但隐藏实现细节。访问控制分为四种级别:

(1)public: 用public修饰的类、类属变量及方法,包内及包外的任何类(包括子类和普通类)均可以访问;

(2)protected: 用protected修饰的类、类属变量及方法,包内的任何类及包外那些继承了该类的子类才能访问(包外的子类可以用Super来访问),protected重点突出继承;

(3)default: 如果一个类、类属变量及方法没有用任何修饰符(即没有用public、protected及private中任何一种修饰),则其访问权限为default(默认访问权限)。默认访问权限的类、类属变量及方法,包内的任何类(包括继承了此类的子类)都可以访问它,而对于包外的任何类都不能访问它(包括包外继承了此类的子类)。default重点突出包;

(4)private: 用private修饰的类、类属变量及方法,只有本类可以访问,而包内包外的任何类均不能访问它。

(1)适用范围<访问权限范围越小,安全性越高>,如图所示:

Java中的权限修饰符,JAVA培训

(2)类的修饰符:public:主类。 一个文件中只能有一个主类。 主类整个项目下都可以使用。

default:其他类。不能跨包使用。

  成员(变量和方法 ,本包可以使用。成员变量成员方法):public  protected  default  private

      public:在整个项目下都可以使用。

      default:在本包内可以使用,不能跨包。

      private:只有本类可以使用。其他类都不能使用。

      protected:不能跨包,但是跨包类如果是该类的子类,就可以用。用super来访问父类的成员

构造方法:

public  protected  default  private和成员的使用是一样的,没有任何区别。

例:

package com.fs.test;

import com.fs.TestAccess02;

/*为什么protected修饰的成员变量hight 可以在B类使用  A类就不行、

 * 

 * 因为protected修饰的关键字,虽然不能跨包使用。但是可以在子类中使用。

 * 

 * */

public class A {

public static void main(String[] args) {

//Test1是public修饰的类,是可以跨包使用的。

TestAccess02 t =new TestAccess02();

//default修饰的类,在其他包中不能使用。

// T t2 =new T();

//public修饰的成员变量age  是可以跨包使用的。

System.out.println(t.age);

//default修饰的成员变量name。 不可以跨包使用

// System.out.println(t.name);

//protected修饰的成员变量hight  不能跨包使用。

// System.out.println(t.hight);

}

}

class B extends TestAccess02{

public void method(){

//protected修饰的成员变量hight  可以在不同包子类中使用。

System.out.println(super.hight);

}

}

TestAccess02位于:package com.fs

A位于:package  com.fs.test

B 位于:package  com.fs.test,但是却是TestAccess02的子类

结论:protected修饰符所修饰的类(这句话中指父类)属成员变量和方法,只可以被子类访问,而不管子类是不是和父类位于同一个包中。default修饰符所修饰的类属成员变量和方法,只可被同一个包中的其他类访问,而不管其他类是不是该类的子类。protected属于子类限制修饰符,而default属于包限制修饰符。

上一篇:C++之权限限定符浅谈

下一篇:只要运气足够好,一刀也能999!JAVA随机数快速入门

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部