• Solidity智能合约面向对象编程(一、类的创建)


    Solidity编写智能合约

     1 pragma solidity ^0.4.4;//版本声明 ^代表向上兼容 pragma代表版本声明  solidity 代表开发语言
     2 //定义类
     3 contract Person {
     4     //定义属性,属性名规范前面加_
     5     uint _height;
     6     uint _age;
     7     address _owner;//代表合约的拥有者
     8     //方法名与合约名相同时属于构造函数
     9     function Person(){
    10         _height = 180;
    11         _age = 29;
    12         _owner = msg.sender;
    13     }
    14     //set方法,去掉属性前面下划线,首字母大写,采用驼峰式
    15     function setHeight(uint height){
    16         _height = height;
    17     }
    18     //get方法,方法名不需要写get  constant代表方法只读,returns(uint)代表方法返回值类型
    19     function height() constant returns(uint){
    20         return _height;
    21     }
    22     
    23     function setAge(uint age){
    24         _age = age;
    25     }
    26     function age() constant returns(uint){
    27         return _age;
    28     }
    29     
    30     function owner() constant returns(address){
    31         return _owner;
    32     }
    33     
    34     //析构函数
    35     function kill() {
    36         if(_owner == msg.sender){
    37             selfdestruct(_owner);
    38         }
    39     }
    40     
    41     //0x692a70d2e424a56d2c6c27aa97d1a86395877b3a 当前合约地址
    42 }

     部署合约时,因为要往区块链写入数据,需要矿工进行验证,所以需要花费一些gas奖励给矿工,还有当我们每次调用increment方法时,也属于写入数据,同样需要花费gas,但是调用getCount方法时只是从区块链读取数据,无需验证,读取数据无须花费gas。

  • 相关阅读:
    MVC filter
    常见的页面中两个div自适应等高CSS控制
    字符串排序 获取字符串中最长的单词
    js中“==”与“===”区别
    数组中字符串按照长度大小排序
    jquery中ajax使用
    关于ajax
    父级div宽度100%,子级一个div宽度固定,另一个宽度自适应
    window.onload与$(document).ready()区别
    盒模型
  • 原文地址:https://www.cnblogs.com/cat-fish6/p/10448623.html
Copyright © 2020-2023  润新知