类中的构造函数

原创 2015年07月08日 20:57:52

1、构造函数概念

构造函数就是构建创造对象时调用的函数,构造函数在创造对象时就调用,用于对该对象属性的初始化。所有的对象创建时,都需要进行初始化才可以使用。一个类中如果没有定义构造函数,那么该类中会有一个默认的空参数的构造函数,如果在类中定义了构造函数,类中默认的那个空参数的构造函数就不再存在了。

构造函数特点:

①构造函数名称和所在类名称相同

②构造函数不需要定义返回值类型

③构造函数没有具体的返回值

所有的对象都需要进行初始化才能够使用

class Person
{
	private String name;
	private int age;
	Person()
	{
		age = 12;
		name = "小强";
		System.out.println("Person() is running");
	}
	void speak()
	{
		System.out.println("name="+name+"\nage="+age);
	}
}
class PersonTest
{
	public static void main(String[] args)
	{
		Person p = new Person();
		p.speak();
	}
}

该程序运行结果是:

name=小强
age=12

2、构造函数和一般函数的区别

构造函数:对象创建时,就会调用与之对应的构造函数,对对象进行初始化。初始化动作只执行一次。
一般函数:对象创建后,需要函数功能时才调用。 可以多次进行调用。

3、构造函数的重载

一个类中可以有多个构造函数,他们是以重载的形式来体现的,即以参数列表的不同来区分的。

class Person
{
	private String name;
	private int age;
	Person()
	{
		name = "旺财";
		age = 10;
	}

	Person(String n)
	{
		name = n;
		age = 0;
	}

	Person(int a)
	{
		name = "babby";
		age = a;
	}

	void speak()
	{
		System.out.println("name="+name+"\nage="+age);
	}
}
class PersonDemo
{
	public static void main(String[] args)
	{
		Person p = new Person("小强");
		p.speak();
	}
}
输出结果:

name=小强
age=0
4、内存图解

创造对象时内存使用情况如下;


5、构造函数使用细节

①一般函数不能直接调用构造函数。

②构造函数如果前面加了void就变成了一般函数。

③构造函数中是有return语句的,return用于结束函数。

浅谈C++中的几种构造函数

3月中旬参加宣讲会,做了X软公司的C++笔试题,里面有一道“默认拷贝构造函数的题”,由于好久没复习C++基础知识,当时连基本的概念都想不来了了。于是乎,开始拿起以前看的谭浩强C++复习起来,现在书快要...
  • zxc024000
  • zxc024000
  • 2016年04月14日 17:56
  • 9123

python为类定义构造函数

用python进行OO编程时, 经常会用到类的构造函数来初始化一些变量。 class FileData:     def __init__(self, data, name, type):...
  • muzizongheng
  • muzizongheng
  • 2013年07月19日 09:06
  • 2148

C#中类中构造函数的执行序列

所有的类都至少包含一个构造函数。这些构造函数中可能有一个默认的构造函数,默认的构造函数没有参数,与类同名。其它带参数的构造函数称为非默认的构造函数。 在类的外部不能用私有的构造函数实例化对象,通过把...
  • gshgsh1228
  • gshgsh1228
  • 2016年03月12日 20:11
  • 1051

《解析C#类中的构造函数》

一.  C#中的构造函数概述: C#中类包含数据成员和函数成员。函数成员提供了操作类中数据的某些功能,包括方法、属性、构造器和终结器、运算符和索引器。 1.   构造函数设计的定义:   构造器...
  • pengze0902
  • pengze0902
  • 2015年11月03日 16:27
  • 843

C++中类的四种构造函数

构造函数又分为4大类: 1、无参数构造函数 2、有参数构造函数 3、赋值构造函数(copy构造函数) 4、默认构造函数 class test{public: test...
  • y780465649
  • y780465649
  • 2016年08月27日 16:42
  • 3186

C++中class类 的 构造函数、析构函数

说明: demo.cpp:main.cpp所在之处 Line.h:线段类的.h文件 Line.cpp:线段类的.cpp文件 Coordinate.h:坐标类的.h文件 Coordinate.cpp:坐...
  • shangguanyunlan
  • shangguanyunlan
  • 2016年10月16日 17:05
  • 1735

Python类里的__init__方法函数,Python类的构造函数

如果某类里没有__init__方法函数,通过类名字创建的实例对象为空,切没有初始化; 如果有此方法函数,通常作为类的第一个方法函数,有点像C++等语言里的构造函数。 ———————————————...
  • sun_wangdong
  • sun_wangdong
  • 2015年03月18日 23:11
  • 5439

C++中类的组合与构造函数

首先看看构造函数的概念。在程序执行过程中,当遇到对象声明语句时,程序会想操作系统申请一定的内存空间用于存放新建的对象。而编译器不知道如何产生代码来实现初始化。所以C++做了一套对象初始化的机制,就是构...
  • waiting_someone
  • waiting_someone
  • 2016年07月20日 15:29
  • 1021

cpp——类——构造函数

概述 为了类的使用方便,类的设计尽可能使类的使用方式与内置类型无区别,构造函数则是类模仿内置类型的初始化 内置类型初始化支持直接初始化,复制初始化,默认初始化,构造函数对应于内置类型的各种初始化: ...
  • mardax
  • mardax
  • 2017年02月13日 15:48
  • 419

C++类使用构造函数初始化类表和构造函数函数体中赋值的区别

参考:http://www.360doc.com/content/13/0607/19/1317564_291331713.shtml C++ Primer中在讲构造函数初始化列表的...
  • williamzhang1111
  • williamzhang1111
  • 2015年06月19日 10:30
  • 1179
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:类中的构造函数
举报原因:
原因补充:

(最多只允许输入30个字)