C# 프라이빗 메서드란 무엇인가?
프라이빗 메서드는 오직 해당 클래스 내부에서만 호출하고 사용할 수 있는 메서드입니다. 메서드를 프라이빗으로 지정하려면 private 접근 한정자(access specifier)를 사용하면 됩니다.
private 접근 한정자의 역할
private 접근 한정자를 사용하면 클래스는 자신의 멤버 변수와 멤버 함수를 다른 클래스의 함수나 객체로부터 숨길 수 있습니다. 즉, 같은 클래스에 속한 멤버 함수만 프라이빗 멤버에 접근할 수 있으며, 심지어 해당 클래스의 인스턴스(객체)조차도 프라이빗 멤버에 직접 접근할 수 없습니다.
이러한 정보 은닉(information hiding)은 객체지향 프로그래밍의 핵심 원칙인 캡슐화(encapsulation)를 구현하는 대표적인 방법으로, 내부 구현 세부 사항을 보호하고 코드의 안정성을 높여줍니다.
예제 코드
using System;
class Demo {
private int displayOne() {
return 10;
}
public int displayTwo() {
return 10;
}
}
class Program {
static void Main() {
Demo d = new Demo();
// Console.WriteLine(d.displayOne()); // 컴파일 에러 발생!
Console.WriteLine(d.displayTwo());
}
}코드 설명
위 예제의 Demo 클래스에는 두 가지 메서드가 선언되어 있습니다:
- displayOne():
private으로 선언된 프라이빗 메서드 - displayTwo():
public으로 선언된 퍼블릭 메서드
Main() 메서드에서 주석 처리된 부분처럼 프라이빗 메서드인 displayOne()을 클래스 외부에서 호출하려고 시도하면 컴파일 오류가 발생하여 실행되지 않습니다. 반면, 퍼블릭 메서드인 displayTwo()는 클래스 외부 어디에서든 자유롭게 호출할 수 있습니다.
이처럼 프라이빗 메서드는 클래스 내부의 보조 로직이나 헬퍼 함수 등 외부에 노출할 필요가 없는 기능을 감추는 데 유용하게 활용됩니다.