C# Prog.
이번에는 접근자와 변경자에 대해서 알아볼까 합니다. 다른 말로 하자면, getter와 setter 입니다.
이것들을 통해서 클래스의 프로퍼티(속성)에 대해 접근을 하고 변경을 할 수 있는데요.
C#에서 제공하는 이들은 자바보다 굉장히 간결하면서 편리합니다. 하지만, 어떻게 보면 난잡하다는 생각도 들더군요.
그건 취향나름*^^*
우선 기본적으로 프로퍼티에 대해서 접근자와 변경자를 등록하는 방법은 다음과 같습니다.
접근자 데이터타입 속성접근명{
get{ return 속성명; }
set{ 속성명= value;}
}
잘보시면, getter와 setter를 하나로 통합해서 관리하는 것을 볼 수 있는데요. 굉장히 깔끔합니다.
그리고 속성접근명-제가 임의로 붙였습니다.-은 임의로 지정할 수 있구요. setter 에 보면 value 라는 키워드가 있는데, 이는 암묵적 매개변수로서, 사용방법은 조금 후에 알아볼까 합니다.
그렇다면, 한번 사용해 봅시다.
namespace TEST
{
class Test
{
static void Main(string[] args)
{
User user1 = new User();
user1.Age = 12;
user1.Name = "정몽희";
Console.WriteLine("{0}의 이름은 {1}이고 나이는 {2}입니다.", "user1", user1.Age, user1.Name);
}
}
class User
{
private string name;
private int age;
public string Name
{
get { return name; }
set { name = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
}
}
클래스 User를 만들고 각 프로퍼티에 접근자와 변경자를 만들어 줬습니다.
Main 메소드가 있는 엔트리 포인트를 보시면, Age와 Name 이라는 속성(?)에 값을 넣는 것을 볼 수 있는데요?
이때, 메소드를 이용하는 것이 아닌 대입연산자를 통해서 간단히 넣는 것을 볼 수 있습니다.
user1.Name = "정몽희";
위를 보시면, setter의 value 키워드에 "정몽희"라는 값이 들어가서 우리가 원하는 프로퍼티에 값을 넣어주는 것을 짐작해볼수 있겠습니다. getter도 우리가 만들어 놓았던. 접근명을 통해 간단히 값을 얻어오구요.
자바와 비교해 볼 때, 굉장히 편리하고 깔끔한 방식이긴 하지만, 물론 코드도 더 줄어들었구요. 더 간단한 방법이 있습니다. 이는 자동 구현 프로퍼티라고 getter와 setter의 바디(구현부)를 생략하는 것입니다.
속성도!! 생략 합니다!!
{
public string Name{ get; set; }
public int Age{ get; set; }
}
이런식으로 만들 수 있습니다. 그래도 결과를 확인해봐야겟죠?
제대로 되는군요. 굉장히 편리한 방법입니다. 이렇게 만들면, 컴파일러가 내부적으로 알아서 코드를 만들어준다고 해요.
다들 유용하게 씁시다.
'프로그래밍 > C#' 카테고리의 다른 글
[C#] 문자열을 숫자로 바꿔봅시다! (2) | 2013.07.23 |
---|---|
[C#] 아주 유용한 매개변수의 특징에 대해서 알아봅시다. (0) | 2013.07.23 |
[C#] ref, out 을 통한 Call by Reference 구현해보기 (3) | 2013.07.23 |
[C#] 알아서 타입을 지정해주는 var 타입을 사용해보자. (0) | 2013.07.17 |
[C#] 원시타입(primitive)에 Nullable 을 사용해보자 (0) | 2013.07.17 |