对象与类型
来源:互联网 发布:linux 自动启动oracle 编辑:程序博客网 时间:2024/05/16 06:00
结构(struct)在内存中的存储地点是:栈(stack);
类(class)在内存中的存储地点是:堆(heap);
示例:
struct retangle
{
public double width;
public double height;
public retangle(double width,double height)
{
…
}
}
因为是值类型,所以用new运算符的时候编译器是不会在堆上分配空间的.我们要做的,仅仅是声明就可以了:
retangle ret;
ret.width=3;
ret.height=4;
结构与类的区别:
1,值类型与引用类型的区别,值类型存储在stack中(注:如果他们是一个对象的一部份,就会保存在heap中),或存储为内联(inline).
2,结构不支持继承. Object –> ValueType –> Struct
3,编译器总是为结构提供一个无参数的默认构造函数,而且这个构造函数是不允许替换的.(因为.NET运行库不能调用用户定制的无参构造函数).结构的默认构造函数会把所有的字段都初始化为0。不能提供字段的初始值,否则会有编译错误。
4,使用结构,可以指定字段如何在内存中布局.
Ref与Out的异同:
在.NET中通过值传递参数是默认的。这两个关键字都是迫使值参数通过引用来传递给方法的方法。
Ref这种方式,在传递前,变量需要初始化。
Out这种方式,认为初始化没有必要。
函数重载:
仅仅在返回值的类型上不同,不算重载;
参数是仅仅是ref 与 out的不同,不算重载.
静态构造函数:
编写这种构造函数的原因是:类有一些静态字段或属性,需要在第一次使用前,从外部源中初始化。
注意:静态构造函数没有访问修饰符,其它的C#代码从来不调用它,但在加载类是,总是由。NET运行库来调用,所以访问修饰符对于他来说是没有意义的。当然也不能带任何参数,当然也只能有一个,也不能访问任何实例成员。
- 对象与类类型
- 对象与类型
- 指针类型与对象类型一致
- 对象的静态类型与动态类型
- Java基本类型与对象
- delphi 对象与类类型
- JAVA简单类型与对象类型(复杂类型)
- JAVA主类型与对象句柄
- Python对象类型判断与函数重载
- json数组与对象类型转换
- Hibernate映射类型与映射对象标识符
- 1 Python中的类型与对象
- 【JavaScript】封装对象与强制类型转换
- 对象的内存布局与锁类型
- 【面向JS--内置对象与包装类型】
- 摇摆于强类型与弱类型之间的对象
- EXCEL VBA 中值类型与引用(对象)类型
- 区别指针类型与所指对象的类型
- 学习web前台页面开发好帮手
- linux配置iptables和squid
- HttpSessionListener 和HttpSessionBindingListener的区别
- 杂想
- 进程与线程
- 对象与类型
- 25匹马,跑道一次可以有5匹马比赛,至少需要多少次比赛,可以计算出前5名
- 宏的一些副作用
- 移位操作右操作数为负数或右操作数大于或等于左操作数的位数,结果为为定义
- extjs 3.0 radioGroup的问题解决办法
- hypertable学习中段
- 获取时间日期
- java解析xml
- 努力