[再读书]私有构造函数
记录下来,给新手看(应该有人用的到)。
私有构造函数初看起来没有什么作用,但是在.net中功能相当多。一般用在许多静态方法的类中,这些静态方法用作一个库,而不是对象。添加私有构造函数,将确保类不能在外部创建对象。
创建私有构造函数有两个原因,在使用公共构造函数时,不能使用类创建代码,一种情况是,如果不提供初始化参数,创建对象是没有意义的。
第二个原因是创建某种对象设计模式,例如工厂模式,即类上的公共静态方法要调用私有构造函数,并把对象的一个实例返回到对象创建代码,还有单—模式,即构造函数只能调用一次。
一个小例子:
{
private foo()
{ }
public foo(int intNum)
{
}
}
如果在外部创建对象
就会报一个错误 1 “foo()”不可访问,因为它受保护级别限制 ,这种情况是我们认为,如果不初始化参数,创建对象就没有意义。
此时如果想创建对象,就需要。
应该知道,派生类都要调用基类的构造函数,所以,就决定了带有私有构造函数的类不能用作基类,因为他们的构造函数对派生类来说不可见。
转载于:https://www.cnblogs.com/luoboqingcai/archive/2006/04/28/387747.html
[再读书]私有构造函数相关推荐
- C#构造函数、私有构造函数、静态构造函数与构造函数执行顺序
https://www.cnblogs.com/ArtofDesign/p/3603986.html 默认构造函数,如果没有为类指定任何构造函数,编译器会自动为类创建一个无参构造函数,用以初始化类的字 ...
- C++ 私有构造函数的作用
C++ 私有构造函数的作用 分类: C/C++ 2012-05-08 16:07 1536人阅读 评论(1) 收藏 举报 c++classdeleteobjectvector编译器 很多情况下要求当前 ...
- Java性能优化(3):通过私有构造函数强化不可实例化的能力
有时候你可能会编写出只包含静态方法和静态域的类,这样的类有一些很不好的名声,因为有些人在面向对象的语言中滥用这样的类来编写过程化的程序.尽管如此,它们也确实有它们特有的用处,我们可以利用这种类,把操作 ...
- Java私有构造函数不能阻止继承
下面是一个调用已经私有化的单列的函数的列子. 这里用了静态内部类,关键就是静态内部类可以访问外部类的私有构造函数. 这种算是变种继承吧.前提是可以在原来的单列类里添加代码. class Single ...
- c# 静态构造函数与私有构造函数共存
在使用静态构造函数的时候应该注意几点: 1.静态构造函数既没有访问修饰符,也没有参数.因为是.NET调用的,所以像public和private等修饰符就没有意义了. 2.是在创建第一个类实例或任何静态 ...
- java 构造函数 单例_Java中的私有构造函数和单例类 - Break易站
Java 构造函数 Java中的私有构造函数和单例类 我们首先分析下面的问题: 我们可以有私人构造函数吗? 正如你可以很容易猜到的,就像我们可以为构造函数提供访问说明符一样.如果它是私人的,那么它只能 ...
- C++之保护和私有构造函数与析构函数
2019独角兽企业重金招聘Python工程师标准>>> 一.构造函数 1.保护 构造函数定义为protected后,就意味着你不能在类的外部构造对象了,而只能在外部构造该类的子类的对 ...
- Java并发实战-私有构造函数捕获
java并发编程实战P58 私有构造函数捕获:私有构造函数进行线程安全地对象复制转发:http://atbug.com/private-constructor-capture-idiom/ /** * ...
- java 反射 调用私有构造函数_使用反射调用私有方法
1.创建一个被调用的类 /** * @version 1.0 * @Author F-llin * @Date 2020-12-04 13:53 */ public class Bean{ priva ...
最新文章
- 过去一周AI领域有哪些新鲜事?看这一篇就够了
- 云计算技术 — 云计算的商业模式与部署模式
- 将用户输入内容中的尖括号、引号等进行转义
- VC6在64位Win7下调试无法退出的问题(缺少TLLOC.DLL和DM.dll)
- “如何写好科技论文之我见”结束语-如何写好科技论文之我见(十)
- 这是一篇能让你升职加薪,赢娶白富美的文章
- ios 标签 html,ios 显示HTML标签文本
- 免去架构算法调优,如何让你的系统风驰电掣?|图说
- array_walk与array_map的区别
- C# winform 上传文件 (多种方案)
- POJ2940 HDU1489 UVA11054 Wine Trading in Gergovia【Ad Hoc】
- mac中安装使用podman,替换docker
- python time函数的功能_Python中Python时间模块的常用功能,Pythontime,函数
- Java课程设计-基于Swing的文本编辑器
- 领克车机2.0安装 app 方法,亲测有效
- 建立远程桌面需要在对方服务器上做设置吗,SFB 项目经验-23-要远程登录,你需要具有通过远程桌面服务进行登录的权限...
- python自然语言分析--倚天屠龙记人物关系、词云、柱状图、-词频
- 怎么在线制作手机海报图片?
- 数据挖掘之房价预测任务
- wireshark 抓包使用教程