第 5 页 构造函数、默认构造函数、 缺省构造函数
来源:互联网 发布:做淘宝客 宝贝隐形降权 编辑:程序博客网 时间:2024/05/16 07:29
2.3.1构造函数、默认构造函数、 缺省构造函数
对于上面的实例,它已经能完成绝大部分工作了,但它还是不完善的,还有许许多多的细节等到我们去完善!也许有的同学已经注意到了,当我创建完“jingwei”这个对象时,这个对象的所有的属性都是空的,也就是说:这个对象的姓名是未定的、年龄是未定的、性别是未定的、薪水是未定的、午餐也是未定的。而我们想把这些属性都添加上去,就还要用对象调用相应的方法,去一个个修改!天啊,这简直是太麻烦了!有没有什么好方法能够在我们创建对象的同时就完成了对属性赋值的操作呢?哦不,应该说是对属性的初始化呢?当然没问题了,这就需要所谓的构造函数!
构造函数是类中最特殊的函数,它与析构函数的功能正好相反!
从特征上来说:1.它是编程语言中唯一没有返回值类型的函数。
2.它的名称与类的名称必须要完全相同。
3.它必须被声明为公共(public)的类型
4,可以对构造函数进行重载。
5.它在创建对象时自动被调用。
从功能上来说:1.它是对类中的属性进行初始化。
其实,对于上面的程序来说我们没有自己定义构造函数。但是,在这种情况下,系统会自动为我们定义一个“默认构造函数”。他会把数值变量自动赋值为0,把布尔行变量赋值为false等等(但在C++中,默认构造函数不初始化其成员)。如果程序员定义了构造函数,那么系统就不会再为你的程序添加一个缺默认造函数了。(在这里,我们提倡的是自己定义构造函数,而不是用系统的默认构造函数)
还是看个实例吧!这样比较清楚一些!
//employee.java |
这样,在我们创建“jingwei”这个对象的同时,它的所有的属性也被初始化了!显然,这大大的提高了工作效率,但是,它还是不符合要求。想想看,如果我们现在创建这个类型的第二个对象的时候会发生什么事情?告诉你,除了对象的“名”(这个名称不在是对象属性中的名称,而是对象本身的名称)不一样外,其所有的“属性值”都一样!比如:现在我们创建第二个对象flashmagic,然而我会发现这个对象的所有的属性和jingwei这个对象的所有的属性完全相同。而我们只能在用对象的方法去改变着写属性了!很显然,这种方法不大好!我们需要一种方法在创建对象的时候为对象的属性赋予“我们想要的值”。
相信你也看到了,默认构造函数就显得无能为力了。我们需要的是带参数的构造函数,在创建对象时,我们把参数传给构造函数,这样就能完成了上述的功能!口说无凭,还是来看个实例吧:
//employee.java |
这样一来,在创建对象的同时我们就可以给他赋予我们想要的值,很显然,这可就方便多了。哦,对了!还没有告诉你怎么创建呢!哈哈,往前翻几页你会看到这句话:
jingwei = new employee();这是创建一个对象,而我们把它改成
jingwei = new employee("jingwei",20,
- 第 5 页 构造函数、默认构造函数、 缺省构造函数
- 缺省构造函数
- 缺省构造函数
- 关于缺省构造函数
- 缺省构造函数
- 构造缺省函数
- 构造函数的参数缺省
- C++基础:缺省构造函数
- 拷贝构造函数--默认拷贝构造函数
- 浅析构造函数之默认构造函数
- 默认构造函数和拷贝构造函数
- 拷贝构造函数及其默认构造函数
- 默认构造函数和拷贝构造函数
- 默认构造函数和构造函数重载
- 用有参构造函数作默认构造函数
- 默认构造函数
- 使用默认构造函数
- C++ 默认构造函数
- Exchange Server 2003 书籍下载大全 (收)
- 第 4 页 一起来看看workstation这个类
- Exchange /Windows Server视频录像下载汇总-强烈推荐 (收藏)
- 全球最具影响力5大品牌揭晓 苹果电脑排首位
- 三国志10 戏如人生
- 第 5 页 构造函数、默认构造函数、 缺省构造函数
- Exchange 2000&2003文章和资源下载总汇(2005年元月版) (收藏)
- 启用和分析Exchange SMTP身份验证记录(收藏)
- 第二十五期:CSDN论坛秀-Delphi版-本期作秀:angle097113(深思不解)--[情侣婚纱秀]
- 第 6 页 重载构造函数
- 黄金十二宫之金牛宫
- CString到UNICODE的转换
- 黄金十二宫之双子宫
- 用Delphi创建服务程序