精华内容
下载资源
问答
  • java访问修饰符的范围
    千次阅读
    2020-06-09 21:11:01
    Java访问修饰符有四种,如下

    private \ default(缺省,也就是不带修饰符)\protected \public 

    访问的范围大小:private  < default,缺省 < protected  < public 

    范围如下:

    修饰符同一个类同一个包中的类同一个包中的类,不同包的子类所有类
    private可以不可以不可以不可以
    default(缺省)可以可以不可以不可以
    protected可以可以可以不可以
    public 可以可以可以可以

     

     

     

     

    1、private(私有):private修饰的属性和方法,不能被其他到类访问,也不能被子类继承和访问,只能在当前类访问。

    2、default (缺省):没有加修饰符的属性和方法,同一个包的其他类可访问和继承。

    3、protected(受保护的):被其修饰的属性和方法,同一个包的其他类可访问和继承,或者不同包的其他子类可访问。

    4、public(公有的):不存在访问权限,全部类都可以访问。

    更多相关内容
  • java的四种修饰符分别为: public protected friendly(默认级别) private 修饰范围:方法,属性,类 作用范围: 对应类:要么是public,要么是没有即空 对应方法和属性:

    java的四种修饰符分别为:
    public protected friendly(默认级别) private
    修饰范围:方法,属性,类
    作用范围:
    对应类:要么是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属性字段;包内子类除了父类的私有字段其余均能访问
    • 注意无法跨包继承
    展开全文
  • 前言之前以为Java和C#中访问修饰符差不多一样,后面才了解到还是有些差异,本节只讲解学习Java访问修饰符一些需要注意的地方或者从概念上不太好理解我们会通过实际例子来说明,若有错误之处,还请批评指正。访问...

    前言

    之前以为Java和C#中访问修饰符差不多一样,后面才了解到还是有些差异,本节只讲解学习Java中访问修饰符一些需要注意的地方或者从概念上不太好理解我们会通过实际例子来说明,若有错误之处,还请批评指正。

    访问修饰符

    Java默认(Default)访问修饰符权限和C#中类似(在C#中准确的说嵌套在其他类中默认可以为私有,如果直接在命名空间声明的类或结构体可以是public,也可以是internal,但一定不是私有,这里请注意),如果不提供任何访问修饰符,那么该类将具有包访问权限,比如如下在包com.company下创建不带访问修饰符的Person,然后再在该包中创建Person1,在该类中我们可以初始化Person

    packagecom.company;classPerson {

    }

    packagecom.company;public classPerson1 {public voidInitialPerson(){newPerson();

    }

    }

    但是接下来我们再创建一个包com.company1,在其包下通过Person2则不能初始化Person,此时必然会出现编译错误

    packagecom.company1;importcom.company.Person;public classPerson2 {public voidInitialPerson(){newPerson();

    }

    }

    09a8e1d6492aae3fe1c5a59e97de143d.png

    对于private私有修饰符则没有太多要讲解的了,除了包含该成员的类外,其他任何类都无法访问此类成员,Java中比较难理解的是protected修饰符, 该访问修饰符无论是Java还是C#主要用来处理继承的概念,凭借我们对C#的理解,这里我们认为是本包任何类以及实现该类的子类(不管子类是否在本包中还是其他包中) ,这种说法是完全正确的吗?子类在同一包中肯定可以访问,我们讨论在不同包中的情况会略显复杂一些,首先我们在包com.company定义Animal类,而在包com.company1中定义Tiger类,同时定义一个访问修饰符为protected的动物叫的方法如下:

    packagecom.company;public classAnimal {protected voidShout(){

    System.out.println("Animal");

    }

    }

    packagecom.company1;importcom.company.Animal;public class Tiger extendsAnimal {

    }

    接下来我们再在包com.company中定义一个类,然后在该类中定义方法,将上述位于不同包中的Animal和Tiger类作为参数变量,此时可以访问叫的方法

    packagecom.company;importcom.company1.Tiger;public classOtherAnimal {public voidOtherMethod(Animal animal, Tiger tiger)

    {

    animal.Shout();

    tiger.Shout();

    }

    }

    然后我们再在Tiger子类定义一个方法,无论是通过当前实例引用还是直接通过super关键字调用,都可以调用基类的叫方法

    packagecom.company;importcom.company1.Tiger;public classOtherAnimal {public voidOtherMethod(Animal animal, Tiger tiger)

    {

    animal.Shout();

    tiger.Shout();

    }

    }

    当然若我们在基类Animal中定义方法通过其基类变量访问叫的方法毫无疑问也是可以的,即使将叫的方法设置为私有的,因为在其基类内部

    public voidAnimalMethod(Animal animal) {

    animal.Shout();

    }

    若我们在子类Tiger中再定义一个方法,将Tiger作为变量传递进去,此时也是可以访问基类的叫方法

    public voidtigerMethod1(Tiger tiger) {

    tiger.Shout();

    }

    已经列举如上诸多情况,那是不是就说明在子类中一定能访问到叫方法呢?当然不是,如下两种情况则是无效的,会出现编译错误。

    当在基类包外直接引用基类变量访问无效

    我们在子类中再定义一个方法,直接引用基类的变量,然后访问叫方法,此时将无效。因为protected具有包访问权限,使得直接访问基类受保护成员变为私有或者说直接引用基类变量,无法判断其类型,因为可能在运行时是基类中的其他子类型,这么讲是否会更妥当一点。

    public voidtigerMethod2(Animal animal)

    {//发生编译错误

    animal.Shout();

    }

    当在子类包中的非子类直接引用子类变量访问无效

    我们在子类所在包中再定义一个类,然后引用子类变量访问叫方法,此时将无效。因为子类从其基类继承受保护的成员,此时会使它们对非子类私有:

    packagecom.company1;public classTiger1 {public voidtiger1Method(Tiger tiger){//发生编译错误

    tiger.Shout();

    }

    }

    总结

    网上有一部分文章对protected的总结是:本包任何类以及实现该类的子类(不管子类是否在本包中还是其他包中),这种说法不能说错误,只能说意思比较隐晦,因为直接读这段话可能就只考虑了在子类中通过子类实例或直接通过关键字super调用基类的受保护的成员,而可能会欠缺对非子类和直接通过基类引用受保护的成员的考虑。 protected修饰符无论是Java亦或是C#具有两层概念访问权限的组合,一是基于程序集(C#)、包(Java)权限、二是继承权限。所以对于Java的protected访问权限可总结为:本包任何类以及实现该类的子类,无论子类位于本包还是不同包,但对基类外部包直接访问私有,同时对外部包中非子类私有。

    展开全文
  • 详解java访问修饰符

    2021-03-07 01:36:47
    详解java访问修饰符为了防止初学者看到因为专业的术语而感觉晦涩难懂,我接下来尽量用生动比喻的说法来解释!首先第一点,我们来讲讲什么叫修饰符!看看这个名称,想想他的意思。修饰符!修饰符!,就是用来修饰的一...
  • 基本介绍 java 提供四种访问控制修饰符号,用于控制方法和属性(成员...四种访问修饰符的访问范围 访问级别 关键字 同类 同包 子类 不同包 公开 public √ √ √ √ 受保护 protected √ √ √ × 默认 无
  • 主要介绍了Java访问修饰符与变量的作用域讲解,是Java入门学习中的基础知识,需要的朋友可以参考下
  • Java中的访问修饰符--看一遍就会系列
  • 访问权限修饰符使其对应的方法和属性的访问范围: public :同包,不同包都能被访问。 如: public void method(){ } protected:同包,不同包中的子类可以被访问。 如: protected void method(){ ...
  • Java中的四种访问修饰符

    千次阅读 2021-03-09 02:38:56
    Java中修饰符分为两种:访问修饰符和非访问修饰符。修饰符中,有一些修饰符可以既可以修饰类,也可以修饰方法,但是有一些修饰符只能修饰符方法。今天这篇文章先介绍一下四种访问修饰符。1、private修饰符private...
  • Java访问修饰符详细介绍(史上最全,不看后悔!)
  • java的控制可分为两大类,一种是访问控制,另一种是非访问控制。我们上文提到的public,private便是访问控制了。 访问控制访问控制的作用是说明被声明的内容(类、属性、方法和构造方法)的访问权限 ...
  • java提供四种访问控制修饰符号控制方法和属性的访问权限,分别是public,protected,默认,private四种,每种访问修饰符定义的方法或者属性都能够限制其适用范围,具体参考下表。 二,使用的注意事项 ①,修饰符...
  • 为什么子类的访问修饰符要比父类大或者相同呢?
  • 1.访问修饰符 (1)private:只允许在本类内进行访问; (2)public:只要能正确加载public成员所在的类型的对象,那么就可以通过这个类型的对象去访问到public成员;即允许在任意位置访问; (3)protected:...
  • Java 中4种访问修饰符

    千次阅读 2021-02-07 16:00:31
    1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。 (2)对于protected修饰符,它主要的作用就是用来...
  • JAVA访问修饰符大归纳

    2008-11-07 10:43:42
    经过长时间的学习和经验的积累,我总结出JAVA访问修饰符的全部特性和使用范围,外加使用权限,另外我还总结了一下关于接口,抽象类的一些特性
  • Java访问修饰符作用范围

    千次阅读 2017-07-27 14:37:06
    类的访问权限修饰符有private、default、protected、public
  • java访问权限修饰符

    2022-04-24 22:19:01
    修饰符\访问权限范围 同一个类 同一个包的不同类中 不同包的子类中 同一个项目中 private 可见(不能修饰类(外部类)) ...
  • 访问权限修饰符[java]

    千次阅读 2022-02-28 19:43:11
    Java语言有四个权限访问修饰符,权限从大到小依次为: 1)public :公共权限,可以被任意类访问,不同包不同类依然可以访问 可修饰:类、成员变量、方法,内部类 2)protected:受保护的权限,可以被同包类访问,...
  • 9.1.基本介绍 java提供四种访问控制修饰符号,用于控制...9.2.四种访问修饰符的访问范围 访问级别 访问控制修饰符 本类 同包 子类(继承父类) 不同包 公开 public ✔ ✔ ✔ ✔ 受保护 protected ✔ ✔ ✔
  • java 访问修饰符的作用范围

    千次阅读 2019-03-03 08:40:07
    java访问修饰符的作用范围 访问修饰符\作用范围 本类 同包类 子类 其他 public √ √ √ √ protected √ √ √ × 缺省(default) √ √ × × private...
  • Java权限修饰符

    千次阅读 2021-09-03 14:39:59
    一、Java修饰符的分类: 权限修饰符:public、默认(包访问权限)、protected、private 其他修饰符:abstract、static、fianl、transient、volatile、native、synchronized、strictrp 二、权限修饰符: 修饰类...
  • Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。 如果没有指定访问修饰符,默认情况下,Scala 对象的访问级别都是 public。 Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,...
  • 访问修饰符 private:私有的,仅在类内部可见; default:默认不写访问修饰符,类内部,本包中可以访问; protected:受保护的,类内部,本包中,子类中都能访问; public:公有的,任何程序都能访问。 修饰符访问...
  • 示例可以在这里找到Java中的访问修饰符的完整说明。但是,它们如何与内部类互动?public与往常一样,可以无限制地访问任何能够访问该类型的范围。publicclassOuterClass{publicclassInnerClass{publicintx=5;}...
  • Java中有下面几个地方需要用到访问修饰符的: 一、访问修饰符 class 类名 {…} 这个地方可以用public修饰,也可以不用任何修饰符。 二、在类的内部 : 1. 修饰方法 2. 修饰属性(成员变量) 3. 修饰构造方法 这些...
  • Java权限修饰符
  • Java中四种访问修饰符的作用范围

    千次阅读 2020-09-05 21:19:15
    java的四种访问修饰符: private 私有的 package/friendly/default 不写 protected 受保护的 public 公共的 能够作用的范围
  • Java中有四种访问修饰符用于控制类、接口、变量和方法的封装程度。这四种修饰符分别为: private 私有的,类可见性 package/friendly/default 包级别的/友好的/默认的,包可见性 protected 受保护的,不同包,子父类...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,676
精华内容 30,270
关键字:

java访问修饰符的范围