C# 속성(property)과 생성자에 관한 질문이에요.
속성을 사용하는 이유가 클래스내 멤버변수의 정보은닉때문이라고 알고 있었는데,
그러면 생성자를 사용하는 이유와 같지 않나요. 굳이 속성을 사용하여야 할 필요가 있나요?
안녕하세요?
1. 생성자는 클래스의 인스턴스가 메모리에 할당될때 딱 한번만 실행됩니다.
이때, 생성자 매개변수로 멤버변수에 전달을 하면, 지적하신 대로 속성과 같은 효과가 발생합니다.
그중에서도 쓰기 속성에 대한 효과만 발생합니다. 멤버에 대한 접근은 오로지 한번만 가능하겠지요.
2. 반면, 속성은 클래스에 은닉된 멤버변수에 쓰기 뿐만 아니라 읽기에 대한 접근도 가능하게 합니다.
또한, 인스턴스가 해제되지 않았다면, 몇번이라도 속성을 통해 해당 멤버를 읽고, 쓸수 있습니다.
public class Gun
{
private int _maxFire;
public Gun(int count)
{
this._maxFire = count;
}
public int MaxFire
{
get { return _maxFire; } // 읽기
set { _maxFire = value; } // 쓰기
}
}
public class Form
{
private void Button1_Click(object sender, EventArgs e)
{
// 권총을 만들면서, 6번 발사가능 설정
Gun gun = new Gun(6);
// 마음이 바뀌어 3번으로 변경 (쓰기)
gun.MaxFire = 3;
// 현재 설정된 발사횟수 확인하고 싶음 (읽기)
messageBox.Show(gun.MaxFire);
// 메모리 해제
gun = null;
}
}
도움이 되시길 바랍니다.
감사합니다.
written by
legend
C과외/C#과외/VB과외 프로그래밍 과외.서울인천경기-방문강의.기타전국-화상강의.제대로 체계적으로 배우고싶은분들.15년경력 프리랜서.삼성/포스코/한진 등.
서울,인천,경기,분당,일산,과천,산본,부천,부평,평촌,안산,안양,광명,용인,시흥,성남,수원,평택,오산,화성,동탄,천안,아산,
c#프로그래밍1:1과외, 15년 이상 프로젝트 경력의 프리랜서 직접 강의,
c#프로그래밍 과외, c#프로그래밍교육, IT·컴퓨터·컴퓨터과외비·프로그래밍과외, c# 강좌, c# 프로그래밍,
데이터베이스, 데이터베이스 프로그래밍, db, DB, 과외비,컴퓨터1:1,컴퓨터개인지도,컴퓨터실무과외,컴퓨터과외,컴퓨터1:1과외,
서울,인천,경기,부천,안산,분당,일산,천안,과천,산본,안양,광명,평촌,수원,평택,오산,용인,부평,시흥,성남,화성,동탄
광주,부산,대구,대전,마산,창원,울산,전주,군산,원주,강릉,충청남도,충청북도,강원도,경상남도,경상북도,전라남도,전라북도,제주도