构造函数,构造函数何时被调用

http://www.itjxue.com  2023-01-05 13:10  来源:未知  点击次数: 

构造函数与普通函数的区别

一.构造函数和普通函数的三个不同点

1、构造函数也是一个普通函数,创建方式与普通函数一样(构造函数习惯上首字母大写)。

2、构造函数和普通函数的主要区别在于:调用方式不一样。作用也不一样(构造函数用来新建实例对象)

3、调用方式不一样。

a. 普通函数的调用方式:

直接调用 child();

b.构造函数的调用方式:

需要使用new关键字来调用 new Child();

二.构造函数的函数名与类名相同:Child() 这个构造函数,Child 既是函数名,也是这个对象的类名。(这一点和java的构造方法类似)

三.内部用this 来构造属性和方法

四.构造函数的执行流程

五.普通函数例子:

因为没有返回值,所以为undefined

六.构造函数:构造函数会马上创建一个新对象,并将该新对象作为返回值返回。(下面的案例没有成员属性,对象的属性都没有的情况)

七.使用instanceof 可以检查一个对象是否是一个类的实例,如是则返回true;

所有对象都是Object对象的后代,

所以任何对象和Object做instanceof都会返回true

构造函数

function 函数名 () {

this.属性名 = "";

this.方法名 = function (){

函数体;

}

}

var p = new 函数名 ();

p.方法名();//可调用此方法;

//注意:在构造函数里所有的属性和方法皆用this.来书写

构造函数必须通过new关键字来创建,如:

var p = new 函数名("值一","值二","值三")

注意:括号中的值可以是常量,也可以是变量

构造函数与普通函数之间就调用的方式不同

构造函数通过new关键字来调用,普通函数则可以直接调用

普通函数是遵循小驼峰命名法,即第一个单词首字母小写,其余单词首字母大写;

构造函数则是所有单词首字母都为大写

1) 首先要创建一个对象,对象类型就是这个构造函数的名字

2) 最后会把创建好的这个对象自动返回

3) 注意:var p = new 函数名(); 此时的p就已经是一个对象了

4) 调用通过构造函数创建好的对象中的某个属性,格式为: p.属性名; 或 p.方法名();

1) 在构造函数中,this指代的就是创建的这个对象

这也是为什么在构造函数中要使用this.属性名来书写了

2) 在对象中,属性和方法的书写格式为: 属性名 : "值"; 或 方法名 : function (){}; //属性与属性或方法与方法之间

都以,隔开

在构造函数中,书写格式为: this.属性名 = "值"; 或 this.方法名 = function (){}; //每个属性之间以;隔开

什么叫构造函数

构造函数 - 简介

构造函数 是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值

总与new运算符一起使用在创建对象的语句中 特别的一个类可以有多个构造函数 可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载

构造函数 - 构造函数与其他方法的区别

1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名相同.

2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.

3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.

4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点

5当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。

构造函数 - C++中的构造函数

C++的构造函数定义格式为: 构造函数

class

{

public:

(参数表)

//...(还可以声明其它成员函数)

};

::(参数表)

{

//函数体

}

如以下定义是合法的:

class T

{

public:

T(int a=0){i=a;}//构造函数允许直接写在类定义内,也允许有参数表。

private:int i;

};

当程序中没有析构函数时,系统会自动生成以下构造函数:

::(){},即不执行任何操作。

构造函数 - C++例子

//注意若将本代码直接复制进编译器,可能会报错,原因是网页生成时会在代码前加一个中文占位符

//最好将代码再写一次

#include

using namespace std;

class time

{

public:

time() //constructor.构造函数

{

hour=0;

minute=0;

sec=0;

}

void set_time();

void show_time();

private:

int hour;

int minute;

int sec;

};

int main()

{

class time t1;

t1.show_time();

t1.set_time();

t1.show_time();

return 0;

}

void time::set_time()

{

cin hour;

cin minute;

cin sec;

}

void time::show_time()

