| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4631 人关注过本帖
标题:请问实例化一个类的时候,先创建变量还是先执行构造函数?
只看楼主 加入收藏
gromentt
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-9-20
结帖率:100%
收藏
 问题点数:0 回复次数:4 
请问实例化一个类的时候,先创建变量还是先执行构造函数?
初学,看到一个类定义如下:
class point
{

    private int point_x;
    private int point_y;
   
    public int x    {
        get { return point_x; }
        set { if (value < 0)
                point_x = 0;
            else
                point_x = value;        }
    }
    public int y    {
        get { return point_y; }
        set { if (value < 0)
                point_y = 0;
            else
                point_y = value;        }
    }

    public point()
    {
        x = 0;
        y = 0;
    }
}
有一点不太明白,书上都是说实例化一个类的时候,首先会执行构造函数,这样就直接给x和y赋值了。但是照理说这时候x和y两个变量都还没有声明,都还不存在,这样赋值岂不出错?
或者还是说实例化的时候会把类定义里的所有数据成员都先声明好,然后再来执行构造函数?
迷惑中,望赐教!!
搜索更多相关主题的帖子: 构造 函数 实例 变量 
2010-02-03 22:40
athenalux
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河北石家庄
等 级:小飞侠
威 望:8
帖 子:975
专家分:2514
注 册:2008-11-26
收藏
得分:0 
没错,先把变量创建完成,然后才执行构造函数。

QQ:81704464
2010-02-04 07:06
happy886
Rank: 3Rank: 3
来 自:河南
等 级:论坛游侠
威 望:3
帖 子:130
专家分:120
注 册:2009-3-21
收藏
得分:0 
没错,先把变量创建完成,然后才执行构造函数
也当然 可以       先来一个的空的构造函数

public point()
    {
    }
实例一个对像时  先来一个

point myPoint=new point();
myPoint.x=xxxxx;
myPoint.y=yyyy;
。。。然后  执行相应的方法

happy  C#
2010-02-04 09:58
gromentt
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-9-20
收藏
得分:0 
以下是引用happy886在2010-2-4 09:58:04的发言:

也当然 可以       先来一个的空的构造函数

public point()
    {
    }
实例一个对像时  先来一个

point myPoint=new point();
myPoint.x=xxxxx;
myPoint.y=yyyy;
。。。然后  执行相应的方法

为什么要用空的构造函数呢?这和不写构造函数也一样了吧?

30岁的初学者。
2010-02-04 10:44
baikil
Rank: 10Rank: 10Rank: 10
来 自:X星球
等 级:青峰侠
威 望:4
帖 子:282
专家分:1580
注 册:2009-7-20
收藏
得分:0 
每一个类都有自己的构造函数,没有构造函数你就不能对它实例化.
1.有的类看没有看破到有构造函数,但在编译器编译就有默认的无参构造函数.
2.如有自己的构造函数,就不会在编译时创建默认的构造函数.
3.在静态类中,也是有个构造函数的,必须是静并无参.

自创QQ群64885635,方便C#学习交流.希望各项工作路好学都好入!
2010-02-04 12:00
快速回复:请问实例化一个类的时候,先创建变量还是先执行构造函数?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.072442 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved