Solidity(3)

277 阅读1分钟

属性、函数、访问修饰符

选择最新的版本,不好用,难道需要翻墙

pragma solidity ^0.4.24;

contract AttrFnDemo{
    
    // 属性的默认访问修饰符:internal,但是函数默认访问修饰符public
    
    uint private _age;   // private 仅仅当前合约可以访问
    
    string internal _name;  // 当前合约和子合约可以访问
    
    int public _num;   // 外部可以直接调用
    
    // 函数名与合约名相同,则此函数为构造函数
    constructor (uint age,string name,int num){
          // this 代表当前合约(地址),但是不能直接和属性名称使用
          _age = age;
          _name = name;
          _num = num;
    }
    // 构造函数在智能合约中不支持多态(重载)
    
    
    function age() private returns (uint){
        return _age;
    }
    
    function name() internal returns (string){
        return _name;
    }
    
    function num() public returns (int){
        return _num;
    }
    // // 没有指定访问修饰符,默认为public
    function show() returns (uint,string,int){
        return (_age,name(),_num);
    }
    //solidity 默认普通的函数是支持多台性(重载)
    // function show(int x) returns (uint,string,int){
    //     return (_age,name(),_num);
    // }
    
    
}