목록Language (76)
한 걸음 두 걸음
프로퍼티 이는 자바에서 지원하지 않지만 코틀린에 있기 때문에 알아두시는 것이 좋습니다. class Name{ var a : String = "A" }에서 getter와 setter가 생략되어있습니다. 그래서 print(Name.a) 이런식으로 사용하면 getter가 자동으로 호출됩니다. (getter와 setter가 아니라 여기서는 get() set()함수입니다.) field 식별자를 accessor에서 사용할 수 있습니다. var counter = 0 set(value){ //accessor if(value > 0) field = value }를 통해 value값을 field에 저장할 수 있습니다. const const val A = "TOP LEVEL" 그리고 lateinit도 있는데 조건이 굉장히 ..
상속 class 이름 :상속할거(){} 방식으로 사용합니다. :만 써줌으로써 할 수 있고, 아무것도 안쓸경우 Any가 상속됩니다. open class AA{x : Int} //open 키워드를 써줌으로써 상속해줄 수 있는 클래스가 됩니다. class BB(x:Int) : AA(x){}기본적으로 코틀린의 모든 클래스는 final로 만들어지기때문에 open으로 사용해주어야합니다. 파생 클래스에 기본생성자가 없는 경우에는 super키워드를 사용하여 상속클래스의 생성자를 초기화시켜주어야합니다. class MyView : View{ constructor() : super(1) //매개변수가 없는 보조생성자 constructor(a : Int) this() //인트형 a를 하나 받는 보조생성자는 this(매개변수가..
class class 이름(data : Int): { } //바디가 없으면 생략할 수 있습니다.생성자 기본생성자(primary) : 기본생성자는 클래스에 1개만 가질 수 있고, 클래스 이름 뒤에 작성합니다. class Person constructor(data : String){ }이런 식으로 사용합니다. 이 때, 어노테이션이나 접근지정자가 없을 경우 constructor를 생략하여 위처럼 쓸 수 있습니다. 기본 생성자의 코드는 init블록을 따로 만들어 작성해주어야합니다. init{ //data는 init블록 내부에서 사요할 수 있습니다. print("데이터 : $data"); } } 보조생성자 : 기본생성자를 꼭 한 번씩 호출을 해주어야합니다. class Person(val name:String){ ..
Package Package 이름.pack이름 fun 함수(){} 를 다른 곳에서 가져다가 쓰려면 import 이름.pack이름; fun A(){ 함수() }처럼 import해서 가져다쓰면 됩니다. 여기서 코틀린은 패키지를 명세하지 않아도 이름이 없는 기본 패키지에 포함되게 사용할 수 있습니다.(JAVA와 다른 부분입니다.) 함수 이름이 중복되는 경우, import nar.Bar import bar.Bar as ali2 //이런식으로 별명을 지어줌으로써 중복을 피할 수 있습니다 Label : break and return and continue 이중for문이 있을 떄 for(){ for(){ break; } } 를 하면 내부에 있는 for문만 탈출하는데 loop@를 사용하면 외부에 있는 for문까지 탈출..
if문 if문이 식으로 사용될 수 있다. val a = if(a>b) a else b;이 때 else를 반드시 명시해주어야하며, true일경우 a false일경우 b를 반환합니다. val max = if(a>b) { printf("a") a }else { print("b") b }이럴 땐 a > b가 참일 경우 a가 max에 들어가고, false일경우 b가 들어갑니다. 대신 JAVA에는 있는 코틀린이 삼항연산자가 없습니다. When switch문과 같은 것으로, 어떤 조건이 만족할 때까지 조건을 확인합니다. 때문에 break문이 필요없습니다. when (x){ 1 -> print("x = 1") 2 -> print("x = 2") else -> { print("x는 1도 2도 아닙니다.") } }이 때 ..
1. basic types 기본 타입 코틀린은 모든 타입이 객체입니다. 그래서 모두 대문자로 시작합니다. 예 ) Double, Int, Byte... java와 다른 점이 있다면 char를 숫자로 지원하지 않는다는 것입니다. val c : Char = 'a' // OK val c : Char = 45 // NO 1.1 리터럴상수 기본설정 : 10진수 (123)이나 double (2.3) 수동명시 : Long (123L ) Float ( 2.3f ) 2진수(ob0101111) 16진수 (OX0F) (8진수는 지원하지 않습니다.) 1.2 언더바 표현 val won = 1_000_000 //백만 1.3 표현 주의사항 일반 val의 경우 primitive type이지만, Nullable이나 Gen..
출처 : 인프런 새차원님의 kotlin 강의입니다. https://www.inflearn.com/course/%EC%BD%94%ED%8B%80%EB%A6%B0-%EA%B0%95%EC%A2%8C-%EC%83%88%EC%B0%A8%EC%9B%90/lecture 1. 패키지 1.1 package package demo 코드 맨 윗줄에 작성하며, 디렉토리 경로와 상관없습니다. 1.2 import import의 경우 java와 같습니다. 2. 함수정의 2.1 func키워드 (리턴타입 명시) fun 키워드를 사용하여 정의합니다. fun sum(a: Int, b: Int) : Int { return a+b } 여기서 sum(a: Int, b: Int) : Int(리턴타입) 이 이렇게 명시되어있습니다.(생략가능합니다)..
1. 구글에서 안드로이드 네이티브 앱을 개발하는 공식 언어로 지정했습니다. 안드로이드 스튜디오 3.0부터 코틀린을 적용하여 개발을 할 수 있습니다. (오라클과 구글의 소송 중 오라클이 이겨 앞으로 저작권 관련 문제때문에 코틀린이 자주 사용될 것으로 보입니다. java와 완전히 상호대체 가능합니다. (-> IntelliJ에서 코드 변환은 가능하나, 불완전합니다.) java보다 간결합니다. 코틀린은 java보다 훨씬 짧은 코드로 다양한 기능을 구현할 수 있기 때문에 보다 효율적입니다. 안전합니다. null포인터 등에 대해 엄격하게 관리하여 프로그래밍이 안정성있게 됩니다. 코틀린은 정적타입프로그래밍 언어이며, 다양한 플랫폼에서 작용합니다. Tool-friendly JetBrains에서 개발한 언어로 기본에 만..