상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 코틀린에서 프로퍼티의 getter와 setter를 정의하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
코틀린(Kotlin)에서는 프로퍼티(property)를 정의할 때 기본적으로 <a href='https://sangseek.com/sangseeks/get()/ko'>get()</a>ter와 setter가 자동으로 생성됩니다. 그러나 필요에 따라 사용자 정의 getter와 setter를 구현할 수도 있습니다. 이 글에서는 코틀린에서 프로퍼티의 getter와 setter를 정의하는 방법에 대해 자세히 설명하겠습니다. 기본 프로퍼티 정의 코틀린에서 프로퍼티를 정의하는 <a href='https://sangseek.com/sangseeks/기본적인 방법/ko'>기본적인 방법</a>은 다음과 같습니다: ```kotlin class Person { var name: String = "Unknown" var age: Int = 0 } ``` 위의 코드에서 `name`과 `age`는 자동으로 getter와 setter가 생성됩니다. `name`의 경우, `get()` 메서드는 `name`의 값을 반환하고, `set(value)` 메서드는 `name`의 값을 설정합니다. 사용자 정의 Getter와 Setter 사용자 정의 getter와 setter를 정의하려면, `get()`과 `set(value)`를 <a href='https://sangseek.com/sangseeks/오버라이드/ko'>오버라이드</a>하면 됩니다. 예를 들어, `age` 프로퍼티에 대해 0보다 작은 값이 설정되지 않도록 제한하는 코드를 작성할 수 있습니다. ```kotlin class Person { var name: String = "Unknown" var age: Int = 0 get() = field // 기본 getter set(value) { if (value >= 0) { field = value // 기본 setter } else { println("Age cannot be negative.") } } } ``` 위의 코드에서 `age` 프로퍼티의 setter는 입력된 값이 0 이<a href='https://sangseek.com/sangseeks/상인/ko'>상인</a>지 확인하고, 그렇지 않으면 경고 메시지를 출력합니다. `field` 키워드는 프로퍼티의 실제 저장소를 참조합니다. 읽기 전용 프로퍼티 읽기 전용 프로퍼티를 정의하려면 `val` 키워드를 사용합니다. 읽기 전용 프로퍼티는 setter가 없으며, getter만 정의할 수 있습니다. 예를 들어: ```kotlin class Circle(private val radius: Double) { val area: Double get() = Math.PI * radius * radius // radius를 사용하여 면적을 계산 } ``` 위의 `Circle` 클래스에서 `area` 프로퍼티는 `radius`를 기반으로 계산된 값을 반환하는 사용자 정의 getter를 가지고 있습니다. 프로퍼티 초기화 프로퍼티의 초기화는 생성자에서 수행할 수 있습니다. 다음은 생성자에서 프로퍼티를 초기화하고, 사용자 정의 getter와 setter를 사용하는 예입니다. ```kotlin class Rectangle(private var _width: Double, private var _height: Double) { var width: Double get() = _width set(value) { if (value > 0) { _width = value } else { println("Width must be positive.") } } var height: Double get() = _height set(value) { if (value > 0) { _height = value } else { println("Height must be positive.") } } val area: Double get() = width * height // 면적 계산 } ``` 이 예제에서 `Rectangle` 클래스는 `width`와 `height` 프로퍼티를 가지고 있으며, 각각의 setter에서 값이 양수인지 확인합니다. 또한, `area` 프로퍼티는 면적을 계산하여 반환합니다. 결론 코틀린에서 프로퍼티의 getter와 setter를 정의하는 것은 매우 간단하고 유연합니다. 기본적으로 제공되는 getter와 setter를 사용할 수도 있지만, 필요에 따라 사용자 정의 로직을 추가하여 프로퍼티의 값을 제어할 수 있습니다. 이러한 기능은 데이터의 <a href='https://sangseek.com/sangseeks/무결성/ko'>무결성</a>을 유지하고, 비즈니스 로직을 구현하는 데 유용합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기