都是两个对象,
string s = new string("abc") ; 和Person p = new Person("abc"); 都是简写的,为了代码的整洁而这样写的。
其实代码分为两个部分,
第一步是声明对象,string s;和Person p;
第二步是初始化对象s= new string("abc") ;和 p = new Person("abc");
所以都是两个对象,这个是很久以前的理解,希望高手拍砖!
可不可以这样理解
string 和Person都是一个类
均为引用类型,给一个引用类型赋值是将复制到一个对象的引用,对象还是同一个对象
声明时为局部引用类型,使用堆栈保存地址
new该对象时引用构造器在堆中创建一个新对象,然后初始化这个对象
p = new Person("abc");
p = new Person("abc");
只是把新实例的地址赋值给引用