kotlin 기초자료

jeongho park·2024년 3월 22일
0

kotlin 입문 (배워보자)

자바 대체할려고 나옴, Web, Mobile등에서 다양하게 쓰임

변수 선언

  • var 가변성
  • val 불변성 (보호)
    클래스내에 선언되면 Property, 다른데 Local Variable (로컬변수)
  • 세미콜론 필요없음
  • var a:Int = 2
  • var b:String = "ff"
  • 특이한건 var c:String = """ 따옴표 3개는
    엔터로 쳐도 그대로 줄바꿈으로 넣어줌"""
  • var d:Char = 'd' (작은따옴표로 char 표기)

형변환

  • 암시적 형 변환은 지원 안함 (명시적으로 하자)
    toString(), toInt(), toChar() 이런느낌으로

배열

  • var intArr : arrayOf(1,2,3,4,5)
  • var nullArr = arrayOfNulls<자료형>(5)
    nullArr 는 null로 일단 채움
  • intArr[2] 이런형태로 꺼내서 쓰거나 선언 가능

타입 추론

  • var a = 1234 (Int)
  • var b = 1234L (Long)
  • var c = 23.0 (Double)
  • var d = 23.0f (float)
  • var e = "스트링" (String)
    이런식으로 생략 가능

함수

fun으로 선언

  • fun (a: Int, b: Int, c:Int) : Int {
    return a+b+c
    }
  • 단일 표현식 (single-expression function)
  • fun add(a:Int, b:Int, c:Int) = a+b+c

조건문

  • if문으로 true false 인데 자료형 체크하는건 is
  • when (a) {
    1 -> println("정수 1임")
    "gg" -> println("gg임")
    is Int -> println("정수형임")
    !is Int -> println("정수형 아님")
    else -> println("아무것도 아님")
    }

반복문

  • while문은 java랑 같음
  • for(i in 0..9 step 3) {
    }
  • for (i in 9 downTo 0) {}
  • loop@for (i in 1..10) {
    if(i == 2) break@loop
    }
  • 레이블이름으로 브레이크 가능

클래스 구조

fun main() {
var a =Person("gg",1990)
var b = Person("ff",1993)
var c = Person("cc", 2304)

a.introduce()
b.introduce()
c.introduce()
}
class Person(var name:String, val birthYear:Int) { //이걸 instance라고 함
	fun introduce() {
    	println("이름은 ${name} 이고 ${birthYear} 에 태어났다.")
    }
}

생성자

fun main() {
var a = Person("gg",1990)
var b = Person("ff",1993)
var c = Person("cc", 2304)


}
class Person(var name:String, val birthYear:Int) { //이걸 instance라고 함
	init {
    	println("이름은 ${this.name} 이고 ${this.birthYear} 에 태어났다.")
    }
    
    constructor(name:String) : this(name, 1997) {
    	println("보조 생성자가 사용되었습니다")
    }
}

상속

open 으로 열어주는거임

open class Animal {
	open fun eat() {
    println("음식을 먹습니다")
    }
}

class Tiger : Animal() {
	override fun eat() {
    	println("고기를 먹습니다")
    }
}

프로그래머스 기본문제 풀기

역시 기본문제 풀어줘야 피지컬이 올라감

profile
BackEnd 개발자

0개의 댓글