Java访问权限控制修饰符比较

1、java访问权限修饰符(特殊情况除外)
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly


2、C++中和JAVA中,public、private、projected的用法不完全一样。

C++中:

public修饰的成员变量或方法可以被任意其他的类访问。
private修饰的成员变量和方法,只能有类本身以及友元函数和友元类来访问。
projected修饰的成员变量和方法,能被类本身、继承本身的子类、友元函数以及友元类来访问。
默认情况下,在class关键字定义的类中,第一个作用域限定词(public、private、projected)出现之前的成员变量或方法都是private的。而在用struct关键字定义的类中,第一个限定词出现之前的成员变量和方法都是public的。两个作用域限定词之间的成员变量和方法都是被前一个限定词限制的。如

public: int a;                                                          int b;                                                           private double d;

以上例子中,int b;相当于public int b;

继承类(派生类)可以通过继承类对象(此处指访问自己内部的projected成员,不能访问其他继承类对象内的成员)访问基类中的projected成员,但是不可以通过基类对象访问基类中的projected成员。
不能通过类的实例(对象)访问类的projected成员。
友元关系时不可继承的。
private继承将基类中的所有成员都变成private。
projected继承将基类中的public成员变成projected,其他成员不变。
public继承保持基类中的限定条件不变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值