Solidity:构造函数Constructor

Solidity构造函数Constructor

注:学习笔记,仅供参考,如有错误,烦请指正

1. 什么是构造函数?

类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。 构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回void。 构造函数可用于为某些成员变量设置初始值。

维基百科解释

在基于类、面向对象的编程中,构造函数(缩写:ctor)是一种特殊类型的子例程,调用它来创建对象。它准备新对象以供使用,通常接受构造函数用来设置所需成员变量的参数。

构造函数类似于实例方法,但它与方法的不同之处在于它没有显式的返回类型,它不是隐式继承的,而且它通常对范围修饰符有不同的规则。构造函数通常与声明类同名。他们的任务是初始化对象的数据成员并建立类的不变量,如果不变量无效则失败。正确编写的构造函数使生成的对象处于有效状态。不可变对象必须在构造函数中初始化。

大多数语言允许重载构造函数,因为一个类可以有多个构造函数,具有不同的参数。一些语言会考虑一些特殊类型的构造函数。构造函数,具体使用单个类来创建对象并返回该类的新实例,由工厂抽象,工厂也创建对象,但可以使用多个类或不同的分配方案(例如对象池)以各种方式进行。

2. 为什么需要构造函数?

因为一般的创建对象的方式一次只能创建一个对象, 里面很多的属性和方法是大量相同的 我们只能复制

因此我们可以利用函数的方法 重复这些相同的代码 我们就把这个函数称为 构造函数
构造函数︰是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与new运算符一起使用。
我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。

构造函数 和 实例对象的区别

构造函数,如Stars(),抽象了对象的公共部分,封装到了函数里面,它泛指某一大类

创建对象,如new Stars(),特指某一个,通过new关键字创建对象的过程我们也称为对象实例化

原文地址:https://www.cnblogs.com/wqddmghsdfh/p/16106562.html

3. 如何使用构造函数?

构造函数的语法格式

function 构造函数名() {
    
    
      this.属性 =;
      this.方法 = function() {
    
    }        
}

new 构造函数名 ();

Solidity中的构造函数实例

构造函数(constructor)是一种特殊的函数,每个合约可以定义一个,并在部署合约的时候自动运行一次。它可以用来初始化合约的一些参数,例如初始化合约的owner地址:

   address owner; // 定义owner变量

   // 构造函数
   constructor() {
    
    
      owner = msg.sender; // 在部署合约的时候,将owner设置为部署者的地址
   }

Solidity中实现ETH支付(使用构造函数constructor)

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;

contract Payable{
    
    
    address payable public owner;

    constructor() {
    
    
        owner = payable(msg.sender);
    }
    
    function deposit() external payable {
    
    }

    function getBalance() external view returns (uint)  {
    
    
        return address(this).balance;
    }

}

猜你喜欢

转载自blog.csdn.net/runrundream/article/details/126686210
今日推荐