Solidity屬性和函式的許可權

2021-09-12 14:21:02 字數 3014 閱讀 8884

1.solidity實現乙個類(智慧型合約):

pragma solidity ^0.4.4;

/*pragma:版本宣告

solidity:開發語言

0.4.4:當前合約大版本,0.4代表主版本,.4代表修復bug的公升級版

^:代表向上相容,0.4.4~0.4.9可以對我們當前的**進行編譯

*///contract person 模擬 class person extends contract

contract person

function owner() constant returns (address)

//set方法,設定height方法

function setheigh(uint height)

//get方法 讀取 ,constant 代表方法唯讀

function heigh() constant returns (uint)

function setage(uint age)

function age() constant returns (uint)

function kill() }}

2.solidity合約中屬性和行為的訪問許可權:

pragma solidity ^0.4.4;

//返回值為0

//public internal private

contract person

}

uint pulic _money;
會生成乙個

function _money() constant returns (uint)
pragma solidity ^0.4.4;

//在這個**中 _money返回值為120,而不是0

屬性預設許可權為internal,只有public型別的屬性才可能供外部訪問,internal和private型別的屬性智慧型在合約內部使        用。

函式的許可權預設是public型別,public型別的函式可提供外部訪問,而internal和private型別的函式不能夠通過指標        進行訪問,哪怕是在內部通過this訪問都會報錯,在合約內部訪問,我們可以直接訪問函式就可以了

備註:不管是屬性還是方法,只有是public型別時,才可以通過合約位址進行訪問,合約內部的this就是當前合約的位址。在合約內部如果要訪問internal和private型別的屬性或者是函式,直接訪問即可,不要試圖通過this去訪問。

pragma solidity ^0.4.4;

//public internal private

contract person

function test1() constant public returns(uint)

function test2() constant internal returns(uint)

function test3() constant private returns(uint)

function testinternal() constant returns(uint)

function testinternal2() constant returns(uint)

function testinternal3() constant returns(uint)

function testinternal4() constant returns(uint)

}

Solidity建構函式和析構函式

建構函式 當方法名字和合約名字相同的時候,這個就是建構函式,建構函式在合約物件建立之後執行的 contract person 析構函式 selfdestruct selfdestruct msg.sender 析構函式 pragma solidity 0.4.13 首先第乙個是版本的申明 pragm...

函式屬性和方法

ecmscript的函式是物件,所以有屬性和方法。每個函式包含兩個屬性,length和prototype。function sayname name function sum num1,num2 function sayhi alert sayname.length 定義了乙個引數,所以為1 ale...

建構函式的屬性和方法

一 建構函式內定義的屬性 方法function fn name var a newfn 張三 var b newfn 李四 console.log a.name 張三 console.log b.name 李四可以看出 建構函式內定義的屬性 方法,對例項來說是不共享的,每乙個例項都有各自的乙份。互不...