728x90
external
1. 외부 컨트랙만 호출 가능.
2. 상태 변수는 external 사용불가.
pragma solidity ^0.4.23;
contract Mycontract{
uint external count; //상태변수. 이것도 에러남.
constructor() public {
//...
}
function numOfStudent(address_teacher) public view return(uint) {
test(); //에러남. 밑의 external붙은 함수를 같은 컨트랙내부에 있는 함수에서 호출했기 때문.
}
function test() external {
//...
}
}
contract YourContract {
MyContract myContract;
function callTest() public {
myContract.test(); //이건 오류 없다! 외부컨트랙에서만 호출이 가능하기 때문에.
}
}
internal
1. 컨트랙 내부 호출 가능
2. 상속받은 컨트랙도 호출 가능
3. 상태변수는 디폴트로 internal 선언
pragma solidity ^0.4.23;
contract Mycontract{
uint count; //상태변수 internal선언 되어있음.
constructor() public { //생성자
//...
}
function numOfStudent(address_teacher) public view return(uint) {
test(); //오류 없음. 내부함수 호출 가능
}
function test() internal {
//...
}
}
contract YourContract is MyContract {
function callTest() public {
test(); //오류 없음. 상속받은 컨트랙에서도 호출 가능
}
}
public
1. 컨트랙 내부 호출 가능
2. 상속받은 컨트랙도 호출 가능
3. 외부 컨트랙도 호출 가능
pragma solidity ^0.4.23;
contract Mycontract{
uint public count; //상태변수
constructor() public { //생성자
//...
}
function numOfStudent(address_teacher) public view return(uint) {
test(); // 오류없음
}
function test() public { //public안붙여도 디폴트지만, 안붙이면 오류메세지 뜬다..
//...
}
}
contract YourContract is MyContract {
function callTest() public {
test(); //오류없음
}
}
contract HisContract {
MyContract myContract;
function callTest() public {
myContract.test(); //오류없음
}
}
private
1. 컨트랙 내부만 호출가능
pragma solidity ^0.4.23;
contract Mycontract{
uint public count; //상태변수.
constructor() public {
//...
}
function numOfStudent(address_teacher) public view returns(uint) {
test(); //오류없음.
}
function test() private {
//...
}
}
contract YourContract is MyContract { //상속받은 곳 호출 에러
function callTest() public {
test();
}
}
contract HisContract {
MyContract myContract;
function callTest() public {
myContract.test(); //여기도 에러
}
}
728x90
반응형
'study > BlockChain' 카테고리의 다른 글
값 타입 (2) | 2019.10.05 |
---|---|
함수 타입 제어자 (2) | 2019.10.05 |
컨트랙의 구조 (3) | 2019.10.05 |
nodestart.cmd /DAG파일 생성 (0) | 2019.10.05 |
genesis block (4) | 2019.10.05 |