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。

posted @ 2019-02-28 10:16  cat_fish  阅读(562)  评论(0编辑  收藏  举报