A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liangdmaster 中级黑马   /  2014-7-5 11:35  /  2320 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 liangdmaster 于 2014-7-13 23:51 编辑

一个类里为什么会自动生成一个无参的构造函数,有什么作用呢?

14 个回复

倒序浏览
构造函数的作用是初始化这个类,简单的说就是将从操作系统申请过来的内存地址块给分配下去。至于为什么一定要有一个无参的,这就是规定,站在语言设计者的角度上这样能够降低设计难度
回复 使用道具 举报 2 0
目前就只知道 构造函数 是用来初始化类的
class Person
{     private string name;
     public Person()
      {}     public Person(string name)
      {
           this.name=name;
      }
}

class Program
{
     public static void Main(string[] args)
     {
         Person p = new Person("张三丰");
     }
}
回复 使用道具 举报
谢谢回答
回复 使用道具 举报
个人觉得这就是一种语法规范而已,我们不必去深究。就好像
回复 使用道具 举报
坏了,一不小心还没打完就发出去了,就好像我们在新建一个对象的时候
Person p=new Person();
这句话的用途是创建一个Person类的对象,如果我们在Person这个类里面没有默认的这个无参数的Person()构造函数,那么当我们写出 Person() 这个方法的时候,我们要怎样才能让程序知道我么写的是什么呢?那就是通过 这个类里面的构造函数了,如果你不写,编译器也会默认给你生成一个的。
回复 使用道具 举报
致立 发表于 2014-7-8 16:44
坏了,一不小心还没打完就发出去了,就好像我们在新建一个对象的时候
Person p=new Person();
这句话的用途 ...

谢谢,您的回答很完美
回复 使用道具 举报
liangdmaster 发表于 2014-7-8 21:17
谢谢,您的回答很完美

求采纳,对了能问你个问题吗,技术分怎么弄啊
回复 使用道具 举报
一十二。 来自手机 中级黑马 2014-7-9 22:11:31
9#
没有无参构造,有可能会出现什么问题了,我忘记了,
回复 使用道具 举报
致立 发表于 2014-7-9 21:31
求采纳,对了能问你个问题吗,技术分怎么弄啊

不好意思,怎么采纳呀?我一直没找着。
技术分能用黑马币兑换。
回复 使用道具 举报
liangdmaster 发表于 2014-7-9 22:49
不好意思,怎么采纳呀?我一直没找着。
技术分能用黑马币兑换。

好吧,有办法标记为已解决么?
回复 使用道具 举报
致立 发表于 2014-7-10 20:44
好吧,有办法标记为已解决么?

貌似没有标记已解决吧?还是我没找到呢?
回复 使用道具 举报
用来初始化类的成员变量什么的吧,菜鸟之见
回复 使用道具 举报
最近在写blog,今天写了第一篇,也是关于构造方法的:
http://blog.sina.com.cn/u/1829292515
可能写的不是很完整,不知道能不能帮到你,是自己的一点心得。
回复 使用道具 举报
muyyi 中级黑马 2014-7-14 20:00:00
15#
构造函数是用来初始化一个类的
默认的构造函数没有参数,这是一种设定,可能是为了编程规范和方便吧
当然如果你要往类里面新增一些初始化数据的时候,这个就很有用了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马