C#,怎么区分默认构造函数和构造函数,等...
有几个问题想请问大家:No.1:为什么“publicChild()”是默认构造函数,怎么判断?而“publicChild(stringname,intage)”就不是呢?...
有几个问题想请问大家:
No.1:为什么“public Child()”是默认构造函数,怎么判断?而“public Child(string name, int age)”就不是呢?
No.2:“public Child(string name, int age)”中的“this.name = name;”,“this.name”是指开头的“private string name”,而“=”后的“name”是指“public Child(string name, int age)”中的“string name”吗?
No.3:“public void PrintChild()”为什么就是一个方法呢?怎么判断? 展开
No.1:为什么“public Child()”是默认构造函数,怎么判断?而“public Child(string name, int age)”就不是呢?
No.2:“public Child(string name, int age)”中的“this.name = name;”,“this.name”是指开头的“private string name”,而“=”后的“name”是指“public Child(string name, int age)”中的“string name”吗?
No.3:“public void PrintChild()”为什么就是一个方法呢?怎么判断? 展开
2个回答
展开全部
No.1:首先构造函数没有返回值定义,void也不行。没参数的就是默认构造函数;再有,定义了一个有参数的构造函数,就无法调用默认构造函数。
No.2:是滴。不过不建议这样命名,最好有区别,容易头晕;推荐参数名前加set前缀,这样编程时一目了然。
No3:最直观的判断是名称后面有(),以及大括号内的方法语句,没的话有可能是属性,不过索引属性this[object var]后面可是有[]
No.2:是滴。不过不建议这样命名,最好有区别,容易头晕;推荐参数名前加set前缀,这样编程时一目了然。
No3:最直观的判断是名称后面有(),以及大括号内的方法语句,没的话有可能是属性,不过索引属性this[object var]后面可是有[]
追问
No.1:“定义了一个有参数的构造函数,就无法调用默认构造函数。”不对呀!我在测试时,带参数和不带参数的构造函数都是可以调用的啊!怎么会无法调用默认构造函数呢?
No.2:这个是例程的,不是我自己写的。。。这个建议不错!!!
No.3:“最直观的判断是名称后面有()”,这恐怕不行吧!默认构造函数“public Child()”,这里的括号又怎么解释呢?难道这也是一个方法?
追答
No1:我是指你不定义无参数的构造函数时,但是定义了有参数的构造函数时,是不能调用无参数的构造函数的(绕口令)。也可以理解为此时的默认构造函数就是你定义的有参数的构造函数,你再试试
public class test {
public test (int a) {
}
}
No3:对呀,构造函数也是方法呀,只不过是只能调用一次的方法。
另外,函数、方法都叫乱了,都是一个意思,都指一段处理过程代码。
展开全部
1 因为你new一个类 没有加参数所以调用的是第一个构造函数 如果你写类的时候不加构造函数 系统是会给他一个默认的因为new 一个类会首先调用构造函数
2 this.name 是指当前类的name 也就是name是指这个函数的参数那么
3 因为 他有返回值 构造函数是没有返回值的
2 this.name 是指当前类的name 也就是name是指这个函数的参数那么
3 因为 他有返回值 构造函数是没有返回值的
追问
您慢慢说,麻烦标上标点符号。原谅我,除了最后一段我看懂了,其它都没看懂。。。
我不明白你说的“new一个类”是指什么。我刚学这个,书上也说的迷迷糊糊的。
还有第二段,最后的“那么”是指什么?
能否再仔细的解释一下?
追答
1假设你有2个构造函数一个是没有参数的 另一个是1个参数的 假设这个类叫cc 你new cc()调用的是没有参数的构造函数 所以说他是默认是的因为他不需要参数 而new cc(1)他有一个参数 所以调用的是第二个。你在写一个类的时候如果不写构造函数 系统会默认给你一个构造函数 因为new cc()的时候 会执行cc这个类的构造函数 如果没有无参的构造函数 就无法new了
2是我打错了 this是指当前类的成员不是只局部变量 this.name是指成员变量name 普通的name 是指局部变量name 如果还不懂加我QQ1220856302
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询