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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨占伟 于 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有关系吗?

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

3 个回复

倒序浏览
你确定你使用的是java吗? 好吧,我把我的代码给你看看。。求技术分!
  1. class Person {
  2.         private String name;

  3.         public Person(String name) {
  4.                 this.name = name; // 这句代码是初始化类成员name
  5.         }

  6.         public String getName() {
  7.                 return name;
  8.         }
  9. }

  10. class Program {
  11.         static void Main(String[] args) {
  12.                 Person person = new Person("张三"); // 创建一个Person对象
  13.                 System.out.println(person.getName());
  14.         }
  15. }
复制代码
回复 使用道具 举报
1.this.name = name 是初始化类成员name,this是一个指向自身的引用,所以this.name是此对象的成员。
2.会在托管堆上分配空间。因为类是一种引用类型。当你声明引用类型的变量时,该变量会一直包含值 null,直至您使用 new 运算符显式创建对象的实例,或者为该变量分配已经使用 new在其他位置创建的对象 。创建对象时,将在托管堆上分配内存,变量只保存对对象位置的引用。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
谢谢,我知道了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马