精华内容
下载资源
问答
  • Java权限修饰符的作用范围
    2022-01-11 23:22:40

    访问权限修饰符的访问权限从高到低为:public > protected > (默认的) > private (其中默认的就是什么都没有)

    访问权限修饰符使其对应的方法和属性的访问范围:

    1. public :同包,不同包都能被访问。

      如:  public void method(){

               }

    2. protected:同包,不同包中的子类可以被访问。

      如:  protected void method(){

               }

    3. 友好(默认的): 仅同包下能被访问。

      如:   void method(){

               }

    4. private: 只能被类里面的成员方法和属性访问。在类的外面(同包,不同包)都不能被访问。

      如:  public  void method(){

             }

    更多相关内容
  • 1.访问修饰符 (1)private:只允许在本类内进行访问; (2)public:只要能正确加载public成员所在的类型的对象,那么就可以通过这个类型的对象去访问到public成员;即允许在任意位置访问; (3)protected:...

    1.访问修饰符

    (1)private:只允许在本类内进行访问;

    (2)public:只要能正确加载public成员所在的类型的对象,那么就可以通过这个类型的对象去访问到public成员;即允许在任意位置访问;

    (3)protected:允许在当前类进行访问;同包中的子类可以访问(即子类会继承父类中的protected成员);不同包(跨包)的子类也可以访问(和同包的情况相同);同一个包中的其他类(非子类)可以访问;

    跨包的非子类不能访问:

    即protected说白了就是,同包中的任何类都可以访问;不同包时,只有子类才能访问。

    (4)默认的访问权限,什么都不加:允许在当前类访问;跨包子类不允许访问;同包的子类可以访问;同包的非子类也可以访问;

    即默认访问权限是,只有同包才能访问;不同包时,无论是否是子类都不可以访问;

    注:对于什么业务场景,使用访问修饰符,这个需要在实际业务中提高选定能力。

    2.子类重写方法的访问修饰符

    子类重写的方法的访问范围要  >= 父类方法的访问范围;


    注加:

    注:20200922 (1)子类重写父类中的方法,要保持方法返回值类型不能变;(方法的重载,必须是方法的参数个数、顺序或类型不同才可以,,这样以后,重载方法的访问修饰符是什么就无所谓了)


    3.super关键字

    (1)super关键字基本用法

    super.成员属性   或   super.成员方法:可以在子类中调用父类的成员;(当然得是子类有访问权限的成员)

    如:(图片又臭又长,看个意思就行)

    注:当在子类中使用super关键字后,会在堆中新建一个父类对象的;其实,如果在子类中不写super,也会默认调用父类的无参构造方法的

    如果不使用super关键字,则是默认访问本类中的方法了:(就近?或子类已经重写了,当然选择子类的)

    假如子类没有重写父类的eat()方法,其自然会“调用父类的eat()方法”,因为子类已经继承父类的eat()的方法了,虽然在子类中没有显示地写出eat()方法,但eat()已经是子类的成员方法了。(这样一看,上面的所谓就近的说法就是错误的了,子类继承父类的成员方法,子类可以选择重写,也可照搬不重写,无论如何,子类都有了父类成员方法的一个拷贝(说法可能不准确),不使用super关键字,调用的都是子类中的方法;;;只有使用了super关键字后才是调用的父类中的方法)

    (2)super关键字不能在main()方法中使用

    因为main方法时static修饰的静态方法,而在静态方法中无法预支对象;静态先于对象,this指示当前类对象,super指示父类对象。(在super的使用场景中,super(好像、大概、也许、可能)需要依附于一个对象,)

    (这个还不太明白,,,,,)

    展开全文
  • 访问权限修饰符范围详解

    千次阅读 2017-11-17 13:55:52
    Java中修饰符总结: 访问控制修饰符  作用: 用于控制被修饰变量、方法、类的可见范围.  public 的访问级别是最高的,其次是 protected、默认和 private.  成员变量和成员方法可以处于4个访问级别中的一个:...

    Java中修饰符总结:

    1. 访问控制修饰符 

      作用: 用于控制被修饰变量、方法、类的可见范围. 
      public 的访问级别是最高的,其次是 protected、默认和 private. 
      成员变量和成员方法可以处于4个访问级别中的一个:公开、受保护、默认或私有. 
      存在继承关系时,父类不可以是 private,因为子类无法继承 
      顶层类可以处于公开或默认级别,顶层类不能被 protected 和 private 修饰. 
      局部变量不能被访问控制修饰符修饰 . 
      下图是在不同情况下各种权限修饰符的作用范围: 
      在不同情况下各种权限修饰符的作用范围 

      总结: 在不同包下面能够访问的权限修饰符只有: pulbic 与protected,但是 protected 必须要有继承的关系才能够访问。

    2. abstract 修饰符

      抽象类不能被实例化. 
      抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象方法. 
      如果子类没有实现父类中所有的抽象方法,子类也必须定义为抽象类. 
      抽象类不能被定义为 private、final、和 static 类型. 
      没有抽象的构造方法. 
      抽象方法没有方法体,如果一个方法没有方法体,那么该方法必须声明为抽象的方法. 
      非抽象类继承抽象类的时候,必须要把抽象类中的所有抽象方法实现.

    3. final 修饰符

      final 变量必须被显式初始化,并且只能被赋值一次值 
      final 修饰基本类型变量的时候, 该变量不能重新赋值 
      final 修饰引用类型变量的时候, 该变量不能重新指向其他对象 
      final 修饰的方法为最终的方法, 该方法不能被重写 
      private 类型的方法都默认为是final方法,因而也不能被子类重写 
      final 修饰的类为最终的类, 不能被继承

    4. static 修饰符

      如果声明了静态方法或变量,值是放在方法区,因为方法区是一个数据共享区;所以不管什么变量访问它,都是同一份. 
      在静态方法中不能直接访问实例方法和实例变量. 
      在静态方法中不能使用 this 和 super 关键字. 
      静态方法不能被 abstract 修饰. 
      静态的成员变量可以使用类名或者是对象进行访问,非静态成员变量只能使用对象进行访问. 
      静态函数可以直接访问静态的成员,但是不能够直接访问非静态成员.,非静态函数可以访问静态和非静态成员. 
      当类被加载时,静态代码块只能被执行一次。类中不同的静态方法代码块按他们在类中出现的顺序被依次执行. 
      当多个修饰符连用时,修饰符的顺序可以颠倒,不过作为普遍遵守的编码规范,通常把访问控制修饰符放在首位,其次是 static 或 abstact 修饰符,接着就是其他的修饰符

      注意:以下修饰符一起用是无意义的,会导致编译错误: 
      abstract 与 private 
      abstract 与 final 
      abstract 与 static


    1. 首先,说明public的权限问题,定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。

      这里要注意:当重写父类成员函数时,子类的成员函数不能比父类的成员函数权限小,一般重写把权限定义相同即可。

      代码如图所示:

      java中4种修饰符访问权限的区别及详解全过程
      java中4种修饰符访问权限的区别及详解全过程
      java中4种修饰符访问权限的区别及详解全过程
      java中4种修饰符访问权限的区别及详解全过程
    2. 上边把类都建好了,然后开始测试,如果均能编译通过,就说明用public修饰的类在本类、同包、子类、其他包中互相访问都是可以的。测试结果如下:(事实证明可以访问)

      java中4种修饰符访问权限的区别及详解全过程
    3. 再来说明protect权限问题,同样定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。

      这里要注意:public可以修饰任何类而且类名要与文件名相同,protected不可以修饰类。

      Person代码如图所示,其他3个类同上:

      java中4种修饰符访问权限的区别及详解全过程
    4. 同样开始测试protected权限问题,如果Person、People、Student能编译通过,就说明用protected修饰的类在本类、同包、子类中互相访问都是可以的,而Computer编译不通过说明protected不可以在包外没有继承关系的类中互相访问。测试结果如下:

      java中4种修饰符访问权限的区别及详解全过程
    5. 接着说明default权限问题,同样定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。

      这里要注意:default(不写默认指定default)同public一样可以修饰任何类而且类名要与文件名相同。

      Person代码如图所示,其他3个类同上:

      java中4种修饰符访问权限的区别及详解全过程
    6. 继续开始测试default权限问题,如果Person、People能编译通过,就说明用default修饰的类在本类、同包中互相访问都是可以的,而Student、Computer编译不通过说明default不可以在包外不管有没有继承关系的类都不可以互相访问。测试结果如下:

      java中4种修饰符访问权限的区别及详解全过程
      java中4种修饰符访问权限的区别及详解全过程
    7. 最后说明private权限问题,同样定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。

      这里要注意:private同protected一样不可以修饰类。

      Person代码如图所示,其他3个类同上:

      java中4种修饰符访问权限的区别及详解全过程
    8. 最后测试private权限问题,private意思是私有的,如果Person能编译通过而People、Student、Computer编译不通过,就说明用private修饰的类只能在本类中访问。测试结果如下:

    9. 综上所述,java中4种修饰符访问权限的区别及详解全过程就此演示完了,再一次说明java语言的严谨性和安全性,我们在以后使用这4中修饰符时创建一个类,这个类的权限尽量要小,这样才能减少漏洞和提高安全性,从而体现java面向对象的封装性。

      最后如图再回忆一下java中4个修饰符的访问权限:

      java中4种修饰符访问权限的区别及详解全过程


    展开全文
  • 4、子类复写父类中的方法时,子类中的 访问修饰符范围要大于等于 父类的【 继承只能发扬光大,至少保持不变。不可以丢失东西。】 以上这篇浅谈php中的访问修饰符private、protected、public的作用范围就是小编分享...
  • 注释:左图为各种权限范围范围由大到小),右图标明两种修饰符的组合对应的访问权限 总结 只有当类访问权限为public,类方法和属性也为public时,方法和属性才可以适用于所有类(A) 当类方法和属性为private,...

    Java类前修饰符有 public 和 默认(缺省)

    Java属性和方法前的修饰符有 public, protected, 默认(缺省),private

    权限关系简图

    image-20211029165827467

    注释:左图为各种权限范围(范围由大到小),右图标明两种修饰符的组合对应的访问权限

    总结

    • 只有当类访问权限为public,类方法和属性也为public时,方法和属性才可以适用于所有类(A)
    • 当类方法和属性为private,不论类权限是什么,方法和属性都只能仅本类访问(D)
    • 当类方法为public,方法和属性权限是protected时,方法和属性可供包内所有类以及包外的子类访问(B + G)
    • 除了上述的三种情况,其余皆为包内访问权限(B)
    • 类中static修饰的属性和方法也遵从上述权限控制规则(没有例外
    • 如果是子类继承父类,包外子类可以访问public和protected属性字段;包内子类除了父类的私有字段其余均能访问
    • 注意无法跨包继承
    展开全文
  • 修饰符范围

    2019-02-25 10:58:39
  • 本文详细分析了C#类的访问修饰符用法,分享给大家供大家参考。具体用法分析如下: 默认情况下,类声明为内部的,即只有当前工程中的代码才能访问它。可以用internal访问修饰符关键字显式指定,但这不是必须的,类在...
  • 访问修饰符范围

    2021-08-02 10:38:25
    1. 什么是访问修饰符: 确定类、变量、方法等能不能够被正常访问...2.访问修饰符范围 public:在任何地方都可以正常访问,权限最大 protected: 同包、子类、同类 默认(缺省: 同包、同类 private : 同类 ...
  • java的四种修饰符分别为: public protected friendly(默认级别) private 修饰范围:方法,属性,类 作用范围: 对应类:要么是public,要么是没有即空 对应方法和属性:
  • 不同权限修饰符的访问能力: 本类中 同包中 不同包的子类中 不同包的无关类 public √ √ √ √ protected √ √ √ × 空 √ √ × × private √ ...
  • 修饰符的适用范围

    2020-05-28 20:04:44
    Java修饰符适用范围总表 strictfp strictfp关键字的含义是精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字,Java的编译器和运行时环境在浮点运算上不一定令人满意。一旦使用了strictfp来...
  • Java四种修饰符的作用范围

    千次阅读 2020-05-24 13:41:00
    近期又重新翻了下Java基础,对访问权限修饰符public/protected/dafault/private又重新有了一层认识,之前只是知道他们的权限即作用范围分别是所有包、同一包及其他包子类、同一包、自己。但具体到类、成员变量及方法...
  • java四大权限修饰符作用范围 public protected default private 同一个类 √ √ √ √ 同一个包 √ √ √ 子类(可不同包) √ √ 不同包 √ private(私有的) private可以修饰成员变量,成员...
  • 访问修饰符一共有四种: 1,public 共有修饰符,所有类都可以访问,可以修饰类、数据成员、构造方法及方法成员 2,private 私有修饰符,只有在当前类中可以调用,可以修饰数据成员、构造方法及方法成员,不可以...
  • java基础-访问修饰符的作用范围

    千次阅读 2020-06-09 21:11:01
    Java访问修饰符有四种,如下 private \ default(缺省,也就是不带修饰符)\protected \public 访问的范围大小:private < default,缺省 < protected < public 范围如下: 修饰符 同一个类 同一个...
  • 访问修饰符作用范围由大到小排列

    万次阅读 2019-09-26 10:44:46
    public>protected>default>private 转载于:https://www.cnblogs.com/LoganChen/p/7028106.html
  • 访问修饰符 private:私有的,仅在类内部可见; default:默认不写访问修饰符,类内部,本包中可以访问; protected:受保护的,类内部,本包中,子类中都能访问; public:公有的,任何程序都能访问。 修饰符访问...
  • java中的修饰符分为类修饰符,字段修饰符,方法修饰符。 权限访问修饰符有public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。 final修饰符 final的意思是不可变,他可以修饰类...
  • 前言之前以为Java和C#中访问修饰符差不多一样,后面才了解到还是有些差异,本节只讲解学习Java中访问修饰符一些需要注意的地方或者从概念上不太好理解我们会通过实际例子来说明,若有错误之处,还请批评指正。...
  • 1、抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。原因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可以通过类名...
  • 在Java中提供了四种访问权限, 使用不同的访问权限修饰符修饰时, 被修饰的内容会有不同的访问权限, public: 公共的。 protected: 受保护的 default: 默认的 private: 私有的 权限 使用规范 public权限...
  • java 修饰符范围

    2015-02-06 13:52:05
    java中类的修饰符有以下几种:private 、default(package)、protect、public,其范围如下表: 范围 private default protected public 同一类 √ √ √ √ 同一包中的类   √ √ √ 同一包中的类、不同...
  • 差点没把我嘴气歪,竟然有博文将子类继承的父类的成员范围修饰符的修饰访问权限范围挂钩。。。。。。 简直是扯淡。 什么是权限修饰符? 权限修饰符是用来控制对类和类的成员变量以及成员方法的访问范围的。 和...
  • java四种修饰符的限制范围

    千次阅读 2018-07-15 13:35:29
    访问权限本类本包不同包子类不同包非子类public√√√√protected√√√ default√√ private√ 
  • JAVA 中的修饰符的适用范围

    万次阅读 2019-02-23 11:10:07
    还有其他的一些修饰符,此处给出Java修饰符适用范围总表(见表6.3)   在表 6.3中 ,包访问控制符是一个特殊的修饰符,不用任何访问控制符的就是包访问控制。对于初始化块和局部成员而言,它们不能使用任何访问...
  • java中的各种修饰符作用范围

    万次阅读 多人点赞 2017-07-31 11:16:17
    访问修饰符\作用范围 所在类 同一包内其他类 其他包内子类 其他包内非子类 private 可以访问 不可以 不可以 不可以 缺省 可以 可以 不可以 不可以 protected 可以 可以 可以 不...
  • 总结相关知识点,备后期学习理解;...public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。 private: Ja
  • 接上一节内容…… ...* 3、访问修饰符,子类中方法的重写访问修饰符访问范围需要大于等于父类的访问范围 * 4、与方法的参数名无关 在InheritDog类进行方法重写: public void eat(){ System.out.p
  • 子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符,子类不能重写父类中被private修饰的方法 1,对于返回值:父类是void,子类一定是void 如果父类是基本数据类型,子类只能是同样的基本数据类型 2...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 142,950
精华内容 57,180
关键字:

修饰符范围

友情链接: GJQXS0.rar