속성(Property)

2021. 6. 17. 22:33
728x90

우선, 속성으로 들어가기 전에 짚고 넘어갈 것이 있다.

Java는 getter, setter를 사용한 DTO(Data Transfer Object)를 활용하여 객체지향 프로그래밍을 하지만, C#은 속성 get, set을 사용하여 캡슐화하여 객체 지향 프로그래밍을 한다.

*캡슐화 : 한 class 안에 연관된 데이터를 묶고 정보를 숨겨서 class 자체를 캡슐처럼 만들기

 [ 속성 ] 

속성(Property) : class의 멤버변수 값을 읽기, 저장, 값 변경

  • 변수는 읽기, 저장까지만 가능.
  • 대상 : 접근 권한이 private, protected으로 선언된 멤버변수
  • public으로 선언 -> 이미 외부로 노출되어있으니까 속성을 사용할 필요가 없음
  • private으로 선언 -> 이 멤버변수 자체보다는 속성으로 노출시켜서 값 변경
  • 형식 : 속성은 변수와 동일한 형태로 사용 (대입연산자, 연산을 동일하게 사용)

 

// 방법1
[접근한정자] 데이터형 속성명 { //속성을 외부에서 사용해야하므로 접근한정자는 public

	get{ return 멤버변수; }
	set{ 멤버변수 = value; } //value(값)를 지정해서 멤버변수에 저장.
}

// 방법2 : get, set 속성 안에 논리/처리 코드를 적용하기
private int number;

public int Number{

	get{ return number; }
	
    set{ 
    	
        if(value<0 || value>9) number = 0;
        
        else number = value;
        
        }
}

 

 [ 속성 vs. 인덱서 ] 

  • 공통점 : 객체의 멤버 변수를 read, write함
  • 차이점 : 속성은 변수, 인덱서는 배열 형태임
728x90

'C# > C# 문법' 카테고리의 다른 글

인덱서 (Indexer)  (0) 2021.06.17
다형성 (Polymorphism)  (0) 2021.06.17
오버라이드(Override), 오버로드 (Overload)  (0) 2021.06.17
상속(Inheritance), 추상클래스(Abstract Class)  (0) 2021.06.17
파일 입출력  (0) 2021.06.15

BELATED ARTICLES

more