构造函数的认识

关于构造函数的认识:在建立一个对象时,常常需要做某些初始化工作,例如如何给数据成员赋初值。如果一个数据成员未被赋值,则他的值是不可预知的,因为系统在为它分配内存时,保留了这些存储单元的原状,这就成为了数据成员的初始值。这种情况显然是与人们的要求不相符的,对象是一个实体,它反映了客观事物的属性,是应该有确定值的。

但是数据成员是不能在声明类时初始化

如例1、

class Data{
	int year=2;
	int month=12;
	int day=31;
};

为什么不能在不能在声明类时对数据成员初始化?

因为类并不是一个实体,而是一种抽象的数据类型,并不占存储空间,显然无法容纳数据。

如果一个类中所有的成员都是公用的,则可以在定义对象时对数据成员进行初始化。

例2、

class Data{
public:
	int year=2;
	int month=12;
	int day=31;
};
构造函数的作用:构造函数是一种特殊的成员函数,与其他成员函数不同。不需要用户来调用它,而是在创建类对象时,由编译器自动调用。构造函数的名字与类名相同,而不能由用户任意命名,以便编译系统能识别它并把它作为构造函数处理 。它不具有任何类型,也没有返回值。构造函数的功能是由用户自己定义的,用户根据初始化的要求设计函数体和函数参数。

例3、

class Time
{
public:
	Time()
	{
		 hour = 0;
		 minute = 0;
		 second = 0;
	}
	void setTime(); 
	void showTime();
private:
	int hour;
	int minute;
	int second;
};
int main()
{
	Time t;
	t.setTime();
	t.showTime();
	system("pause");
	return 0;
}
void Time::setTime()
{
	cin >> hour;
	cin >> minute;
	cin >> second;
}
void Time::showTime()
{
	cout << hour <<
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java构造函数的重载指的是在同一个中定义多个构造函数,它们的参数列表不同,可以有不同的参数型、不同的参数个数或者参数顺序不同。这样做的目的是为了提供更灵活的对象创建方式,以满足不同的需求。 构造函数重载的语法格式与普通函数重载相同,只是函数名必须与名相同。例如: ``` public class Person{ private String name; private int age; public Person(){ // 无参构造函数 } public Person(String name){ this.name = name; } public Person(int age){ this.age = age; } public Person(String name, int age){ this.name = name; this.age = age; } } ``` 在上面的代码中,Person定义了4个构造函数,它们的参数列表分别是无参、字符串型、整型和字符串型加整型。通过构造函数重载,我们可以根据不同的参数来创建不同的Person对象。例如: ``` Person person1 = new Person(); // 使用无参构造函数创建对象 Person person2 = new Person("张三"); // 使用字符串型参数构造函数创建对象 Person person3 = new Person(18); // 使用整型参数构造函数创建对象 Person person4 = new Person("李四", 20); // 使用字符串型和整型参数构造函数创建对象 ``` 注意,如果我们没有定义任何构造函数,Java会默认提供一个无参构造函数。如果我们定义了任何一个构造函数,Java就不会再提供默认的无参构造函数了。因此,如果我们需要使用无参构造函数来创建对象,就需要显式地定义一个无参构造函数构造函数重载可以帮助我们提供多种创建对象的方式,使得代码更加灵活和可扩展。同时,构造函数重载也是面向对象编程中的一种重要概念,需要我们理解和掌握。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值