pragma solidity ^0.4.0;contract Test{/* 属性的访问权限priveta public internaldefualt internalinterlnal,private cannot be accessed from outside*/uint8 internal _money;uint8 _age;uint8 private _height;uint8 public _sex;/*uint8 public _sex == function _sex() returns(uint8) 当属性类型为public时,会生成一个和属性名相同并且返回值就是当前属性的get函数function _sex()函数会覆盖掉public类型的属性自动生成的get函数;_sex()返回的是1,而不是0*/function _sex() returns(uint8){//return _sex;//this._age; return this.age();TypeError: Member "age" not found or not visible after argument-dependent lookup in contract Testthis._sex();return 1;}/*方法的访问权限//public private internal external//defualt public//internal private cannot be accessed from outside*/function sex() returns(uint8){return 1;}function age() internal returns(uint8){return 18;}function height() public returns(uint8){return 175;}function money() private returns(uint){return 3500;}function year() external returns(uint){return 2018;}function testInternal() returns(uint){//return this.sex();//return this.year(); this(指针) 通过合约地址进行访问 return money();//return this.age();TypeError: Member "age" not found or not visible after argument-dependent lookup in contract Person//
    }
}

无论是属性还是方法,只有是public/external类型时,才可以通过合约地址进行访问,合约内部的this就是当前合约地址。在合约内部如果要访问internal,private类型的属性或者是函数,直接访问即可,不要试图通过this去访问

//本合约内部调用
//this.external调用
function test() public{getC(); //interlthis.getD();//externalgetE();//privatethis.kill();//publickill();//public
}//未使用继承,外部调用
//只能调用external/public
contract mytract{function getA() public {**getC(); //interlthis.getD();//external**getE();//privatethis.kill();//public**kill();//public}}//使用继承,外部调用
//无法调用私有变量
contract mytract is Funder{function getA() public {getC(); //interlthis.getD();//external**getE();//privatethis.kill();//publickill();//public}
}

转载于:https://www.cnblogs.com/eilinge/p/9951268.html

ethereum(以太坊)(二)--合约中属性和行为的访问权限相关推荐

  1. 以太坊智能合约中随机数预测

    一.前言 作为首次币发行(ICO)的平台,以太坊已经获得了极大的普及. 但是,它不仅仅用于 ERC20 通证,轮盘,彩票和纸牌游戏都可以使用以太坊区块链实现. 与任何区块链实施一样,以太坊是不可逆的, ...

  2. 以太坊智能合约中 pragma solidity^0.6.10 是什么意思

    pragma就是Solidity的编译控制指令,控制智能合约编译器的版本, ^0.6.10代表的含义是可以使用0.6.x的版本对该代码进行编译,也就是说0.5.x或0.7.x的编译器版本不允许编译该智 ...

  3. 以太坊智能合约生命周期(Ethereum smart contracts lifecycle)

    合约对象初始化 上一节中我们提到Solidity编写合约和面向对象编程语言非常相似,我们可以通过构造函数(constructor)来初始化合约对象.构造函数就是方法名和合约名字相同的函数,创建合约时会 ...

  4. 以太坊智能合约开发-《精通以太坊智能合约开发》学习总结实践

    文章目录 一.初探以太访智能合约 1. remix小demo 2. 写智能合约用的编程语言 二.以太坊核心概念 1. 交易/事务( Transaction ) 2. 区块 3. 共识协议:工作量证明( ...

  5. 区块链兼容以太坊智能合约

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 引言 随着区块链技术以及应用的普及,越来越多的区块链出现在大众视野中.由于区块链技术的开源特性,任何公司和个人都可以方便 ...

  6. 以太坊智能合约开发 | 一个资深技术专家的心路历程

    原创: 杨镇 一块链习社区 微信号yikuailianxishequ 本文作者杨镇, 以太坊黄皮书中译者,资深以太坊专家.曾独立中译了以太坊 Homestead 官方文档,Solidity 官方文档中 ...

  7. 以太坊智能合约Demo

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战demo示例快速入门,用demo例 ...

  8. 以太坊智能合约安全 Dasp Top10

    译者:爱上平顶⼭ 来源:慢雾区 原文链接:https://www.dasp.co/ 这是分布式应⽤安全项⽬(或DASP)2018 年排名前10的漏洞第⼀次迭代 该项⽬是NCC集团的⼀项举措.这是⼀个开 ...

  9. 以太坊智能合约安全入门了解一下(下)

    作者:RickGray 作者博客:http://rickgray.me/2018/05/26/ethereum-smart-contracts-vulnerabilities-review-part2 ...

  10. 以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明

    以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明 为了让你的Ðapp运行上以太坊,一种选择是使用web3.js library提供的web3.对象.底层实 ...

最新文章

  1. [转]OpenStack的网络模式
  2. StoryBoard概览
  3. 如何利用云服务器挖矿_企业如何选择云服务器
  4. MySQL系列(一) MySQL体系结构概述
  5. java日期大小比较
  6. 安装php 端口被占用,安装phpstudy,APMServ启动服务提示80端口被占用
  7. 清华发布全国城市AI实力榜,你那里排名第几?
  8. 社区发现(三)--CMP
  9. 【Android Studio安装部署系列】三十一、从Android studio3.0.0升级到Android studio3.0.1
  10. C#编写的一个SFTP工具类
  11. VBA操作WORD(二):替换字符(含空格、全角字符、换行符等)
  12. 利用SPI驱动12864液晶
  13. Protel 2004 的PCB中整体修改元件的技巧
  14. 用Mapviz显示卫星地图轨迹
  15. Beyond Compare 中文乱码解决
  16. 基于Casbin实现ABAC
  17. msys2 mysql_MSYS2配置总结
  18. 机电工程常用工程设备
  19. 超高速滑环的特点及应用领域
  20. 百度定位后,微信小程序位置不准,怎么办 腾讯/百度地图经纬度相互转换

热门文章

  1. 拓端tecdat|R语言Gibbs抽样的贝叶斯简单线性回归仿真分析
  2. c++_String一些使用记录
  3. AndroidStudio使用XmlPullParser解析xml文件
  4. spring5.0学习笔记2
  5. php显示jquery未定义,运行PHP脚本时,jQuery函数表示未定义
  6. 感知器算法超详细讲解实战【原理+手撸代码实现】+spark应用实践
  7. Python实现四种方法求解计算阶乘和(1!+2!+3!+...+n!)
  8. bind 跟服务器修改,Linux下使用Bind搭建域名服务器
  9. c语言 时间函数,C/C+时间相关的函数
  10. 区块链 Scilla是什么