构造函数:当方法名字和合约名字相同的时候,这个就是构造函数,构造函数在合约对象创建之后执行的

contract  Person{
function Peron(){//构造函数Person
...
}
}

析构函数:selfdestruct

selfdestruct(msg.sender)//析构函数
pragma  solidity  ^0.4.;//首先第一个是版本的申明
/*
pragma;版本申明
solidity:开发语言
0.4.13:当前合约的版本,0。4代表的是主版本,.13代表的修复bug的升级版
^代表的是向上兼容的意思,0.4.13`0.4.9可以对我们当前的代码进行编译
*/ //contrace person类似 class person extends contract
contract Person {
uint _height;//属性名加下划线,代表的是一种规范,编译代码的时候的一种规范
uint _age;//年龄,无符号整形 //当方法名和合约名相同时就属于构造函数,在创建对象的时候,构造函数会最先被调用
function Person() {
_height=;
_age=;
address _owner;//合约的拥有者
} //标准的形式来写,驼峰的形式来写setHight
function setHight(uint height) {
_height=height;
_owner=msg.sender;
}
//度去_height,如果后面不加上constant的话,那么要调用call方法才可以,如果加上了call方法的话,那么就不需要加上call方法就可以取出来
function gteHeight() constant returns (uint) {//返回的是什么类型,后面不用加什么东西
return _height;//return,_height加不加上括号都可以
} function kill() {//如果后面加上constant的时候,刚创建就会把他销毁掉了
if (_owner==msg.sender){
//析构函数
selfdestruct(msg.sender);//msg代表的是全局,selfsdestruct这个是析构函数
}
} function owner() constant returns (address) {//返回的是地址的类型
return _owner; }
} //每一个合约都有一个地址
//在执行这个合约对象的时候,会先去创建判断这些带constant的方法

Solidity在线编辑工具:https://remix.ethereum.org/

从这里可以看到这个合约的详细信息:

合约地址:当合约内容相同的饿时候,那么这个合约地址也是相同的,0x692a70d2e424a56d2c6c27aa97d1a86395877b3a

cost:创建这个合约所消耗的gas,不管创建合约对象或者是执行合约里面的方法的时候都会消耗gas值

ABI:可以去https://www.bejson.com/转化为JOSN的格式

Solidity构造函数和析构函数的更多相关文章

  1. .NET 基础 一步步 一幕幕[面向对象之构造函数、析构函数]

    构造函数.析构函数 构造函数: 语法: //无参的构造函数 [访问修饰符] 函数名() :函数名必须与类名相同. //有参的构造函数 [访问修饰符] 函数名(参数列表):函数名必须与类名相同. 作用: ...

  2. 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成员)

    [源码下载] 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成 ...

  3. C++构造函数、析构函数与抛出异常

    [本文链接] http://www.cnblogs.com/hellogiser/p/constructor-destructor-exceptions.html [问题] 构造函数可以抛出异常么?析 ...

  4. python中的构造函数和析构函数

    python中的特殊方法,其中两个,构造函数和析构函数的作用: 比说“__init__”这个构造函数,具有初始化的作用,也就是当该类被实例化的时候就会执行该函数.那么我们就可以把要先初始化的属性放到这 ...

  5. 内存的分配VS回收&构造函数VS析构函数

    之前有一个问题一直困扰着我,就是一个变量出了作用域,我以为这个变量的内存就被回收了,其实不是这样的,昨天问了一个高手,才豁然开朗,自己在看相关代码的反汇编代码,才知道原来真是这样就.这个问题,我想简单 ...

  6. C++C++中构造函数与析构函数的调用顺序

    http://blog.csdn.net/xw13106209/article/details/6899370 1.参考文献 参考1: C++继承中构造函数.析构函数调用顺序及虚函数的动态绑定 参考2 ...

  7. php 的 构造函数 和 析构函数

    构造函数 在C++ java里的应用及其普遍,今天好好研究了一下 php 的 构造函数 和 析构函数 构造函数 和 析构函数 构造函数 void __construct ([ mixed $args ...

  8. C++-理解构造函数、析构函数执行顺序

    先初始化序列中的函数调用,如果基类构造函数为非引用传递,则引起参数的拷贝构造 再: 先类内的成员构造函数(拷贝/默认),再类的构造函数:先基类,再派生类: 本文主要说明对象创建时构造函数的执行顺序,对 ...

  9. C++学习之类的构造函数、析构函数

    在C++的类中,都会有一个或多个构造函数.一个析构函数.一个赋值运算操作符.即使我们自己定义的类中,没有显示定义它们,编译器也会声明一个默认构造函数.一个析构函数和一个赋值运算操作符.例如: //声明 ...

随机推荐

  1. 轻量级ORM框架 Bankinate

    [前言] 前面讲过ORM的前世今生,对ORM框架不了解的朋友可以参考博文:https://www.cnblogs.com/7tiny/p/9551754.html 今天,我们主要通过设计一款轻量级的O ...

  2. Golang 入门 : 字符串

    在 Golang 中,字符串是一种基本类型,这一点和 C 语言不同.C 语言没有原生的字符串类型,而是使用字符数组来表示字符串,并以字符指针来传递字符串.Golang 中的字符串是一个不可改变的 UT ...

  3. input 各种限制

    test 1.限制只能输入或黏贴11位长度的数字 <input onkeyup="this.value=this.value.replace(/\D/g,'')" onaft ...

  4. cookie跨域共享

    domain和path属性,domain就是当前域,默认为请求的地址,如网址为www.jb51.net/test/test.aspx,那么domain默认为www.jb51.net,path默认就是当 ...

  5. linux测速工具 speedtest-cli

    安装speedtest-cli: wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/ ...

  6. Git初始化-添加提交以及查看状态

    本地库初始化 使用 git bash 打开 git 命令行窗口.这个命令行窗口兼容 Linux 命令. 命令:mkdir 当前文件下新建文件夹. 命令:git init 初始化空的本地库,.git文件 ...

  7. Oracle的表被锁后的恢复

    运行下列SQL,找出数据库的serial#,执行结果如下图所示 SELECT T2.USERNAME, T2.SID, T2.SERIAL#, T2.LOGON_TIME   FROM V$LOCKE ...

  8. EntityFramework Core笔记:表结构及数据基本操作(2)

    1. 表结构操作 1.1 表名 Data Annotations: using System.ComponentModel.DataAnnotations.Schema; [Table("R ...

  9. Python——控件事件

    鼠标 键盘 窗口 按钮

  10. 获取data-*属性值

    下面就详细介绍四种方法获取data-*属性的值 <li id=">获取id</li> 需要获取的就是data-id 和 dtat-vice-id的值 一:getAtt ...