作用域public,private,protected,以及不写时的区别

转载 2016年08月29日 23:16:09

C++中和JAVA中,publicprivate protected 的用法不完全一样。

C++中:

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

                                                           public: int a;

                                                                      int b;

                                                           private double d;

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

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

       protected 继承将基类中的public成员变成 protected ,其他成员不变。

        public继承保持基类中的限定条件不变。

JAVA中:

  • private修饰的成员变量和函数只能在类本身和内部类中被访问。
  • protected 修饰的成员变量和函数能被类本身、子类及同一个包中的类访问。
  • public修饰的成员变量和函数可以被类、子类、同一个包中的类以及任意其他类访问。
  • 默认情况(不写)下,属于一种包访问,即能被类本身以及同一个包中的类访问。
  • 下面这个表能清楚的说明java中作用域操作符的作用:

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

                      protected      √                √                    √                ×

                      friendly         √                 √                    ×                ×

                      private          √                 ×                    ×                ×

java作用域public ,private ,protected 及不写时的区别

在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友...

public,private,protected,以及不写时的区别

作用域public,private,protected,以及不写时的区别 这四个作用域的可见范围如下表所示。 说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。不使用...
  • singit
  • singit
  • 2015年08月17日 10:36
  • 4472

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

JAVA基础 - public、private、protected的作用域,以及不写时的区别?

public, protected, friendly, private的访问权限如下:     关键字        当前类       同一package        子孙类     ...

说出作用域public,private,protected,以及不写时的区别

这四个作用域的可见范围如下表所示。 说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。   作用域    当前类   同一package   子孙类 其他package ...

java-访问修饰符public,private,protected,以及不写(默认)时的区别

访问修饰符public,private,protected         类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他...

java作用域public ,private ,protected 及不写时的区别

1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用 2、private:private表示私有,私有的意思就是除了class自己之外,任何人...

java作用域public protected private,以及不写时的区别

下面我简单的画一张表来说明问题: modifiers 作用域(可见) 当前类 同包 子孙类 其他包 public √  √  √   √ pro...

public、private和protected的区别

public:声明方法和属性可以被随意访问。 Protected:声明的方法和属性只能被类本身和其继承子类访问。 private:只能被定义属性和方法的类访问。 private 是完全私有的...

Java【public、private、protected区别】-访问权限

public,protected,private是Java里用来定义成员的访问权限的,另外还有一种是“default”,也就是在成员前不加任何权限修饰符。如: public   class   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:作用域public,private,protected,以及不写时的区别
举报原因:
原因补充:

(最多只允许输入30个字)