C#学习-构造函数
2024-09-20 09:45:46
如果没有为类显式地定义一个构造函数,则C#编译器会自动生成一个函数体为空的默认无参的实例构造函数。
构造函数主要用于创建类的实例对象。
当调用构造函数创建一个对象时,构造函数会为对象分配内存空间,并初始化类的成员。
构造函数分为实例构造函数和静态构造函数两种。
实例构造函数用于创建和初始化类的实例。使用new运算符创建对象的过程,其实就是在调用实例构造函数,来初始化类中所有实例成员。
实例构造函数可以进行方法重载。实现了方法重载,就可通过不同的方式来完成类的实例化。
可以对实例构造函数指定访问级别,即可以使用public、protected和private修饰符来修饰。(用public关键字修饰的构造函数,称为公共构造函数;用private关键字来修饰实例构造函数,称为私有构造函数)
然而不是任何一个函数都可以成为实例构造函数,实例构造函数必须满足一下两个条件:构造函数必须和类同名;构造函数不允许有返回类型
如果类只定义一个或多个私有构造函数,而没有其他公共构造函数,则其他类不能通过调用该类的私有构造函数类创建类的实例。
私有构造函数最典型的应用是设计模式中单例模式的实现。
除了实例构造函数之外,构造函数还包括静态构造函数。
静态构造函数用于初始化类中的静态成员,在创建第一个实例或引用任何静态成员之前,CLR都将自动调用静态构造函数。
与实例构造函数一样,要称为静态构造函数必须具有以下特点
静态构造函数不能使用任何访问修饰符
静态构造函数不能带有任何参数
静态构造函数只会执行一次
不能直接调用静态构造函数
在程序中,程序员无法控制执行静态函数的时机
最新文章
- [EF2]Sneak Preview: Persistence Ignorance and POCO in Entity Framework 4.0
- 关于linux服务器上搭建ftp服务的流程
- ubuntu16.04源码编译安装wine1.8.6安装不上引来的错误
- mybatis 控制台打印sql
- mysql5.6 通用二进制安装
- Js中 关于top、clientTop、scrollTop、offsetTop的用法
- ElasticSearch 的 聚合(Aggregations)
- ADO.NET- 基础总结及实例介绍
- sql的游标使用(转)
- BZOJ1528: [POI2005]sam-Toy Cars
- MyEclipse导入Maven项目报错 Plugin execution not covered by lifecycle configuration:
- BZOJ 2134: 单选错位( 期望 )
- Ubuntu下用NdisWrapper安装网卡驱动
- Text Justification 实现两端对齐功能
- mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)
- 【Java学习笔记之十四】Java中this用法小节
- 【转】globk中的控制文件
- HTML中鼠标滚轮事件onmousewheel处理
- 小知识点BeanUtils.copyProperties
- angularjs(显示和隐身) 依赖注入
热门文章
- FAT32文件格式示例解析
- zookeeper3.4.6配置实现自动清理日志【转】
- python3+selenium框架设计08-进一步实现POM
- requests库入门01-环境安装
- 【转】thread.sleep(0)与thread.sleep(1)的区别
- Git系列①之仓库管理互联网托管平台github.com的使用
- mysql:批量插入不同的UUID
- Ubuntu升级GCC到gcc4.8
- 业务侧有大量timeout请求超时日志
- redhat7.3安装yum源