협업과 분업을 위해 interface와 abstract 를 사용한다 interface는 interface 이름 {} 으로 정의 오버라이드 하기 위해 open이나 기타 지시자로 정의할 필요 없다 abstract class는 구현 상속할 메소드도 abstract로 정의해아한다 그리고 상속에서는 override로 정의 static을 사용하려면 클래스 내에 companion object {}를 만들고 그안에 메소드나 맴버필드를 정의한다.
파일명과 클래스명이 달라도된다. 클래스는 class 이름{} 형태 생성자는 constructor(매개변수){} 형식을 쓰지만, class 이름(변수명: 데이터형 ..){}로 쓰이기도 한다. Kotlin에서 기본은 상속이 금지. 선조 클래스를 open class 이름{}으로 선언해야 가능하다 상속은 class 이름 : 선조클래스명(생성자인자){} 형식
Kotlin에서 Collections는 열거형 데이터를 관리하는 데 필수적인 클래스 집합 읽기 전용 List -> listOf, 항목의 데이터형을 혼합해도 됨 수정가능 List -> mutableListOf, 제너릭()으로 데이터형을 반드시 선언, 각종 메서드(add,remove...) Map은 hashMapOf(키 to 값 .. 형식)
Kotlin에서 레이블은 매우 중요 함수형 언어이기에 리턴되는 곳을 명확히 할 필요 return 반환 값 : 값만 있으면 호출된 함수로 이동 return@레이블 반환값 : 해당 레이블로 값을 가지고 복귀 break, continue : break는 반복문을 종료하고 나간다. continue는 다음라인을 무시하고 반복문의 처음으로 나감 break@레이블, conintue@레이블 : break 는 반복문을 종료하고 지정한 레이블로 나간다. continue는 다음라인을 무시하고 지정한 레이블로 이동
if 문은 Java와 유사 단지 Any타입이 쓰이며, in,is 등과 함꼐 사용되어 더유연하게 사용 반목문은 for문은 for(변수 in 배열 or 범위){}형식으로 사용 if case문의 결과를 바로 변수로 대입시킬수 있다 27행 함수는 When을 이용해 Switch Case 같이 사용하는 듯 하다 35행에 보면 in (0..9)는 0부터 9 범위를 나타낸다 나머지는 다른 언어와 별 차이 없어보인다
위와 같이 함수 선언에 다양한 형태가 있다 fun 함수명( 변수명 : 데이터크기....): 리턴값 {return;} 한줄로 표현가능한 함수는 {}대신 = 로정의 가능하다. 함수형 변수의 값 : {변수정의 -> 코드구현} 함수형 변수의 형 : {입력정의} -> 리턴정의 20행과 같이 : 뒤에 자료형을 선언하면 자료형을 변환하는 함수인듯 하다 예를들어 C++코드에서 String funByRetrun(String s) 와 같은 것 같다 34행은 익명함수라고 하는데 이부분은 좀 더 알아보고 후에 정리해야함!