자바 대체할려고 나옴, 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() 이런느낌으로
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("고기를 먹습니다")
}
}
역시 기본문제 풀어줘야 피지컬이 올라감