[안드로이드] 패스트캠퍼스 챌린지 05일차!!
들어가며
지금까지 확장 함수들의 모든 기능들을 살펴 봤습니다!! 워낙 코틀린 스러워서 많이 혼란도 있었고 어느 타이밍에 딱딱 써야하는지 감이 안오긴 해요 ㅠㅠ
이 강의는 안드로이드 강의인데 언어만 배워서 그런가.. 싶기도 하고 합니다 ㅎㅎ 그래도 모든 프로그래밍의 기초는 언어에서 나온다고 생각해요!! 그래서 저는 좀더 열심히 언어를 배우도록 할 예정입니다 ㅎㅎ
그래서 오늘은 코틀린만이 가지고있는 기능들을 살펴볼꺼예요!
Data Class
Kotlin
data class Person(val name: String)
위 코드가 data class 입니다! java를 공부하신 분들은 이게 뭐야...이게 뭐야... 하실텐데 저도 공부하면서 이해가 조금 안된 문법입니다!
이코드는 보통 model class 를 만들때 사용이 많이됩니다. 모델 클레스라고 하면 데이터 베이스에서 값을 가져올때 많이 사용되는 클래스입니다 물론 Map형식으로 값을 받아도 되지만 모델로 만들면 좀더 직관적이고 이해하기도 편하기 때문이예요!
코드를 설명 하자면 name 이라는 필드 변수를 가지고 있는 함수입니다 그러나!! 여기서 장점! data class 는 겟터 셋터 를 자동으로 만들어줍니다! 그래서 자바의 긴코드를 사용할 필요 없이 그냥 data class만 만들게 되면 기존 겟 셋 을 사용할 수 있게 됩니다!!
Java
class Person {
String name = ""
public String getName(){
return this.name
}
public void setName(String name){
this.name = name
}
}
역시 겟터 세터를 만들어 모델을 관리하는 자바입니다!! 코드가 많이 지저분 하죠... 왜냐하면 data class 만 만들면은 해결 될 문제를 겟셋을 만들어서 모델을 관리하니.. 가독성도 좋지 않고 괜히 코드량만 늘이는 작업인 것 같습니다 ㅠㅠ
Lamda
Java
button.setOnclickListener(new View.onClickListener){
@Override
public void onClick(){
}
}
안드로이드에서 사용하는 온클릭 리스너입니다!! 리스너는 클라이언트가 이벤트를 발생시킬때 실행 하는 함수 라고 생각하시면 될 것 같습니다!!
자바로 짜여진 코드로써 역시 길이가 기~~입니다!
리스너 함수의 인자로 또 함수를 받게 되고 그 함수 에 또 오버라이드 함수르... 하 너무 길죠? 이걸 코틀린으로 표현하면 어떻게 될까요?!
Kotlin
button.setOnclickListener{
}
끝입니다.. ㅋㅋㅋ 너무 간단하죠? 자바 코드를 많이 생략 가능하게 만들어놓은 느낌이 강한데요 ㅎㅎ 코드를 보니 setOnclickListener 를 사용하면 인자로 View.onClickListener가 세트로 오니까 그냥 생략해 버린 것 같습니다!
위 코드 중괄호 안에는 자바 코드의 onClick을 실행 시킬 수 있는 코드를 작성하면 끝! 끝입니다!! 너무 간단하죠 ㅎㅎ 점점 코틀린의 매력에 빠지는 느낌입니다!!
Lateinit /lazy
Kotlin
private lateinit var lateName: Person
private var name: Person = null
lateName.name = "패켐"
name?.name = "패캠"
private val layzCar: Car by lazy {
Car()
}
코틀린을 쓰는 목적이라고 할 수 있는 널 세이프는 코틀린을 사용하는 개발자라면 꼭 숙지하고 있어야 합니다!! 그 널세이프를 도와주는 기능이있는데
lateinit 과 lazy입니다!!
일단 lateinit은 var 변수 즉 바뀔수 있는 변수에 사용을 하 수 있고 lazy 는 상수 즉 바뀔수 없는 값에 서 사용하는 기능입니다 이 기능은 변수를 미리 초기화 하고 나중에 초기화 하고 싶을 떼 사용하는 기능입니다!!
예를 들면
안드로이드에서 전역으로변수를 선언하고 싶은데 선언과 동시에 초기화를 할 수 없을 때가 있습니다! 그때 초기화를 할 수 없을때가 있습니다 onCreate 함수에서만 선언할 수 있는 것을들 전역으로 사용하자니 선언과 동시에 초기화를 할 수 없고 따로 초기화를 해줘야 할때가 있습니다 그때 널 세이프하게 변수를 만들고 싶다면 위 코드를 참조해서 사용하는 것도 큰 도움이 될 것 같습니다!!
이렇게 코틀린의 아아아아아아주 기본적인 변수 선언 방법 함수 선언방법 그리고 코틀린만의 기능들을 살펴 보았습니다!! 역시 재미있군요../ㅎㅎ
내일은 안드로이드 설치법을 배워보겠씁니다!! 설치 뭐가 중요하지.. 라고 생각 할 수도 있는데 저는 첫단추를 잘끼워야 무조건 마무리도 좋다고 생각해요 ㅎㅎ
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발#패스트캠퍼스후기#30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본문 하단 챌린지 참여 게시글을 나타내는 문구 기재: 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다. |