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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李景荣 中级黑马   /  2013-2-20 19:58  /  1102 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李景荣 于 2013-2-21 16:47 编辑

结构有方法和构造方法吗?结构可以new吗?构造方法和类的有什么区别?还有没有别的什么区别?

评分

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

查看全部评分

2 个回复

倒序浏览
类:类是引用类型在堆上分配,类的实例进行赋值只是复制了引用,都指向同一段实际对象分配的内存。类有构造和析构函数。类可以继承和被继承
结构:结构是值类型在栈上分配(虽然栈的访问速度比较堆要快,但栈的资源有限放),结构的赋值将分配产生一个新的对象。结构没有构造函数,但可以添加。结构没有析构函数。结构不可以继承自另一个结构或被继承,但和类一样可以继承自接口

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 康晓璞 于 2013-2-21 00:14 编辑

1. 结构是值类型,类是引用类型
   值类型:只需要一段内存,数据存放在栈中。
  引用类型需要两段内存:
                      第一段:它存放实际的数据,它总是位于堆中。
                      第二段:是一个引用,指向数据在堆中的存放位置。
2. 类可以被继承和继承,而结构不能被继承,但是可以像类一样继承接口。
3. 结构可以有实例构造函数,但不可以有析构函数。注意:结构不能包含显示的无参构造函数 。
   而类无此种情况
例如:
如下可以
  struct Student
        {
            int age;
            string name;
            public Student(int age, string name)
            {
                this.age = age;
                this.name = name;
            }
        }

但这样就不行
struct Student
        {
            int age;
            string name;
            public Student()
            {
                        }
        }

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
张文 + 1
李景荣 + 3 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马