엄코딩의 개발 일지

안녕하세요. 저는 https://kotlinlang.org/docs/reference/ 과 코틀린 관련 서적을 통해 학습하고있습니다.


코틀린 공부를 시작하면서 학습한 내용을 TISTORY를 통해 업로드하고 있습니다.


부족한 부분이나, 문의 사항이 있으시면 언제든지 댓글남겨주시면 감사하겠습니다.



코틀린의 장점



1. 적은 양의 코드로 많은 것을 표현할 수 있다.



Java Code

public class Person {
private String name;
private int age;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
}


Kotlin Code

data class Person(var name:String,var age:Int)


2. NullPointException에 안전하다.


var youngBoy:Person? = null
var oldBoy:Person? = null

if(youngBoy.equals(oldBoy))
{
//error
}

위의 kotlin code에서 에러가 나는 이유는 무엇일까?


young.equals(oldBoy)) 부분에서 마우스를 올려놓으면 youngBoy에 아무 값도 넣지 않으면 


NullPointException이 날 수 있다고 컴파일러에서 알려주고 있습니다 !!


즉, 프로그램 실행 없이도 개발 단계에서 오류 사항을 알 수 있습니다 !!




3. 함수형 언어의 중요한 장점들을 차용했다.



Java Code

Button btn = new Button(this);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

//TODO
}
});


Kotlin Code

val button = Button(this)
button.setOnClickListener {
//TODO
}


반복적으로 써줘야 했던 함수 선언부를 생략할 수 있습니다.


4. 상속 받지 않고도 클래스 확장이 가능하다.


fun ImageView.loadUrl(url:String)
{
Picasso.with(context).load(url).into(this)
}


kotlin에서는 기존의 클래스를 extend 받아 새로운 클래스를 만들지 않고 프로그램 안에서 확장하여 필요한 함수를 구현할 수 있습니다.


즉, kotlin에서는 필요한 클래스에서 함수를 선언해서 사용할 수 있습니다. 이 함수는 한번 선언해 두면 어떤 클래스에서나 불러서 사용할 수 있습니다.



5. 자바 코드와 호환 가능



kotlin은 JVM에서 실행되도록 컴파일 되기 때문입니다 !




참고 문헌 : 핵심 문법과 예제로 배우는 코틀린(이 난주 )