public、private和protected的区别

2023-05-16

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

private 是完全私有的,只有当前类中的成员能访问到.
protected 是受保护的,只有当前类的成员与继承该类的类才能访问.

protected的访问权介于public和private之间,实际上三者的区别就是权限问题,private和protected区别主要体现在其继承类的访问权限上,这些你可以自己编写一个程序,写个类,编译一下你就很清楚他们权限的区别了。

私有成员private   member    
只能被成员函数和类的友元访问
实行信息隐藏的类把其数据成员声明为private  
   
被保护成员protected   member    
对派生类derived   class 就像public   成员一样  
对其他程序则表现得像private
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

public、private和protected的区别 的相关文章

  • PHP 解析错误:语法错误,PHP 8.1 上的错误消息中出现意外标记“public”

    在 PHP 8 1 中运行时会触发上述错误消息 还没有发现任何明显的地方 即需要更改下面的代码以消除此错误消息 public function process button sid zen session name zen session
  • 从私有 Bitbucket 存储库安装 Python 包

    我创建了一个 Python 3 5 工作包 它位于一个私人 Bitbucket 存储库中 我可以轻松提取代码并执行 python setup py install 来安装它 但我想尝试消除以下步骤必须提取代码并在我的计算机上拥有多个副本 同
  • PubNub最佳实践:如何管理私人房间?

    我正在学习 pubnub 并阅读了他们的文档 但我只是找不到如何管理多房间聊天框 默认情况下 任何人都可以收听某个频道 订阅和发布都很容易 我想要的是拥有一个主要的公共房间 到目前为止一切都很好 但任何人都应该能够与其他人私下交谈 而不会有
  • Excel VBA中的公共静态变量

    是否可以在一个过程中声明静态变量 并使用 Excel VBA 在多个不同的过程中使用该变量 i e Public myvar as integer Sub SetVar static myvar as integer myvar 999 e
  • Github (SSH) 通过公共 WIFI,端口 22 被阻止

    我目前在公共 WIFI 站点上 但无法使用 SSH 他们可能阻止了该端口 但是 我需要该连接来执行git push ssh T email protected cdn cgi l email protection ssh connect t
  • 抽象类的可访问性不一致

    我有一个内部抽象类InternalClassBase和两个 也是内部 类InternalClass1 and InternalClass2 继承自InternalClassBase 我还有一个公共抽象类PublicClassBase和两个
  • 为什么Java中的Object类包含受保护的方法?

    为什么对象类 https docs oracle com javase 7 docs api java lang Object htmlJava中包含受保护的方法 例如clone https docs oracle com javase 7
  • Java反射带参数的私有方法最好的方法是什么?

    我正在尝试使用java反射调用私有方法我开发了一个小方法来调用其他方法迭代所有方法并按名称和参数类型进行比较我已成功调用4个方法 我有一个问题 1 这是最好的方法吗 因为我知道 class getMethod 仅匹配公共方法 Java有内置
  • ES6代理类,访问私有属性(无法从类未声明的对象中读取私有成员#hidden)

    我正在研究代理对象 类和私有属性 并遇到了这个错误消息 home marc projects playground pipeline clsss js 14 this hidden this hidden TypeError Cannot
  • AutoMapper 使用私有设置器映射属性

    是否可以使用 AutoMapper 通过私有设置器分配属性 AutoMapper 现在允许 我不确定从什么时候开始 使用私有设置器映射属性 它使用反射来创建对象 示例类 public class Person public string N
  • 抽象类中受保护的抽象或公共抽象方法

    嗨 我有一个抽象类 其中有一些公共方法和一些抽象方法 我有公众 以便他们实现派生类的通用方法 让我困惑的是为什么我想要定义一个公共抽象方法而不是受保护的抽象方法 对我来说 在抽象类中定义公共抽象方法是没有意义的 因为 if 是一个抽象 在派
  • 我可以转换对象并访问 C++ 中的私有数据成员吗?

    我想访问类中的私有数据成员 类中没有成员函数来访问私有数据成员 这是私人的 我想上这门课 想知道如何打开它 一种方法是复制类的声明 将私有成员设为公共 然后将新类称为 some else 然后我重新解释转换并复制原始对象 这有效 但我想要一
  • C 中带有 const 的“私有”结构成员

    为了拥有干净的代码 使用一些 OO 概念可能很有用 即使在 C 中也是如此 我经常编写由一对 h 和 c 文件组成的模块 问题是模块的用户必须小心 因为 C 中不存在私有成员 使用 pimpl 习惯用法或抽象数据类型是可以的 但它添加了一些
  • 为什么建议将实例变量声明为私有?

    我的问题与Java有关 但它也可以应用于C 我想知道为什么每个人都建议创建实例变量private而不是制作它们受保护的 我们想一想 子类看不到私有变量 因此如果我需要访问或更改子类中超类的变量 我被迫使用一些访问器和修改器方法 例如getM
  • NSTokenField 捕获一些 NSEvents

    我需要为 NSTokenField 和解决方案实现 Command Enter Command O 和 Esc 快捷键https stackoverflow com a 18486965 1067147 https stackoverflo
  • 好吧,我们可以在 javascript 中拥有私有标识符,但是受保护的标识符又如何呢?

    就这么简单 我们能以某种方式模拟 Javascript 中的 受保护 可见性吗 Do this Note Do not break touch this object code 或者通过谷歌在第一页找到这个 http blog blanqu
  • 如何在 JavaScript 中通过方括号访问私有字段

    这段代码的工作原理 class Test field get field return this field 但如果我想计算字段名称我必须使用方括号 但它不起作用 class Test field get field return this
  • 为什么没有人接受 C# 中的公共字段?

    似乎每个 C 静态分析器在看到公共字段时都会抱怨 但为什么 当然 在某些情况下 公共 或内部 field就足够了 拥有一个拥有它的财产是没有意义的get and set 方法 如果我确定我不会重新定义该字段或添加该字段怎么办 副作用很糟糕
  • C# 中的私有“集合” - 无法理解它

    我见过很多使用类似的东西编写的示例代码 请原谅这是多么可怕的罐头 public class Test public object Thingy get private set 不幸的是 这些例子从未真正解释为什么 set 被设置为私有 所以
  • 设计决策:为什么以及何时将接口设为私有?

    设计决策中是否使用过私有接口 如果是这样 原因是什么 您什么时候知道需要私有接口 A 顶层接口不能是私有的 它只能有public或包访问 来自Java 语言规范 第 9 1 1 节 接口修饰符 https docs oracle com j

随机推荐

  • 树莓派设置静态IP

    vi etc dhcpcd conf 使用 vi 编辑文件 xff0c 增加下列配置项 指定接口 eth0 或者wlan0 interface wlan0 指定静态IP xff0c 24表示子网掩码为 255 255 255 0 stati
  • BGP→→

    BGP 4 提供了一套新的机制以支持无类域间路由 这些机制包括支持网络前缀的通告 取消 BGP 网络中 类 的概念 BGP 4 也引入机制支持路由聚合 xff0c 包括 AS 路径的集合 特点 BGP属于外部或域间路由协议 BGP的主要目标
  • omnet++,veins,sumo使用多应用层实现车辆和行人的模拟

    1 完成网络的搭建 xff1a 搭建一个简单的十字路口场景 xff1a 1 xff09 定义结点 xff1a 新建intersection node xml 内容如下 xff1a NOTE1 xff1a 结点属性type 61 34 tra
  • 我的2011--衣带渐宽终不悔,为伊消得人憔悴

    古今之成大事业 大学问者 xff0c 必经过三种之境界 xff1a 34 昨夜西风凋碧树 独上高楼 xff0c 望尽天涯路 34 此第一境也 34 衣带渐宽终不悔 xff0c 为伊消得人憔悴 34 此第二境也 34 众里寻他千百度 xff0
  • Java架构师面试必备题(含答案)

    第一题 xff1a 一条sql执行过长的时间 xff0c 你如何优化 xff0c 从哪些方面 xff1f 答 xff1a 1 查看sql是否涉及多表的联表或者子查询 xff0c 如果有 xff0c 看是否能进行业务拆分 xff0c 相关字段
  • 嵌入式操作系统学习(2)任务启动和任务切换

    1 前后台系统与多任务系统 熟悉嵌入式开发的同学都知道 xff0c 一般没有操作系统的程序都是在main函数有一个死循环来完成相关任务 xff0c 一些紧急的操作放在中断里来完成 xff0c 通常称作前后台系统 xff0c 如下图所示 xf
  • Could not load dynamic library ‘cupti64_101.dll‘; dlerror: cupti64_101.dll not found

    如果cuda正常安装的话应该是环境变量出了问题 我的解决方法是 xff0c 将C Program Files NVIDIA GPU Computing Toolkit CUDA v10 1 extras CUPTI lib64 xff0c
  • PC-Lint 使用中头文件包含的问题,以及VSCode中文乱码问题

    PC Lint 使用中头文件包含的问题 xff0c 以及VSCode中文乱码问题 最近使用PC Lint和VSCode时有一些小问题 xff0c 而且感觉以后也还会遇到 xff0c 在这里做一下记录 1 PC Lint 使用中头文件包含的问
  • 【Keras】Keras构建LSTM网络时的输入维度问题——可参考博客梳理

    Keras构建LSTM网络时的输入维度问题 可参考博客梳理 keras中的LSTM层 keras layers LSTM units activation 61 39 tanh 39 recurrent activation 61 39 s
  • Windows 如何查看tensorflow、Keras、CUDA版本号

    Windows 如何查看tensorflow Keras CUDA xff0c cuDNN版本号 1 查看tensorflow和keras版本号 进入cmd xff0c 执行python xff0c 然后执行下方命令 xff1a xff08
  • 物联网工程填空题库押题版

    侧重软件工程 架构设计没有 面向对象和测试均没有 三 填空题 6 物联网工程设计与实施的最后一个阶段的文档是 xff08 xff09 验收报告 8 需求分析是用来获取 xff08 xff09 并对其进行归纳整理的工程 xff0c 该过程是物
  • Word公式居中、自动编号及交叉引用

    Word公式居中 自动编号及交叉引用 本文使用 制表符 43 样式分隔符 的方法将公式居中 此外 xff0c 使用 自动图文集 实现下次公式编辑时 xff0c 可以重复利用该公式的居中样式 1 打开WORD中的 显示 隐藏编辑标记 这样是为
  • Word的”交叉引用“和”插入题注“快捷键设置

    Word的 交叉引用 和 插入题注 快捷键设置 在MSWord2019中 xff0c 可以自定义设置快捷键 方法如下 xff1a 文件 选项 自定义功能区 键盘快捷方式 xff08 自定义 xff09 具体过程如图所示 最后 xff0c 按
  • 【DL】图像去噪中的patch size是什么(1篇文章链接和1段代码)

    图像去噪中的patch size是什么 xff08 1篇文章链接和1段代码 xff09 写在前面 xff0c 因为自己不做图像相关的研究 xff0c 所以具体内容也不敢妄加总结 xff0c 自己感觉貌似就是将一整张图分成一块一块的进行处理
  • MacBook Air M1 + MacTex + VS Code的LaTex教程

    MacBook Air M1 43 MacTex 43 VS Code的LaTex教程 参考博文 xff1a https zhuanlan zhihu com p 107393437 分为6步 xff1a 1 安装MacTex xff1a
  • Linux进程管理-ps

    Linux进程管理 ps ps 命令的基本格式如下 xff1a root 64 localhost ps aux 查看系统中所有的进程 xff0c 使用 BS 操作系统格式 root 64 localhost ps le 查看系统中所有的进
  • Linux进程管理-常见信号

    Linux进程管理 常见信号
  • Linux进程管理-kill

    Linux进程管理 kill kill 从字面来看 xff0c 就是用来杀死进程的命令 xff0c 但事实上 xff0c 这个或多或少带有一定的误导性 从本质上讲 xff0c kill 命令只是用来向进程发送一个信号 xff0c 至于这个信
  • 联想笔记本更换固态硬盘和重装系统

    近期给自己笔记本更换了固态硬盘并且重装了系统 xff0c 在此做一下记录 更换固态硬盘 https jingyan baidu com article 48b37f8d08128f1a6564886b html 将原来机械硬盘更换为固态硬盘
  • public、private和protected的区别

    public xff1a 声明方法和属性可以被随意访问 Protected xff1a 声明的方法和属性只能被类本身和其继承子类访问 private xff1a 只能被定义属性和方法的类访问 private 是完全私有的 只有当前类中的成员