黑马程序员技术交流社区
标题:
类和结构有什么区别?
[打印本页]
作者:
李景荣
时间:
2013-2-20 19:58
标题:
类和结构有什么区别?
本帖最后由 李景荣 于 2013-2-21 16:47 编辑
结构有方法和构造方法吗?结构可以new吗?构造方法和类的有什么区别?还有没有别的什么区别?
作者:
徐荣权
时间:
2013-2-20 20:20
类:类是引用类型在堆上分配,类的实例进行赋值只是复制了引用,都指向同一段实际对象分配的内存。类有构造和析构函数。类可以继承和被继承
结构:结构是值类型在栈上分配(虽然栈的访问速度比较堆要快,但栈的资源有限放),结构的赋值将分配产生一个新的对象。结构没有构造函数,但可以添加。结构没有析构函数。结构不可以继承自另一个结构或被继承,但和类一样可以继承自接口
作者:
康晓璞
时间:
2013-2-20 23:42
本帖最后由 康晓璞 于 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()
{
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2