1 / 18
文档名称:

07构造函数和析构函数.ppt

格式:ppt   大小:251KB   页数:18页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

07构造函数和析构函数.ppt

上传人:xunlai783 2018/1/4 文件大小:251 KB

下载得到文件列表

07构造函数和析构函数.ppt

相关文档

文档介绍

文档介绍:第六章构造函数和析构函数
构造函数
析构函数
构造函数
虽然对象被创建时,对象的成员变量会被自动初始化。但有时候需要对成员变量进行动态的初始化。我们可以通过某一方法对成员变量进行初始化。
public class Person
{
private int age;
private int height;
public void initialize(int a;int h)
{ age=a;height=h;
}
}
//每创建一个对象,都需要显式调用初始化函数
Person p1=new Person();
(20,175);
有一种机制,使得在定义对象时能够自动对成员变量进行初始化,而无需显式地调用某个初始化函数。
这种机制就是构造函数。
怎样定义构造函数
构造函数的调用时间
构造函数的重载
静态构造函数
1 构造函数是一种特殊的方法,定义构造函数的方式与定义方法类似。
2 构造函数的名称与类的名称相同。
3 定义构造函数时不指定函数的返回值类型。
(1)怎样定义构造函数?
针对刚才的初始化问题,可通过构造函数解决
public class Person
{
private int age;
private int height;
public Person(int a,int h)
{ age=a;height=h;
}
}
Person p1=new Person(20,175);
在对象被创建时,系统将自动调用构造函数。
Person p1=new Person();
上述语句一旦执行,系统将按顺序进行下列操作:
(1)在堆中为对象分配内存
(2)按定义顺序对该对象所有成员变量进行自动初始化,如果成员变量定义时指定了初值,则按初值进行初始化。
(3)调用构造函数
(4)将引用变量p1指向堆中的对象
(2)构造函数的调用时间
设计电脑类(电脑包括主机和显示器)
栈内存
堆内存
p1
New Person(20,175)
产生的对象
5
10
0x3000
栈内存
p1
New Person(20,175)
产生的对象
20
175
age
height
age
height
public class Person
{
private int age=5;
private int height=10;
public Person(int a,int h)
{ age=a;height=h;
}
}
执行本程序后的内存变化过程
堆内存
Person p1=new Person(20,175);
构造函数可以重载,即在一个类里可以定义多个构造函数。
public class Person
{ private int age;
private int height;
public Person()
{ age=10;height=100; }
public Person(int a,int h)
{ age=a;height=h; }
}
Person p1=new Person();
Person p2=new Person(20,175);
(3)构造函数的重载
(4)静态构造函数
静态构造函数用于初始化类的静态成员,只被执行一次。
没有访问区分符。