Developing Myself Everyday

변수 캡슐화란?


 변수 캡슐화는 객체 지향 프로그래밍에서 중요한 원칙 중 하나이다. 이는 클래스의 맴버 변수를 외부에서 직접 접근하는 것이 아니라, 해당 변수에 대한 접근을 제한하고 메서드를 통해 간접적으로 변수에 접근하는 것을 말한다.

 

변수 캡슐화를 하면 다음과 같은 이점이 생긴다.

  1. 정보 은닉: 변수를 private로 선언할 수 있어 클래스 내부의 데이터를 보호하고, 외부에 불필요한 세부 구현을 감춘다.
  2. 접근 제어: getter와 setter 메서드를 통해 변수에 접근하므로, 변수에 대한 유효성 검사, 제한된 접근 권한 설정 등을 수행할 수 있다.
  3. 유연성과 유지보수성: 변수에 대한 의존성을 제한하여 클래스 내부의 구현 변경에 유연하게 대처할 수 있으며, 코드의 유지보수성을 향상시킨다.

 설명만 듣고선 알기 힘드니 실제 코드를 보면서 확인해 보겠습니다.

 

class Person {
    private var name: String = ""
    private var age: Int = 0

    fun getName(): String {
        return name
    }

    fun setName(newName: String) {
        name = newName
    }

    fun getAge(): Int {
        return age
    }

    fun setAge(newAge: Int) {
        age = newAge
    }
}

fun main() {
    val person = Person()
    person.setName("John")
    person.setAge(25)

    println("Name: ${person.getName()}")
    println("Age: ${person.getAge()}")
}

 

 위의 코드를 보게 되면 person 내부에 name과 age라는 변수가 있다. 하지만 이 변수들은 private로 선언되어 있어 클래스 외부에서는 접근할 수 없다. 대신에 getName, setName, getAge, setAge 라는 공개된 메소드를 통해 변수에 접근할 수 있다.

 

 메인 함수에서는 Person 객체를 생성하고 메소드를 사용해 변수에 값을 설정하고 출력한다. 이렇게 하면 name 변수와 age 변수에 직접 접근하는 것을 막고, 접근자와 설정자를 통해 간접적으로 변수에 접근할 수 있다. 이는 변수의 값을 보호하고 외부에서의 무차별한 수정을 방지하는데 도움을 준다.

'Android > Kotlin' 카테고리의 다른 글

Enum Class  (0) 2023.05.26
Abstract Class & Interface  (0) 2023.05.25
REST API, Retrofit  (0) 2023.05.01
REST API에서 HATEOAS란?  (0) 2023.05.01
Retrofit 이란?  (0) 2023.04.03
profile

Developing Myself Everyday

@배준형

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!