Solidity 基础知识之访问修饰符

pragma solidity ^0.4.24;

//属性,函数,访问修饰符
//属性的默认访问修饰符是 internal, 函数的默认访问符是 public
contract AttrFnDemo{

    uint16 private _age;//private 仅仅当前合约可以访问
    string internal _name;//internal 仅仅当前合约和当前合约的子合约可以访问
    int public _num;// 外部可以调用

    //函数名与合约名称相同,则此函数为构造函数
    function AttrFnDemo(uint16 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() returns(int){
        return _num;
    } 

    //没有指定访问修饰符,默认为 public
    function show() returns (uint, string, int){
        return (_age, _name, _num);
    }

    //多态性,重载
    //Solidity 普通函数支持多态性,但是构造函数不支持重载
    function show(int max) returns (uint, string, int){
        return (_age, _name, _num);
    }

}