当前位置:首页 » 文件传输 » 四种访问权限修饰符的范围
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

四种访问权限修饰符的范围

发布时间: 2023-08-15 17:27:38

⑴ 简述 private、 protected、 public、 internal 修饰符的访问权限。

public:类或成员可以由同一程序集中的任何其他代码或引用它的另一个程序集访问。

private:只能通过同一个类或结构中的代码访问类型或成员。

protected:类或成员只能由同一个类中的代码访问,或者在从该类派生的类中访问。

internal:类或成员可以由同一程序集中的任何代码访问,但不能从另一个程序集访问。

(1)四种访问权限修饰符的范围扩展阅读:

private、 protected、 public、 internal 修饰符除了可以单独使用,还可以组合使用。

protected internal:访问仅限于从包含类派生的当前程序集或类型。

private protected: 访问仅限于从当前程序集中的包含类派生的包含类或类型。

除了使用protected internal或private protected组合时,成员或类只允许使用一个访问修

饰符。名称空间上不允许访问修饰符。命名空间没有访问限制。

根据成员声明发生的上下文,仅允许某些声明的可访问性。如果在成员声明中未指定访问修饰

符,则使用默认辅助功能。

顶级类型(不嵌套在其他类型中)只能具有internal或public可访问性。这些类型的默认可访

问性是internal。

⑵ 简述访问权限修饰符

public(公有的)、protected(受保护的)、default(默认的)、private(私有的)public:权限最大,所有的类中都可以访改知问protected:在同一类中和同一包的其它类以及不同包的其子类可以访问姿扮default:就是没有修饰单词,在同一类中和同一包中的其他类访问private:只能在本类中访问,在其他类中要访问的话,需要该类中提供的访问方法或取迹歼灶值方法

⑶ 访问修饰符有4个分别是public,private,protected,default。请问下怎么使用分别什么时候用

java作用域public ,private ,protected 及不写时的区别
在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友。

1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用

2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。

3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。

4、default 则在包内包外的子类都可见。

作用域 当前类 同一package 子孙类 其他package

public √ √ √ √

protected √ √ √ ×

friendly √ √ × ×

private √ × × ×

⑷ java 中有多少修饰符,它们的访问权限又是什么

楼主问的是访问控制符,只有访问控制符才说访问权限

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

pravite 只能在同一个类中访问
protected,可以在同一个类、同一个包、不同包中的子类访问
默认:在同一个类、同一个包中访问
public 同一个类,同一个包、不同包中的子类、不同包中的非子类

不知道楼主问的是不是这,如果不是可以再留言

⑸ java 的访问修饰符是什么

Java中的访问修饰符

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

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

(2)protected: 用protected修饰的类、类属变量及方法,包内的任何类及包外那些继承了该类的子类才能访问(此处稍后解释),protected重点突出继承;

(3)default: 如果一个类、类属变量及方法没有用任何修饰符(即没有用public、protected及private中任何一种修饰),则其访问权限为default(默认访问权限)。默

认访问权限的类、类属变量及方法,包内的任何类(包括继承了此类的子类)都可以访问它,而对于包外的任何类都不能访问它(包括包外继承了此类的子类)。default重点突出包;

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

网上一些资料及一些书上用表格对java访问修饰符做了清楚的总结,如下表所示:

重要总结:通过上面的分析,我们可以看到:

1.public、private和protected对我们来说没有任何异议。

2. 顶层类只能用public访问修饰符和default(默认)访问修饰符修饰,其中用默认修饰符修饰的类(及没有任何修饰符的类,如class B{})不能被其他包中的类继承,这也说明了default(默认)访问修饰符突出的是包权限

3. protected:本人做了一次实验,发现在不同包的子类中,new一个父类对象,并用该父类对象去访问父类中的用protected修饰的类属变量和方法时不能访问,而new一个子类对象时,子类对象可以访问(说明protected修饰的类可以被其他包中的类继承)。也可以在子类重写父类的方法中使用super关键字调用。这岂不是和上面表格中的总结(红色对勾)冲突了?本人也是百思不得其解。最后在网上找到了一个相对比较认可的解释,如下:

protected修饰符的修饰的成员变量和方法也称为受保护的成员变量和方法, 受保护的成员变量和方法可以在本类或同一个包中的其它类(包括子类)中通过类的实例进行访问,也可以被同一个包中的类或不同包中的类继承,但是不能在不同包中的其它类(包括子类)中通过类的实例进行访问。

4. 如果一个类使用public修饰,那该类的类名必须与他所在的源文件名相同。一个.java源文件中有且只有一个public类,顶层类只能用public和默认修饰符(即无修饰符)修饰;

5.final修饰的类不能被继承,没有子类。

6.abstract修饰的类不能被实例化,必须被子类继承。类只要有一个抽象方法就必定是抽象类,但抽象类不一定要有抽象方法。

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

⑹ private、protected、pubic、internal修饰符的访问权限分别是

  • private : 私有成员, 在类的内部才可以访问(只能从其声明上下文中进行访问)

  • protected : 保护成员,该类内部和从该类派生的类中可以访问

  • Friend:友元 ,声明 friend 元素的程序集中闹链蠢的代码可以访问该元素,而不能从程序集液陪外部访问

  • Protected Friend:在派生类或同一程序集内都可以访问

  • public : 公共成员,完全公开,没有访唤氏问限制

  • internal: 在同一命名空间内可以访问

⑺ java 中的修饰符有那几个,它们的访问权限的范围是多少

java中的修饰符分为类修饰符,字段修饰符,方法修饰符。根据功能的不同,主要分为以下几种。
1、权限访问修饰符
public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。

包外 子类 包内 类内
public yes yes yes yes
protected no yes yes yes
default no no yes yes
private no no no yes

2、final修饰符
final的意思是不可变,他可以修饰类、字段、方法。修饰类后类不能被扩展(extends),也就是不能被继承。修饰字段后字段的值不能被改变,因此如果有final修饰字段,应该对字段进行手动初始化。修饰方法后该方法不能被改变,也就是重写。
3、abstract修饰符
abstract是抽象的意思,用来修饰类和方法,修饰类后,该类为抽象类,不能被实例化,必需进行扩展。修饰方法后,该方法为抽象方法必须被子类重写(override)。
4、static修饰符
static用来修饰内部类,方法,字段。修饰内部类说明该内部类属于外部类而不属于外部类的某个实例。修饰字段说明该字段属于类而不属于类实例。修饰方法说明该方法属于类而不属于类实例。

⑻ java中的四种访问权限是

1,public 2,protected 3,(default) 4,private
1任何类都可以访问
2在同一个包中的所有类可以访问,以及该类的子类
3同一个包中的所有类
4只能在本类中访问