클래스의 인스턴스 프로퍼티에 대한 접근을 은닉하는 방법은 무엇인가요?

가장 일반적인 접근 제어자는 다음과 같이 3가지가 있습니다:

다음은 Swift 언어를 사용한 예제 코드입니다.

class MyClass {
    private var privateProperty: Int = 10
    public var publicProperty: String = ""

    private func privateMethod() {
        // 비공용 메소드의 구현
    }
    public func publicMethod() {
        // 공용 메소드의 구현
    }
}

let instance = MyClass()
instance.privateProperty = 20  // 컴파일 에러: 비공용 프로퍼티에 직접 접근할 수 없음
instance.publicProperty = "Hello"  // 정상적으로 접근 가능

instance.privateMethod()  // 컴파일 에러: 비공용 메소드에 직접 접근할 수 없음
instance.publicMethod()  // 정상적으로 접근 가능

위의 코드에서 privateProperty는 비공용이므로 MyClass 외부에서는 접근할 수 없습니다. 마찬가지로 privateMethod도 비공용이므로 외부에서 호출할 수 없습니다. 하지만 publicPropertypublicMethod는 공용으로 설정되어 있으므로 클래스 외부에서도 접근할 수 있습니다.

이와 같이 접근 제어자를 사용하여 클래스의 인스턴스 프로퍼티에 접근을 제어함으로써, 데이터의 은닉과 보호를 할 수 있습니다.

#프로그래밍 #OOP