반응형

프로그래밍/Kotlin 17

[코틀린 / Kotlin] 보조 생성자 활용하기

주 생성자가 없는 클래스 : 주 생성자가 없으므로 this를 이용한 주 생성자 호출 불 필요 class MyClass{ //보조 생성자 정의 constructor(){ println("보조 생성자(본인)만 호출") } //this()는 앞에서 정의한 보조 생성자를 호출 constructor(arg: Int) : this(){ println("다른 보조 생성자를 호출하며 매개변수도 호출($arg)") } } fun main(){ var my1 = MyClass() var my2 = MyClass(123) } 출력 결과 보조 생성자(본인)만 호출 보조 생성자(본인)만 호출 다른 보조 생성자를 호출하며 매개변수도 호출(123) 주 생성자가 존재하는 클래스 class MyClassWithPrimaryConstr..

[코틀린 / Kotlin] class 정의 , inti 블록

class 생성 하기 클래스 내부에 정의한 변수 혹은 상수를 속성(property)라고 하며(자바의 필드) 함수는 메소드(method)라고 함 참고 ) package com.greedy.`class` 자바에서 class는 예약어여서 해당 네임으로 class를 만들 수 없지만, 코틀린에서는 ``백틱을 자동으로 붙여서 생성되어 예약어가 아닌 class 이름으로 인식할 수 있음 class Car { /* 속성 정의 */ /* 현재 속도 */ var speed: Int = 0 /* 시동 걸려있는지 여부 */ var isOn: Boolean = true /* 메소드 정의 */ /* 가속해서 속도 증가 */ fun accelerate(){ speed += 10 } /* 감속해서 속도 감소 */ fun deceler..

[코틀린 / Kotlin] 조건문 (if 문, when case 문)

if문 (1) null을 허용하지 않고 초기화 fun main(){ var score = 79 var grade: String if(score == 100){ grade = "A" } else if(score in 90 until 100) { // until : ~미만 grade = "B" } else if(score in 80 until 90){ grade = "C" } else{ grade = "D" //abc 가 아닌 경우 초기 값이 없기 때문에 else 구문 추가 } println("grade : $grade") } 출력 결과 D (2) null값 허용하여 초기화 fun main(){ var score = 79 var grade: String? = null // null값 허용하여 초기화 if(s..

[코틀린 / Kotlin] 연산자 (산술, 복합, 대입, 인덱스 연산자, in 연산자, .. 연산자 )

산술 연산자(mathematical operator) var sum = 5 + 8 var sub = 4 - 6 var mul = 3 * 5 println("sum : $sum") println("sub : $sub") println("mul : $mul") var div = 6 / 5 var divDouble = 6.0 / 5.0 var divDouble2 = 6 / 5.toDouble() println("div : $div") println("divDouble : $divDouble") println("divDouble2 : $divDouble2") var mod1 = 6 % 5 var mod2 = 3 % 3 println("mod1 : $mod1") println("mod2 : $mod2") /* 연..

[코틀린 / Kotlin] 배열과 상수(array, const val, val)

배열 같은 타입의 값을 여러 개 저장하고 관리하기 위해 사용 0이라는 초기값으로 3개의 공간이 존재하는 array 생성 var arr1: Array = Array(3){0} var arr2 = Array(3){0} 배열 초기 값을 20으로 하는 3개의 정수를 저장할 수 있는 배열 선언 var arrInitHundred = Array(3){20} println(arrInitHundred[0]) println(arrInitHundred[1]) println(arrInitHundred[2]) arrInitHundred[2] = 40 //2번 인덱스 값 변경 println(arrInitHundred[2]) 출력 결과 20 20 20 40 배열 초기값을 "Hello" 문자열로 하는 2개의 문자열을 저장할 수 있는..

[코틀린 Kotilin] 기본 문법 정리( 원시 문자열, 문자열 템플릿, 엘비스(Elvis) 연산자, Any 타입, Null Check, let)

- 클래스 정의 없이 파일 생성 가능 - 클래스명이 파일명과 달라도 됨 - main 함수 작성 시 (args: Array) 생략해도 동작에 문제 없음 - 콘솔에 출력하기 위해 print 또는 println 사용 - 세미콜론을 찍어도 오류는 나지 않지만, kotlin에서는 사용하지 않는 것을 권장 - 한 줄에 여러 명령을 쓰기 위해서는 세미 콜론 필요(ex println("얼른 끝내고"); println("안드로이드 해야지")) 변수 선언 선언 형식 : val or var 변수명 [:타입] = 값 최초 선언 시에 타입이 결정되고 변수는 한 번 타입이 결정 되면 동일한 타입의 값만 담을 수 있음 (1) 선언 후 초기화 : 반드시 변수명 옆에 콜론을 구분자로 붙여 타입을 지정해야 함 var 변수명 : 타입 변..

반응형