黑马程序员技术交流社区
标题:
构造函数是怎么初始化的,是初始化类成员
[打印本页]
作者:
杨占伟
时间:
2012-11-27 21:49
标题:
构造函数是怎么初始化的,是初始化类成员
本帖最后由 杨占伟 于 2012-11-28 09:51 编辑
代码如下:
namespace MyCAPP
{
class Peson
{
private readonly string name;
public Peson(string name)
{
this.name = name;
//这句代码是初始化类成员name吗?
}
public string Name
{
get { return name; }
}
}
class Program
{
static void Main(string[] args)
{
Peson peson = new Peson("张三");
//这个实例化的会不会在托管堆上开辟空间,以及和Peson类中成员name有关系吗?
Console.WriteLine(peson.Name);
Console.ReadKey();
}
}
}
this.name = name;
//这句代码是初始化类成员name吗?
Peson peson = new Peson("张三");
//这个实例化的会不会在托管堆上开辟空间,以及和Peson类中成员name有关系吗?
作者:
殷士剑
时间:
2012-11-28 00:26
你确定你使用的是java吗? 好吧,我把我的代码给你看看。。求技术分!
class Person {
private String name;
public Person(String name) {
this.name = name; // 这句代码是初始化类成员name
}
public String getName() {
return name;
}
}
class Program {
static void Main(String[] args) {
Person person = new Person("张三"); // 创建一个Person对象
System.out.println(person.getName());
}
}
复制代码
作者:
黑马-张扬
时间:
2012-11-28 09:02
1.this.name = name 是初始化类成员name,this是一个指向自身的引用,所以this.name是此对象的成员。
2.会在托管堆上分配空间。因为类是一种引用类型。当你声明引用类型的变量时,该变量会一直包含值 null,直至您使用 new 运算符显式创建对象的实例,或者为该变量分配已经使用 new在其他位置创建的对象 。创建对象时,将在托管堆上分配内存,变量只保存对对象位置的引用。
作者:
杨占伟
时间:
2012-11-28 09:48
谢谢,我知道了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2