none
带参构造函数 含义 RRS feed

  • 问题

  • AAA   aa=new AAA();这是一个不带参的构造函数  aa我们可以把它叫做这个构造函数的名称,那么像AAA   aa=new AAA(string b);
    这个后面带了个参数b我想知道像这种构造函数到底有什么意义,或者说b到底起到了什么作用?请大家用文字帮我解释一下,目前我所看的书没有一个有一个明确的解释,如果需要可以举个例子

    2009年9月6日 5:30

答案

  • 你好!
         首先纠正一下,aa是类的实例变量名,不是构造函数的名字。
         带参数的构造函数相当有意义了,举个简单的例子吧,这个光用文字比较难解释清楚:
         class Student
         {
               private string name="";
               public Student(string studentName)  //带参数的构造函数,实例化这个类的时候可以把学生的名字传递给这个实例。
               {
                       this.name=studentName;//把学生名字保存在name字段里
                }
         }

         使用的时候:Student s=new Student("小明");实例化了一个名字是”小明“的学生
         只是一个简单的例子,还有很多其他的技巧,随着学习的深入,你逐渐就理解了!
    周雪峰
    • 已标记为答案 茉莉花 2009年9月8日 7:04
    2009年9月6日 5:39
    版主

全部回复

  • 你好!
         首先纠正一下,aa是类的实例变量名,不是构造函数的名字。
         带参数的构造函数相当有意义了,举个简单的例子吧,这个光用文字比较难解释清楚:
         class Student
         {
               private string name="";
               public Student(string studentName)  //带参数的构造函数,实例化这个类的时候可以把学生的名字传递给这个实例。
               {
                       this.name=studentName;//把学生名字保存在name字段里
                }
         }

         使用的时候:Student s=new Student("小明");实例化了一个名字是”小明“的学生
         只是一个简单的例子,还有很多其他的技巧,随着学习的深入,你逐渐就理解了!
    周雪峰
    • 已标记为答案 茉莉花 2009年9月8日 7:04
    2009年9月6日 5:39
    版主
  • 这个是一种方式写法 看个人习惯了 构造函数写法为了实例化生命期时候赋值变量 也可以用属性写法 这个是实例化生命期之后赋值

    2009年9月6日 7:42
  • 您好,

    举个简单的例子吧,如果用不带参数的构造函数(前提这个构造函数什么也没做)。
    那么就相当于把一部没有发动机和轮子的车躯干给您,然后您自己再去安装发动机和轮子(相当于给实例付属性值)。

    如果是带参数的构造函数,那么就相当于给您一部可以使用的组装好的车子。
    2009年9月6日 12:45
  • 你好,

    1、aa是AA类的一个对象名称,不能叫做构造函数的名称。
    2、首先,很多时候,有没有参数,其实都是可以实现同一个功能的,比如,使用属性可以实现同样的效果。然后,构造函数顾名思义是构造时候用的,所以传入参数,可以在较早的时候把值传入类中进行初始化,而属性就比较慢。
    jon.valett@gmail.com
    2009年9月6日 15:01
    版主
  • 楼主你好,建议多看一些面向对象相关的书籍,这样你就不会这样迷茫了

    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年9月7日 1:33
    版主
  • 只需要用reflector 看一下源代码 就知道这些参数做什么了


    实际上所有m$提供的类  构造函数都在msdn上有详细地解释

    恭喜自己5星用户达成
    2009年9月7日 1:53
    版主