{ cout}

程序运行情况:

0:0:0

10 11 11 回车

10:11:11

任何时候,只要创建类或结构,就会调用它的构造函数。类或结构可能有多个接受不同参数的构造函数。构造函数使得程序员可设置默认值、限制实例化以及编写灵活且便于阅读的代码。

JAVA示例代码:

public class UserManagerImpl implements UserManager {

private UserDao userDao;

public UserManagerImpl(UserDao userDao){

this.userDao=userDao;

}

public void save(String username,String password){

this.userDao.save(username, password);

}

}

PHP中的构造函数

构造函数的声明与其它操作的声明一样,只是其名称必须是两个下划线__construct( )。这是PHP5中的变化;PHP4的版本中,构造函数的名称必须与类名相同。为了向下兼容,如果一个类中没有名为__construct( )的方法,PHP将搜索一个与类名相同的方法。

格式:function __construct ( [参数] ) { ... ... }

例子:

class person{

public $name;

public $age;

function _ _construct(){ // 构造函数

$this-name="lisi";

$this-age=28;

}

function say(){

echo "my name is ".$this-name."

";

echo "my age is ".$this-age."

";

}

}

$per=new person();

$per-say();

$per-name="zhangsan";

$per-age=26;

$per-say();

?

C#例子

构造函数是在创建给定类型的对象时执行的类方法。构造函数具有与类相同的名称,它通常初始化新对象的数据成员。

在下面的示例中,使用一个简单的构造函数定义了名为 Taxi 的类。然后使用 new 运算符来实例化该类。在为新对象分配内存之后,new 运算符立即调用 Taxi 构造函数。

public class Taxi{ public bool isInitialized; public Taxi() { isInitialized = true; }}class TestTaxi{ static void Main() { Taxi t = new Taxi(); System.Console.WriteLine(t.isInitialized); }}

构造函数作用是什么

构造函数的作用是在创建对象时进行初始化工作,最常见的就是对成员变量赋值。构造函数是一种特殊的成员函数,它的名字和类名相同,没有返回值,不需要用户调用,而是在创建对象时自动执行。

构造函数的作用就是用来实例化的,打个比方:就是将画在图纸上的高楼模型变成真实的建筑。在这个例子中this指的就是point。它用来区分是point的x还是传进来的x(也就是括号里的x)。

拓展资料:

构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。

简述构造函数和析构函数的作用

构造函数只是起初始化值的作用,但实例化一个对象的时候,可以通过实例去传递参数,从主函数传递到其他的函数里面,这样就使其他的函数里面有值了。

析构函数与构造函数的作用相反,用于撤销对象的一些特殊任务处理,可以是释放对象分配的内存空间。

把类的声明放在main函数之前,它的作用域是全局的。这样做可以使main函数更简练一些。在main函数中定义了两个对象并且给出了初值,然后输出两个学生的数据。

当主函数结束时调用析构函数,输出stud has been destructe!。值得注意的是,真正实用的析构函数一般是不含有输出信息的。

扩展资料:

当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的。而一般的方法不存在这一特点。

构造函数有回滚的效果,构造函数抛出异常时,构造的是一个不完整对象,会回滚,将此不完整对象的成员释放(c++)。

当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。

什么是构造函数

简单地说构造函数是类函数,函数名与类名完全相同,无返回值

构造函数属于类的成员函数,除了具有一般成员函数的特点外,还具有自己的特点:

(1)是类的一个特殊的成员函数,函数名与类名相同;

(2)访问属性应该是public;

(3)功能是初始化对象,在构造函数中一般不作初始化以外的事情;

(4)可以在类内定义,也可在类外定义;

(5)无函数返回类型,注意:什么也不写,也不可写为void;

(6)程序运行时,当对象被创建后,该对象所属的类的构造函数自动被调用,在该对象生存期中也只调用这一次;

(7)可以重载

(责任编辑:IT教学网)

更多

推荐思科认证文章