根据类的大小创建对象时的内存分配量。

计算机如何知道要为一个对象分配多少内存(根据类的不同大小)?下面是一个例子。

public class Point(){
   public int x;
   public int y;
   public Point(int x, int y){
      this.x = x;
      this.y = y;
   }
}

Point x = new Point();

用 “new “关键字先为一个新对象分配内存,然后再调用类的构造函数,那么在调用构造函数之前,计算机如何知道为新创建的对象分配多少内存呢?

解决方案:

想写评论,但太长了。

这一行。

Point x = new Point();

可以分成三部分

  1. 变量声明: Point x
  2. 分配: =
  3. 对象实例化 new Point()

第3部分(对象实例化)导致内存分配和实例初始化.只有第3部分定义了你要分配的对象(new Point(), new Circle()等)。) 因为运行时知道类型,所以它可以计算出所需的内存量。

第1部分(变量声明)只是告诉代码的其余部分,如何访问新分配的对象,所以,类型从赋值操作符的左边和右边开始。= 可能有所不同。

如果两个 PointCircle 将继承相同的基类 Drawing,然后在C#中可以写。

Drawing x = new Point();

这个示例仍然分配点,因为 new Point()但其余代码只能将该点作为基类实例使用。Drawing,例如:。

x.Draw();

而不能将其作为 Point 而不投。

x.x = 100; // compile time error

给TA打赏
共{{data.count}}人
人已打赏
未分类

Python中的返回问题

2022-9-8 19:48:42

未分类

服务器如何向浏览器发送JWT令牌?

2022-9-8 19:59:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索