상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 코틀린의 데이터 클래스에서 copy() 메소드의 사용 예시는?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/코틀린/ko'>코틀린</a>의 <a href='https://sangseek.com/sangseeks/데이터/ko'>데이터</a> 클래스는 주로 불변(immutable) 객체를 만들기 위해 사용됩니다. 데이터 클래스는 `data` 키워드를 사용하여 정의되며, <a href='https://sangseek.com/sangseeks/주 생성자/ko'>주 생성자</a>에 정의된 <a href='https://sangseek.com/sangseeks/프로퍼티/ko'>프로퍼티</a>에 대해 자동으로 `equals()`, `<a href='https://sangseek.com/sangseeks/hashCode()/ko'>hashCode()</a>()`, `toString()`, `<a href='https://sangseek.com/sangseeks/copy()/ko'>copy()</a>()` 메소드를 생성합니다. 이 중 `copy()` 메소드는 객체의 복사본을 생성하면서 일부 프로퍼티의 값을 변경할 수 있는 유용한 기능을 제공합니다. 데이터 클래스 정의 먼저, 데이터 클래스를 정의해보겠습니다. 예를 들어, `Person`이라는 데이터 클래스를 만들어 보겠습니다. ```kotlin data class Person(val name: String, val age: Int) ``` 위의 `Person` 클래스는 두 개의 프로퍼티 `name`과 `age`를 가지고 있습니다. 이 클래스의 인스턴스를 생성하고, `copy()` 메소드를 사용하여 객체를 복사하는 방법을 살펴보겠습니다. 객체 생성 ```kotlin fun main() { val person1 = Person("Alice", 30) println(person1) // 출력: Person(name=Alice, age=30) } ``` 이제 `person1`이라는 객체가 생성되었습니다. 이 객체를 복사하고, 나이를 변경해보겠습니다. copy() 메소드 사용 ```kotlin val person2 = person1.copy(age = 31) println(person2) // 출력: Person(name=Alice, age=31) ``` 위의 코드에서 `person1.copy(age = 31)`을 호출하여 `person1`의 복사본을 만들고, `age` 프로퍼티만 31로 변경했습니다. 결과적으로 `person2`는 이름은 동일하지만 나이가 31인 새로운 객체가 됩니다. 여러 프로퍼티 변경 `copy()` 메소드는 여러 프로퍼티를 동시에 변경할 수도 있습니다. 예를 들어, 이름과 나이를 모두 변경해보겠습니다. ```kotlin val person3 = person1.copy(name = "Bob", age = 25) println(person3) // 출력: Person(name=Bob, age=25) ``` 위의 코드에서 `name`과 `age`를 모두 변경하여 `person3`이라는 새로운 객체를 생성했습니다. 기본값과 함께 사용 데이터 클래스의 프로퍼티에 기본값을 설정할 수도 있습니다. 예를 들어, `Person` 클래스에 기본값을 추가해보겠습니다. ```kotlin data class Person(val name: String = "Unknown", val age: Int = 0) ``` 이제 기본값을 사용하여 객체를 생성할 수 있습니다. ```kotlin val person4 = Person() println(person4) // 출력: Person(name=Unknown, age=0) ``` 기본값을 사용하면서 `copy()` 메소드를 활용하면, 특정 프로퍼티만 변경하면서 나머지는 기본값을 유지할 수 있습니다. ```kotlin val person5 = person4.copy(name = "Charlie") println(person5) // 출력: Person(name=Charlie, age=0) ``` 결론 코틀린의 데이터 클래스에서 `copy()` 메소드는 객체를 쉽게 복사하고, 필요한 프로퍼티만 변경하여 새로운 객체를 생성할 수 있는 매우 유용한 기능입니다. 이는 불변 객체를 다루는 데 있어 코드의 가독성을 높이고, 객체의 상태를 안전하게 관리하는 데 도움을 줍니다. 데이터 클래스를 사용하면 객체의 상태를 쉽게 변경할 수 있는 방법을 제공하므로, 코틀린에서 객체 지향 프로그래밍을 보다 효과적으로 구현할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기