시작은 0부터
24. 프로퍼티(Property), 파라미터(Parameter), 아규먼트(Argument) 본문
클래스를 다중으로 쓰다보면 클래스 내부 변수들을 선언할 때 그 변수의 범용성에 따라 접근제한자를 고민하여 사용한다.
클래스 외부에서 해당 변수를 참조하거나 값을 넣기 위해서는 해당 변수에 대한 접근권한이 있어야하고, 이를 위해 클래스 내부 변수의 접근제한자를 public으로 하여 외부에서 접근이 가능하도록 할 경우, 상황에 따라 접근을 원치 않을 때에도 의도치 않게 접근이 되어버리는 문제가 발생할 수 있다. 이러한 문제를 방지하기 위해, 변수의 접근성을 설정하는 기능이 '프로퍼티'다.
프로퍼티(Property)
: 변수에 접근하는 두 가지 경우, 외부에서 읽어들일 수 있는 '읽기(Get)'와 외부에서 값을 써넣을 수 있는 '쓰기(Set)'를 제어하는 기능이다.
public int a { get; set; }
위의 코드는 아래 코드와 같다.
public int a
{
get
{
return a;
}
set
{
a = value; //value 는 키워드이다.
}
}
클래스 외부에서 해당 변수 a 를 참조하는 경우에는 a 값을 반환하고, 값을 대입하는 경우에는 변수 a에 대입한 값을 넣는다.
get, set, value는 모두 키워드다. 정수 데이터형을 int 로 쓰듯이 C# 에 자체적으로 내장되어있는 기능들이다.
파라미터(Parameter)
: 함수에 전달되는 값을 받는 데 쓰이는 매개변수.
void Func(int a)
{
int b = a;
}
위 함수에서 전달되는 값을 받는데 사용된 int a 가 매개변수(파라미터)이다.
아규먼트(Argument)
: 함수에 실제로 전달되는 값. 인자라고도 불린다. 함수에 전달된 값인 10이 인자(아규먼트)다.
void Func(10)
{
}
함수에 전달된 값이라는 개념은 알겠는데 그래서 저 값을 어떻게 쓴다는 건지는 감이 안온다.. 변수가 1이라는 값을 참조하는 변수 a를 가져오면 a가 파라미터고 1이 아규먼트인건가..?
지금까지 이해한 대로라면 아규먼트가 함수에 전달되는 값이고, 그 값을 받기 위해 사용되는 변수(매개변수)가 파라미터 인 것 같다.
'C# 학습일지' 카테고리의 다른 글
C# 변수, 함수 (0) | 2022.10.11 |
---|---|
25. 콘솔RPG 100% - 생성자와 스태틱(Static) (0) | 2022.08.05 |
23. 구조체(Struct)와 클래스(Class) (0) | 2022.08.03 |
22. 달팽이형식 2차 도전 ( 코드 간편화 ) (0) | 2022.07.29 |
21. 레이싱게임 - 2차원 배열로 장애물 낙하 구현 (0) | 2022.07.28 |