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的区别 的相关文章

  • 如何创建一个所有字段都是公共的公共结构,而无需为每个字段重复“pub”?

    如何在 Rust 中定义一个公共结构 其中所有字段都是公共的 而不必重复pub每个字段前面的修饰符 A pub struct宏将是理想的 pub struct Foo a i32 b f64 这相当于 pub struct Foo pub
  • Angular 6 私有方法

    我们正在从 Angular 5 升级到 Angular 6 我们有一个共享库 但遇到了构建错误 作为一家 Java 商店 我们养成了将组件方法和属性标记为私有的习惯 在 Angular 6 中构建我们的库时 转换并使用新的库 CLI 功能后
  • 覆盖私有方法时的奇怪行为

    考虑下面的代码 class foo private function m echo foo gt m public function call this gt m class bar extends foo private function
  • JS 私有方法不会在每次构造函数调用时重新定义

    如何创建一个每次调用构造函数时都未定义的 Javascript 私有方法 据我所知 在OOP JS中 私有方法是在 类 的 构造方法 中定义的方法 每次实例化一个新的 对象 时都会调用 我在想也许是一个函数声明 即function name
  • 抽象类中受保护的抽象或公共抽象方法

    嗨 我有一个抽象类 其中有一些公共方法和一些抽象方法 我有公众 以便他们实现派生类的通用方法 让我困惑的是为什么我想要定义一个公共抽象方法而不是受保护的抽象方法 对我来说 在抽象类中定义公共抽象方法是没有意义的 因为 if 是一个抽象 在派
  • 受保护的内部类在类内工作但不在类外工作

    我尝试了一些事情 想知道为什么会这样 假设我在命名空间 n 中有一个名为 A 的类 我试图创建受保护的内部类 B namespace n public class A public A protected internal class B
  • 为什么Junit测试用例(方法)应该公开? [复制]

    这个问题在这里已经有答案了 我只是想知道为什么测试用例 测试方法 应该公开 像这样 public class SpiceLoginTest Test public void testShouldVerifyLoginRequest 但是如果
  • 在 .Net 中使用私有集初始化属性

    public class Foo public string Name get private set lt Because set is private void Main var bar new Foo Name baz lt This
  • 继承后受保护的成员行为。

    我对受保护的标识符有一些疑问 在 K Sierra 编写的 Sun Certified Java Programmer Study Guide 的第一章中 我发现了以下信息 一旦包外子类继承了受保护的成员 该成员 由子类继承 就成为子类外部
  • 子类需要访问抽象超类的私有属性

    我有一个抽象 java 类 它实现了它的几个方法 但没有实现其他方法 在它实现的方法中 它使用私有属性变量 使用的变量也需要在子类中使用 据我所知 我的选择是 在子类和超类中都声明私有变量 将抽象类中当前实现的方法的实现推迟到子类中 还有其
  • Java中私有静态变量有什么用?

    如果一个变量被声明为public static varName 然后我可以从任何地方访问它ClassName varName 我还知道静态成员由类的所有实例共享 并且不会在每个实例中重新分配 将变量声明为private static var
  • Symfony2 在测试中访问私有服务

    目前我正在测试 Symfony2 中的一些服务 并尝试使用 Guzzle MockPlugin 来控制 CURL 响应 使用 Symfony 版本 2 3 8 我遇到了一个有趣的行为 但我不确定这是否是 Symfony2 的错误 我在 se
  • NSTokenField 捕获一些 NSEvents

    我需要为 NSTokenField 和解决方案实现 Command Enter Command O 和 Esc 快捷键https stackoverflow com a 18486965 1067147 https stackoverflo
  • 从类定义中省略“private”关键字是否会造成混淆?

    我最近删除了一个private从类定义中指定 因为它位于顶部 紧接在class关键词 class MyClass private int someVariable 我认为这是多余的 一位同事不同意这一点 称这实际上 隐藏 了private数
  • 如何对 android 进行编程以查找特定网络?

    我的应用程序仅在校园网络上才能访问校园数据 当在公共 wifi 或 3g 网络上运行应用程序时 应用程序将挂起然后强制关闭 我如何对我的应用程序进行编程以检查该专用网络 wifi或检查android当前使用的连接 如果不等于 校园wifi
  • 私有静态方法有必要吗?

    原理工程师 https stackoverflow com users 201787 metal在我上一家公司有一条规则private static方法应该作为实现文件中的函数实现 而不是作为类方法 我不记得他的规则是否有任何例外 我在目前
  • C# 中的继承树和受保护的构造函数

    给定以下继承树 以有效的方式实现它的最佳方法是什么 abstract class Foo
  • 防止 Visual Studio Code 或 IDE 泄露 Python 类私有方法

    只是想问一个简单的问题 本质上 我想知道是否可以从 Visual Studio Code 或其他 IDE 提供的建议列表中隐藏 Python 类私有方法 例如 假设我们有一个类 A Creating a class class A Decl
  • 如何对私有方法进行单元测试?

    我正在构建一个类库 它将有一些公共和私有方法 我希望能够对私有方法进行单元测试 主要是在开发时 但它也可能对未来的重构有用 这样做的正确方法是什么 如果您想对私有方法进行单元测试 则可能会出现问题 单元测试 一般来说 旨在测试类的接口 即其
  • 如何从所属类型外部访问私有方法或属性?

    在极少数情况下 这实际上是可以接受的 例如在单元测试中 您可能想要获取或设置私有属性的值 或者调用不可能的类型的私有方法 难道真的不可能吗 如果没有 你怎么能做到呢 有两种方法可以访问类型的私有方法 一种方法可以获取私有属性 除了第一种调用

随机推荐

  • 树莓派设置静态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 是完全私有的 只有当前类中的成员