黑马程序员技术交流社区
标题: 关于构造函数 [打印本页]
作者: honeys天空s 时间: 2013-11-29 22:11
标题: 关于构造函数
本帖最后由 honeys天空s 于 2013-11-30 16:26 编辑
复制构造函数是什么意思?这个词挺陌生的,怎么使用它?
作者: 为梦而生 时间: 2013-11-29 22:19
- public class Taxi
- {
- public Taxi()
- {
- console.writeline("这个函数");
- }
- }
- static void Main()
- {
- Taxi t = new Taxi();
- consol.readkey();
- }
复制代码
使用一个简单的构造函数定义了名为 Taxi 的类。然后使用 new运算符来实例化该类。在为新对象分配内存之后,new运算符立即调用 Taxi 构造函数。
构造函数具有与类相同的名称,它通常初始化新对象的数据成员
作者: 许庭洲 时间: 2013-11-29 22:27
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class Person
{
private string name;
private int age;
//Copy constructor.
publicPerson(Person previousPerson)
{
name= previousPerson.name;
age = previousPerson.age;
}
//Instance constructor.
publicPerson(string name, int age)
{
this.name = name;
this.age = age;
}
// Getaccessor.
publicstring Details
{
get
{
return name + " is " + age.ToString();
}
}
}
class TestPerson
{
staticvoid Main()
{
//Create a new person object.
Person person1 = new Person("George", 40);
//Create another new object, copying person1.
Person person2 = new Person(person1);
System.Console.WriteLine(person2.Details);
}
}
输出结果:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
George is 40
作者: 〆、单曲循环 时间: 2013-11-30 09:59
听错了吧 应该是赋值构造函数吧 构造函数就是初始化对象 对属性赋初始值
作者: honeys天空s 时间: 2013-11-30 15:39
恩恩 构造函数的名称应该与类名称必须相同吧
作者: honeys天空s 时间: 2013-11-30 15:41
没错,我说的就是复制构造函数 我也感觉挺陌生所以问问
作者: Coding 时间: 2013-11-30 18:08
当我们创建一个类的时候,会默认的有一个“默认构造函数”,C#复制构造函数仍然属于构造函数,不同的是以类本身作为参数的数据类型。
调用构造函数时,参数必须是已经创建的类实例。
- class Program
- {
- static void Main(string[] args)
- {
- //使用默认构造函数创建示例,并给各个属性赋值
- UserInfo uInfo1 = new UserInfo();
- uInfo1.Name = "Coding";
- uInfo1.Sex = true;
- uInfo1.Age = 24;
- //使用C#复制构造函数创建示例,但是需要注意的是这并非是对uInfo1的引用,同样是创建了新的实例
- UserInfo uInfo2 = new UserInfo(uInfo1);
- Console.WriteLine("用户名:{0},性别:{1},年龄:{2}",uInfo2.Name,uInfo2.Sex,uInfo2.Age);
- Console.ReadLine();
- }
- }
- //UserInfo 用户信息
- class UserInfo
- {
- /// <summary>
- /// 用户名称
- /// </summary>
- public string Name { get; set; }
- /// <summary>
- /// 性别
- /// </summary>
- public bool Sex { get; set; }
-
- /// <summary>
- /// 年龄
- /// </summary>
- public int Age { get; set; }
- //默认构造函数
- public UserInfo()
- {
- }
- //复制构造函数,以类实例作为参数的构造函数
- public UserInfo(UserInfo uInfo)
- {
- this.Name = uInfo.Name;
- this.Sex = uInfo.Sex;
- this.Age = uInfo.Age;
- }
- }
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |