public
- 모든 곳에 접근 가능
externel
- public 처럼 모든 곳에서 접근 가능하나, externel이 정의된 자기 자신 contract 내에서 접근 불가.
private
- 오직 private이 정의된 자기 contract에서만 접근 가능.
- private이 정의된 contract를 상속 받은 자식도 불가능.
internal
- private 처럼 오직 internal이 정의된 자가 자기 contract에서만 사용 가능.
관련 실습
- 배포한 것은 스마트 contract 내가 아니라 밖이라 a2는 접근 불가능.
- public 만 접근 가능.
- public_example2에서 public_example을 사용하기 위해서는 instance를 사용해야 함.
[public_example deploy]
[public_example_2 deploy]
- changeA_2를 통해 a 값을 바꿀 수 있음.
- public을 private으로 바꾼다면 에러가 남.
- private화로 접근을 할 수 없기 때문에 change a not found or not visible 에러가 남.
- 해당 external이 정의된 스마트 contract에서 이 함수 값을 접근하는게 아니라 다른 스마트 contract 즉, 외부에서 정의된 contract을 접근하기 때문에 잘 작동함.
'솔리디티 및 블록체인' 카테고리의 다른 글
솔리디티 08. String (0) | 2024.05.14 |
---|---|
솔리디티 07. View와 Pure (0) | 2024.05.08 |
솔리디티 05. Function 1 - 정의 (0) | 2024.05.01 |
솔리디티 04. Ether/GWei/wei 그리고 Gas (0) | 2024.05.01 |
솔리디티 03. (0) | 2024.04.17 |