From 7b0e70fdef3ad118f24e5232257140cbea20987d Mon Sep 17 00:00:00 2001 From: seongho <133200303+lsh4323@users.noreply.github.com> Date: Mon, 4 Nov 2024 18:24:02 +0900 Subject: [PATCH 1/2] Add files via upload --- week4/images/1.PNG | Bin 0 -> 9127 bytes week4/week4.md | 74 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 week4/images/1.PNG create mode 100644 week4/week4.md diff --git a/week4/images/1.PNG b/week4/images/1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..ff9babaae48008bd7022c2284ba31823600ce4b8 GIT binary patch literal 9127 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 G_CEmmIMx9G literal 0 HcmV?d00001 diff --git a/week4/week4.md b/week4/week4.md new file mode 100644 index 0000000..4b06131 --- /dev/null +++ b/week4/week4.md @@ -0,0 +1,74 @@ +# 데이터 클래스 만들기 + +## 1. 폴더 +![img1](./images/1.png) + +## 2. 데이터 클래스 타입 만들기 +Affirmation.kt는 데이터 클래스 타입을 저장, Data class로 생성 +```kotlin +//안드로이드에서는 리소스에 고유한 정수형 ID를 부여 +data class Affirmation( + val stringResourceId: Int, + val imageResourceId: Int +) +``` +```kotlin +import androidx.annotation.DrawableRes +import androidx.annotation.StringRes + +//어노테이션을 이용해 타입 검증이 일어남 +data class Affirmation( + @StringRes val stringResourceId: Int, + @DrawableRes val imageResourceId: Int +) +``` + +## 3. 데이터 클래스 만들기 +Datasource.kt : 데이터를 저장 + +**클래스의 프로퍼티로 저장** + +객체 생성 시 데이터가 생성 되어 유연성이 부족하고 메모리를 차지 +```kotlin +//Datasource.kt +import com.example.affirmations.R +import com.example.affirmations.model.Affirmation + +class Datasource { + val affirmations = listOf( + Affirmation(R.string.affirmation1, R.drawable.image1), + Affirmation(R.string.affirmation2, R.drawable.image2), + ... + ) +} + +//MainActivity.kt +affirmationList = Datasource().affirmations +``` + +**메서드로 정의** + +유연성: 메서드를 호출할 때마다 데이터를 생성할 수 있어, 필요에 따라 데이터를 동적으로 생성하거나 업데이트할 수 있습니다. + +캡슐화: 데이터 생성 로직이 함수 내부에 감춰져 있어 코드의 유지보수와 확장이 용이합니다. + +메모리 효율성: 필요할 때만 메서드를 호출해 데이터를 가져오기 때문에 메모리 관리가 효율적일 수 있습니다. + +```kotlin +//Datasource.kt +import com.example.affirmations.R +import com.example.affirmations.model.Affirmation + +class Datasource() { + fun loadAffirmations(): List { + return listOf( + Affirmation(R.string.affirmation1, R.drawable.image1), + Affirmation(R.string.affirmation2, R.drawable.image2), + ... + ) + } +} + +//MainActivity.kt +affirmationList = Datasource().loadAffirmations() +``` \ No newline at end of file From ae905c85d5285b0ae5c6ca93a283c924162602a3 Mon Sep 17 00:00:00 2001 From: seongho <133200303+lsh4323@users.noreply.github.com> Date: Mon, 4 Nov 2024 19:02:28 +0900 Subject: [PATCH 2/2] Update week4.md --- week4/week4.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/week4/week4.md b/week4/week4.md index 4b06131..37a33ba 100644 --- a/week4/week4.md +++ b/week4/week4.md @@ -1,7 +1,8 @@ # 데이터 클래스 만들기 ## 1. 폴더 -![img1](./images/1.png) +![1](https://github.com/user-attachments/assets/fa666f63-90b6-4dab-a946-b670d1e1b850) + ## 2. 데이터 클래스 타입 만들기 Affirmation.kt는 데이터 클래스 타입을 저장, Data class로 생성 @@ -71,4 +72,4 @@ class Datasource() { //MainActivity.kt affirmationList = Datasource().loadAffirmations() -``` \ No newline at end of file +```