목차
Encapsulation (캡슐화)
properties (속성) - get/set 메서드
Automatic Properties (자동 속성) - 축약 방식
캡슐화 장점
Encapsulation (캡슐화)
1.
속성 (= 필드) 이해에 앞서, '캡슐화' 개념 이해 필요.
※ 캡슐화 : "민감한" 데이터를 사용자에게 비노출.
2.
캡슐화 위해,
클래스 안 데이터의 직접 수정을 막고 메서드로만 변경 허용.
1. 데이터 보호.
2. 내부적으로만 작동하는 코드 숨김.
[방법] ★
1. 클래스 안 속성(=변수)을 private 으로 설정.
※ private 수정자 :동일 클래스에서만 접근 가능.
2. private 설정된 속성에 접근 방법 :
public 설정된 get/set 메서드 통해서만 허용.
properties (속성) - get/set 메서드
1.
클래스 안 필드 private 설정 시 해당 클래스에서만 접근 가능한데,
public 설정된 properties (속성) 이용 시 외부에서도 접근 가능함.
2.
properties (속성)은 변수와 메서드 결합된 것으로서,
이 안에 필드값 얻거나 설정하는 get /set 메서드 있음.
3.
get 메서드 : 필드 값 반환.
set 메서드 : 필드 값 설정.
4.
Properties (속성)은 필드명과 동일하게 하되,
첫 글자는 대문자로 입력.
[예제]
class Hz
{
private string host ; // field
public string Host // property
{
get { return host ; } // get 메서드
set { host = value; } // set 메서드
}
}
PS. 코드 설명.
※ host : private (= 다른 클래스에서 접근 금지) 설정된 필드.
※ Host : host 필드 값을 얻거나 설정 위한 Property (속성).
※ get 메서드 : host 필드 값 반환.
※ set 메서드 : host 필드 값 설정.
※ value : property (속성)에 할당하는 값 의미.
[예제]
1. Hz.cs
using System;
namespace Homzzang
{
class Hz
{
private string host; // field
public string Host // property
{
get { return host; }
set { host = value; }
}
}
}
2. Index.cs
using System;
namespace Homzzang
{
class Index
{
static void Main(string[] args)
{
Hz my = new Hz();
my.Host = "Homzzang.com";
Console.WriteLine(my.Host);
}
}
}
결과값: Homzzang.com
Automatic Properties (자동 속성) - 축약 방식
properties (속성) 위한 필드명 따로 정의 불필요함.
그저, properties (속성) 안에 get; set; 적으면 됨.
즉,
Host 위한 host 정의할 필요 없이,
Host 안에 get; set; 적기만 하면 됨.
[예제]
1. Hz.cs
using System;
namespace Homzzang
{
class Hz
{
public string Host // property
{ get; set; }
}
}
2. Index.cs
using System;
namespace Homzzang
{
class Index
{
static void Main(string[] args)
{
Hz my = new Hz();
my.Host = "Homzzang.com";
Console.WriteLine(my.Host);
}
}
}
결과값: Homzzang.com
캡슐화 장점
1.
클래스 안 속성/메서드에 대한 더 나은 제어 .
즉, 누군가에 의해 코드가 엉망이 될 가능성 ↓.
2.
클래스 안 필드는, 읽기전용/쓰기전용으로 설정 가능.
※ 읽기 전용 : get 메소드만 사용.
※ 쓰기 전용 : set 메소드만 사용.
3.
유연성↑ . (즉, 다른 부분에 영향 안 주고, 코드 일부만 변경 가능.)
4.
데이터 보안 강화.
주소 복사
랜덤 이동
최신댓글