public,protected,private辨析】的更多相关文章

C++中public,protected,private派生类继承问题和访问权限问题 当一个子类从父类继承时,父类的所有成员成为子类的成员,此时对父类成员的访问状态由继承时使用的继承限定符决定. 1.如果子类从父类继承时使用的继承限定符是public,那么(1)父类的public成员成为子类的public成员,允许类以外的代码访问这些成员:(2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员:(3)父类的protected成员成为子类的protected成员,…
第一:private, public, protected 访问标号的访问范围. 假如我们约定: 类内部-----指的是当前类类型的定义中,以及其成员函数的声明和定义中: 类外部-----指的是不在当前类“类内部”的地方,如主函数中,其他不具有继承关系的类定义中. 友元函数----包括3种:设为友元的普通的非成员函数:设为友元的其他类的成员函数:设为友元类中的所有成员函数. private:只能在:(1)当前类的类内部:(2)友元函数中使用. protected:只能在:(1)当前类的类内部:(…
转自:http://www.cnblogs.com/webapplee/p/3771708.html JAVA修饰符类型(public,protected,private,friendly) public的类.类属变量及方法,包内及包外的任何类均可以访问:protected的类.类属变量及方法,包内的任何类,及包外的那些继承了此类的子类才能访问:private的类.类属变量及方法,包内包外的任何类均不能访问:如果一个类.类属变量及方法不以这三种修饰符来修饰,它就是friendly类型的,那么包内…
php 类中函数和类变量都有三个属性:public protected private,具体什么时候使用什么属性好纠结,特意找了个实例,这样看起来更清晰. public 表示全局,类内部外部子类都可以访问:private 表示私有的,只有本类内部可以使用:protected 表示受保护的,只有本类或子类或父类中可以访问: <?php//父类class father{ public function a(){ echo "function a"; } private functio…
第一:private, public, protected 访问标号的访问范围. private:只能由1.该类中的函数.2.其友元函数访问. 不能被任何其他访问,该类的对象也不能访问. protected:可以被1.该类中的函数.2.子类的函数.以及3.其友元函数访问. 但不能被该类的对象访问. public:可以被1.该类中的函数.2.子类的函数.3.其友元函数访问,也可以由4.该类的对象访问.   注:友元函数包括3种:设为友元的普通的非成员函数:设为友元的其他类的成员函数:设为友元类中的…
JAVA类型修饰符(public,protected,private,friendly) public的类.类属变量及方法.包内及包外的不论什么类均能够訪问:protected的类.类属变量及方法,包内的不论什么类.及包外的那些继承了此类的子类才干訪问:private的类.类属变量及方法.包内包外的不论什么类均不能訪问:假设一个类.类属变量及方法不以这三种修饰符来修饰,它就是friendly类型的,那么包内的不论什么类都能够訪问它,而包外的不论什么类都不能訪问它(包含包外继承了此类的子类),因此…
大学生涯,涉及到类的作用域,继承都是用的public 共有继承,当时也没想那么多,觉得共有继承多方便,多简单,反正没有太多的限制,不管是类的成员或者是基类的成员函数都可以访问.没有深究.其实这里面真是涉及到了C++面向对象设计当中的封装特性.只暴露那些需要的成员和成员函数,不必过多曝露所有的成员. 转载请注明出处:http://blog.csdn.net/elfprincexu 第一:private.public.protected访问的范围. };                {      …
0.引言 Java的访问指示符public,protected,private,缺省可以用来修饰类和方法. 1.作用域如下 具体如下: 作用域       当前类    同一package   子孙类     其他package public            √              √                       √                    √ protected        √              √                      …
• 公有继承(public) 公有继承在C++中是最常用的一种继承方式,我们先来看一个示例: #include<iostream> using namespace std; class Father{ public: Father()=default; void Father_show1(){ cout<<"调用Father类的public方法:Father_show1"<<endl; } protected: void Father_show2()…
<?php /** *public protected private PHP封装的实例 */ /*class tv { private $shengyin; function __construct() { $this->shengyin = 20; } public function yaokongqi($anniu, $liang = '') { switch ($anniu) { case "shengyin": $this->shengyin($liang)…
接触过面向对象编程的朋友们都知道类中的访问控制符无非有三个,public, protected, private. 理解他就先从期望他达到的效果先说吧 Public: 使成员对于整个程序内(类内类外)都是可以访问的 Protected: 使派生类也可以访问其数据,但是又不想让其他的函数或类进行访问 Private: 只有他所在类的成员函数可以访问 在没有继承这一概念前,我们先只研究public与private就够了. 简单说,private实现的就是一种封装,让类的对象(C++primer里面叫…
在某处看到一张图,简单明了的说明了三者的关系,很是佩服,遂记录下来. //公有继承 对象访问 成员访问 public --> public Y Y protected --> protected N Y private --> private N N //保护继承 对象访问 成员访问 public --> protected N Y protected --> protected N Y private --> protected N N //私有继承 对象访问 成员访…
1.public的变量可以在类中以及外部访问到: 2. private只可以在类/友元中访问到. #include <iostream> using namespace std; //------------------------------- class Test { public: int publicx; void publicm(); protected://当前类和子类 int protectedx; void protectedm(); private://当前类 int pri…
public和private基本没问题,主要是默认的和protected之间的区别 同一包中默认的和protected一样,所以来看看不同包的情况 看下如下代码,两个类位于不同包: public class Base { int i = 0; } public class Extends extends Base { public void test(){ Extends e = new Extends(); Base b = new Base(); //e.i = 1;//编译无法通过 //b…
虽然这个知识比较简单, 但是老是会忘, 写上来, 增强记忆. 在C#语言中,共有五种访问修饰符:public.private.protected.internal.protected internal.作用范围如下表: 访问修饰符 说明public 公有访问.不受任何限制.private 私有访问.只限于本类成员访问,子类,实例都不能访问.protected 保护访问.只限于本类和子类访问,实例不能访问.internal 内部访问.只限于本项目内访问,其他不能访问.protected inter…
作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × ×…
public可以被继承,可以外部访问(也就是实例化对象可以直接访问) protected受保护的,可以被子类继承,无法外部访问 private继承,外部访问都别想 <?phpclass coach{ public $master = "老张"; protected $lover = "丁大锅"; private $lovegame = "SM"; public function slogan() { echo "吼吼~哈哈~&qu…
对属性或方法的访问控制,是通过在前面添加关键字public(公有),protected(受保护的),private(私有)来实现. 被定义为公有的类成员可以在任何地方被访问. 被定义为受保护的类成员则被其自身以及其子类和父类访问. 被定义为私有的类成员则只能被其定义所在类访问 属性的访问控制 类属性必须定义为公有,受保护,私有之一.如果用var,则被视为公有. <?php /** * Define MyClass */ class MyClass { public $public = 'Publ…
Java支持四种不同的访问权限: 修饰符 说明 public 共有的,对所有类可见. protected 受保护的,对同一包内的类和所有子类可见. private 私有的,在同一类内可见. 默认的 在同一包内可见.默认不使用任何修饰符. public:公有的 被声明为public的类.方法.构造方法和接口能够被任何其他类访问. 如果几个相互访问的public类分布在不用的包中,则需要导入相应public类所在的包.由于类的继承性,类所有的公有方法和变量都能被其子类继承. protected:受保…
C++中派生类对基类成员的访问形式主要有以下两种: 1.内部访问:由派生类中新增成员对基类继承来的成员的访问. 2.对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问.今天给大家介绍在3中继承方式下,派生类对基类成员的访问规则.   1.私有继承的访问规则 基类成员 private成员 public成员 protected成员 内部访问 不可访问 可访问 可访问 对象访问 不可访问 不可访问 不可访问     2.公有继承的访问规则 基类成员 private成员 public成员…
public:  对任何类和成员都公开, 无限制访问;protected: 仅仅对该类以及该类的派生类公开;private: 仅仅对该类公开;internal: 只能值包含该类的程序集中访问该类(只是单独的项目,而不是整个解决方案);protected internal: 只能在本类,派生类或者包含该类的程序集中访问.…
http://www.cnblogs.com/BeyondAnyTime/archive/2012/05/23/2514964.html 1.public继承不改变基类成员的访问权限. 2.private继承使得基类所有成员在子类中的访问权限变为private. 3.protected继承将基类中public成员变为子类的protected成员,其它成员的访问 权限不变. 4.基类中的private成员不受继承方式的影响,子类永远无权访问.…
public是可访问权限最高的,比如姓名,每个人都可以知道别人的姓名,这个不是什么秘密 protected的访问权限要低些,只有子类才可以访问得到父类的protected属性.就好像老子的财产只有儿子才能继承.如果别人想要问:hey, son.财产=多少?儿子会拒绝,因为son的财产是从father那里继承来的,不可外泄. private的访问权限最低了,只有本人才能知道.比如某人的银行卡密码.只有他自己类内部的方法才能访问到这个属性. internal的访问权限仅限于同一程序集内部.什么叫同一…
对于公有继承方式: (1)父类的public成员成为子类的public成员,允许类以外的代码访问这些成员:(2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员:(3)父类的protected成员成为子类的protected成员,只允许子类成员访问: (1) 基类成员对其对象的可见性: 公有成员可见,其他不可见.这里保护成员同于私有成员. (2) 基类成员对派生类的可见性: 公有成员和保护成员可见,而私有成员不可见.这里保护成员同于公有成员. (3) 基类成员对…
基类的私有成员被继承后不可见(优先级最高) 公有继承不改变基类成员属性 保护继承(私有继承)把基类成员变为保护成员(私有成员) public 公开的 protected 受保护的 private 私有的 修饰类成员时 1.在不涉及继承的时候protected与private的作用是相同的 2.在涉及继承的时候作用是与public的作用是相同的 修饰继承方式时 1.公有继承  class a:public b public 将父类的 public成员继承到子类的public 将父类的 protec…
今天杨老师讲到C++的继承的时候用一个表来说明子类继承父类后访问权限的变化,如下表: 注:在本类中,protected与private是相同的,但protected可以被继承,而private却不行. 一看还真不好理解.在网上一搜,找到了一篇能够很形象说明这个表的文章(链接 http://blog.sina.com.cn/s/blog_4a1f4666010096ur.html) “说到public.protected和private三个修饰符,刚学C++时,被教教材上的那个表搞得晕晕忽忽的.曾…
问题:类B私有继承类A,类A有个protected成员,那么在类B的成员函数里是否可以使用类A的protected成员? 可以使用. 估计有的同学说不对吧,类B都私有继承了类A了,怎么还能访问类A的protect成员呢?请看下面的例子.在类Pri_derv的f()成员函数里是可以方位父类Base的pub_mem();和prot_mem;的. class Base{ public: void pub_mem(); protected: int prot_mem; private: char pri…
1.因为工作的原因,最近使用了三个多月的java作为主力语言.很早之前在菜鸟教程也看过java文档两遍,但实践少,处于能看懂写出来不流畅的状态(对于java必须要略懂,不能能看到就头疼跳过,因为现在百度随便搜个解决方案,大部分是java的文章,如果不能看懂,就没办法把它翻译成自己的python来实现了).后来花大精力专门学习python的oop和设计模式,再来使用java,就更流畅了,主要注重掌握一些思想,遇到具体的解决问题方案,可以百度复制现成的东西来用很方便,java的网上文章比python…
@public 1.公开的,公共的,可以在类的内部和外部访问. 2.类的内部:实例变量名 3.类的外部:对象->实例变量名 @protected 1.受保护的,只能在本类和子类中可以访问 2.类的内部:实例变量名 3.类的外部:通过设置器setter和访问器getter访问 @private 1.私有的,只能在本类中可以访问 2.类的内部:实例变量名 3.类的外部:通过设置器setter和访问器getter访问 总:@public 在所有文件均可访问.@protected只能在本类和子类中可以访…
1. 变量属性与继承之间的关系 #include <iostream> using namespace std; class A { public: int x; protected: int y; private: int z; }; class B : public A { // x is public // y is protected // z is not accessible from B }; class C : protected A { // x is protected /…