솔리디티 깨부수기 - 기본
솔리디티 강좌 9강 instance2 - constructor
D_One
2021. 9. 4. 15:13
안녕하세요 오늘은 생성자 constructor를 설명하려 합니다.
생성자는, 스마트컨트랙이 생성 또는 배포, 그리고 인스턴스화 될때 초기값을 설정해주는 용도로 사용됩니다.
예시를 들자면,
// SPDX-License-Identifier:GPL-30
pragma solidity >= 0.7.0 < 0.9.0;
contract A{
string public name;
uint256 public age;
constructor(string memory _name, uint256 _age){
name = _name;
age = _age;
}
}
contract B{
A instance = new A("Alice", 52);
}
현재 저희는 A 컨트랙에 constructor 가 있음을 알 수가 있습니다.
생성자를 통해서 파라메터를 받아, name 과 age에 값을 넣어주고 있습니다.
그리고 B에 보니까, A를 인스터스화 하는데 괄호안에 "Alice" ,52 가 있는게 눈에 띄죠.
즉 이것은 A를 인스터스화 하기 위해서(생성하기 위해서), 필요한 초기 값인 것입니다.
좀더 나아가서,
// SPDX-License-Identifier:GPL-30
pragma solidity >= 0.7.0 < 0.9.0;
contract A{
string public name;
uint256 public age;
constructor(string memory _name, uint256 _age){
name = _name;
age = _age;
}
function change(string memory _name, uint256 _age) public {
name = _name;
age = _age;
}
}
contract B{
A instance = new A("Alice", 52);
function change(string memory _name, uint256 _age) public {
instance.change(_name,_age);
}
function get() public view returns(string memory, uint256) {
return (instance.name(), instance.age());
}
}