那些年我们学过的构造函数(构造方法,C#)
构造函数也称构造方法,在面向对象中称为构造方法,在面向过程中称为构造函数;C#是面向对象的语言,所以以下都称为构造方法,
OK,下面我们先看一下什么是构造函数
class Dog
{
//创建一个狗类,声明两个属性
public string name { get; set; }
public int Age { get; set; }
//无参构造函数
public Dog()
{ }
}
上面的代码就是无参的构造方法,其实我们每次 new 对象时都必须调用构造方法,那么问题就来了,既然每次 new 对象都要调用构造方法,那么我们没写这个构造方法怎么也可以new 出来的呢?其实在我们不显式的创建构造方法的时候,系统会在后台自动隐式的创建无参的构造方法;
那既然系统会自动创建构造方法我们为什么要手动创建构造构造方法呢?那是为了创建代参的构造方法,当显式的创建构造方法时,系统不会自动的创建无参构造方法;所以要创建代参构造方时,就要先创建无参的构造方法;代码如下:
class Dog
{
//创建一个狗类,声明两个属性
public string Name { get; set; }
public int Age { get; set; }
//无参构造函数
public Dog()
{ }
//代参构造函数
public Dog(string name,int age)
{
this.Name = name;
this.Age = age;
}
}
代参方法的书写规范:
1.方法名要与类名相同;
2.构造方法不能有返回值,连void都不可以有;
说了这么多代参方法有什么用呢?
代参构造方法就是可以为对象初始化成员变量;简单,方便,快捷!!!
//普通的初始化对象
Dog dog1 = new Dog();
dog1.Name = "花花";
dog1.Age = ;
Console.WriteLine("我的名字叫做{0},今年{1}岁了",dog1.Name,dog1.Age);
Console.WriteLine("++++++++++++++++++++++++++++++++++++++++++++++++");
//有代参构造方法时初始化对象
Dog dog2 = new Dog("阿黄",);
Console.WriteLine("我的名字叫做{0},今年{1}岁了",dog2.Name,dog2.Age);
Console.ReadLine();
从上面的代码可以看出有,有代参构造方法时初始化对象的代码要比没有代参构造方法时简洁要的多
执行结果:

这只是构造方法的简单运用,还有很多的高级用法期待大家的挖掘:
那些年我们学过的构造函数(构造方法,C#)的更多相关文章
- 那些年我们学过的PHP黑魔法
那些年我们学过的PHP黑魔法 提交 我的评论 加载中 已评论 那些年我们学过的PHP黑魔法 2015-04-10 Sco4x0 红客联盟 红客联盟 红客联盟 微信号 cnhonker_huc 功能介绍 ...
- Java里的构造函数(构造方法)
构造函数 ,是一种特殊的方法.主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中.特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型 ...
- 从零开始学C++之构造函数与析构函数(三):深拷贝与浅拷贝、空类
一.深拷贝与浅拷贝 说得简单点,假设一个类有指针成员,如果在拷贝的时候顺带连指针指向的内存也分配了,就称为深拷贝:如果只是分配指针本身的内存,那就是浅拷贝.浅拷贝造成的问题是有两个指针指向同块内存,d ...
- 从零开始学C++之构造函数与析构函数(二):初始化列表(const和引用成员)、拷贝构造函数
一.构造函数初始化列表 推荐在构造函数初始化列表中进行初始化 构造函数的执行分为两个阶段 初始化段 普通计算段 (一).对象成员及其初始化 C++ Code 1 2 3 4 5 6 7 8 9 1 ...
- 从零开始学C++之构造函数与析构函数(一):构造函数、析构函数、赋值与初始化、explicit关键字
一.构造函数.默认构造函数 (1).构造函数 构造函数是特殊的成员函数 创建类类型的新对象,系统自动会调用构造函数 构造函数是为了保证对象的每个数据成员都被正确初始化 函数名和类名完全相同 不能定义构 ...
- python第四十课——构造函数
1.动态给对象添加属性: 在对象创建完毕后,单独为其添加需要的属性:可以理解为:私人定制 [注意]: 添加的属性只有此对象能够使用,别的对象如果用了,直接报错; 2.构造函数/构造方法/构造器: 格式 ...
- Java基础-this关键字和构造方法(10)
this关键字 方法被哪个对象调用,this就代表那个对象当局部变量隐藏成员变量时,使用this关键字(例如构造方法和访问器). 构造方法 构造方法作用概述 给对象的数据进行初始化 构造方法格式 方法 ...
- java基础知识 构造方法
在java里面,构造方法也就是构造函数 构造函数=构造方法;构造方法是一种特殊的方法,具有以下特点.(1)构造方法的方法名必须与类名相同.(2)构造方法没有返回类型,也不能定义为void,在方法名前面 ...
- 面向对象(基础oop)之属性与构造函数
大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...
随机推荐
- Angular 基础入门
简介 什么是AngularJS 一个功能非常完备的前端框架,通过增强HTML的方式提供一种便捷开发Web应用程序的方式 其核心特点就是几乎无任何DOM操作,让开发人员的精力和时间全部集中于业务 MVC ...
- iOS UITableViewableViewCell自适应高度
前两天做了一个项目,中间有遇到一个问题,就是聊天的时候cell高度的问题.这是一个很多前辈都遇到过,并且很完美的解决过的问题.这里主要是记录自己的学习心得.项目中首先想到的是用三方库,可是有问题,遂放 ...
- WebApi安全性 使用TOKEN+签名验证
首先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候,会面临着许多的安全性问题, ...
- STL: unordered_map 自定义键值使用
使用Windows下 RECT 类型做unordered_map 键值 1. Hash 函数 计算自定义类型的hash值. struct hash_RECT { size_t operator()(c ...
- Delphi_06_Delphi_Object_Pascal_基本语法_04
这一节描述基本语法中的流程语句: 条件语句 IF语句. 选择语句 Case语句.循环语句 while/repeat/for.以及continue.break语句,还有终止程序 运行流程Exit.Ha ...
- Maven部署构件至远程仓库
私服的一大作用就是部署第三方构件,包括组织内的生成的构件以及一些无法从外部仓库获取的构件.无论是日常开发中生成的构件,还是正式版本发布的构件,都需要部署到仓库中,供其它团队成员使用.Maven除了能对 ...
- ubuntu设置时区为美国中部时间西六区
查看当前ubuntu系统时区 date -R Fri, Dec :: + 显示的是东八区时间及北京时间 然后输入tzselect 按照提示修改对应时区 本例子修改为美国中部时间 西六区 ~$ tzse ...
- storm0.9.5集群安装
安装前的准备工作 关闭防火墙 chkconfig iptables off && setenforce 0 创建用户 groupadd realtime && user ...
- javascript 表单
在HTML中,表单是由<form>元素来组成的.在js中,表单对应的则是HTMLFormElement类型.它和其他HTML元素一样具有相同的默认属性.下面是HTMLFormElement ...
- IE7 浏览器下面设置text-indent属性变成margin属性BUG
问题来源 今天做项目的时候发现了一个问题,在使用text-indent属性对元素进行缩进是发现在360浏览器下发生了元素偏移,跟margin-left的效果一样,打开f12发现3607.1浏览采用的i ...