Kotlin

Kotlin 기초 공부

Machine_웅 2018. 7. 1. 19:05
728x90
반응형

<< 변수의 선언 >>

 

코틀린의 경우 변수는  val 이나  var 키워드를 이용하여 명시적으로 선언한다.

 

 

<<형식>>

val 변수명 : 타입  = 값

var 변수명 : 타입 = 값

 

 

 

val 과 var 의 차이

 

val 은 Assign-once 변수로 선언하여  한번 초기화하면 더이상 변경할 수 없다.

 

var 은 Mutable 변수로 선언하여, 언제든지 값을 변경 할 수 있다.

 

class MainActivity : AppCompatActivity() {


 val data1 : Int = 10
 val data2 = 20
 var data3 = 30

 override fun onCreate(savedInstanceState: Bundle?) {
 super.onCreate(savedInstanceState)
 setContentView(R.layout.activity_main)
 
 data2 = 40 // 에러 : 이유 val 로 선언된 변수는 값을 바꿀수 없기 때문이다 .
 data3 = 40 // 성공
 
 
 }
}

 

 

data2 data3 에 대입한 초기 값이 정수 이므로 타입을 명시 하지 않아도, 자동으로 Int 타입으로 선언됩니다.

코틀린은 타입 추론을 합니다.

 

 

<< 변수의 초기화 >>

코틀린의 경우  변수는 자동으로 초기화 되지 않으므로 코드에서 직접 초기화 해야하고, 초기화 한 이후에 이용이 가능하다 .

 

 

 

<<null 안전성 ( null Safety )  >>

 

코틀린에서 null  값을 대입하려면 명시적으로 null 이 될수 있는 변수로 선언을 해주어야 한다.

 

? 기호를 이용하여 명시적으로 null  이  될 수 있는 변수로 선언한다.

 

 

val data1 : String = null // 에러
val data2 : String? = null // 성공
var data3 : String? = null // 성공

 

 

----------------------------------------------------------------------------------------------------------------------------------

 

 

<< 함수의 선언 >>

 

<<형식>>

 

fun 함수명 ( 매개변수명 : 타입 ) : 반환타입 {  }

 

 

fun sum (a:Int, b:Int):Int{
 return a+b
}

 

 

<< 호출 >>

 

// 덧셈버튼
sumBtn.setOnClickListener{

 // 값 1과 값 2
 var a : Int = sumVal1.text.toString().toInt()
 var b : Int = sumVal2.text.toString().toInt()

 // 결과
 sumResult.text=sum(a,b).toString()
 Toast.makeText(this,"덧셈 결과",Toast.LENGTH_SHORT);

}

----------------------------------------------------------------------------------------------------------------------------------

 

<<클래스와 프로퍼티 >>

자바에서 property란, 멤버변수와 이 멤버변수의 getter, setter를 의미합니다. (꼭 정확하지는 않습니다)

코틀린에서는 이런게 분리되어 있는 property를 간단하게 표시할 수 있도록 하는 요소를 가지고 있습니다.

즉 멤버 변수를 선언하면, 그에 따른 getter, setter는 컴파일러가 자동으로 생성해 줍니다.

class Person( 
	val name: String //불변이므로 읽기전용이며, 컴파일러가 getter만 생성한다. 
    var isMarried: Boolean // 읽고 쓰기가 가능한 var type 변수 이므로 컴파일러가 자동으로 getter / setter를 만들어 낸다. 
)
    
fun main(args: Array<String>) { 
	val person = Person("Bob", true) println(person.name) // 실제로는 getter가 불린다. 
    println(person.isMarried) //실제로는 getter가 불린다. 
}

출처: https://tourspace.tistory.com/64 [투덜이의 리얼 블로그]



 

----------------------------------------------------------------------------------------------------------------------------------

<<반복문>>

// 1~ 100 까지 
for (i in 1..100) { 
    print(fizzBuzz(i)) 
} 

// 100 부터 1까지 2개 간격으로 (-2씩 차감되면서 반복) 
for (i in 100 downTo 1 step 2) {
     print(fizzBuzz(i)) 
}

for (x in 1..size-1) { 
    //.. 
} 
for (x in 1 until size) {
     //.. 
}

 

 

 

참고 블로그 : 

tourspace.tistory.com/category/%EA%B0%9C%EB%B0%9C%EC%9D%B4%EC%95%BC%EA%B8%B0/Kotlin

 

 

developer.android.com/courses/kotlin-bootcamp/overview

 

728x90
반응형

'Kotlin' 카테고리의 다른 글

코틀린 AsyncTask를 이용한 okHttp 통신  (0) 2018.10.12
코틀린 okHttp 통신하기  (0) 2018.10.12
코틀린 Intent 인텐트  (0) 2018.09.27
코틀린 editText 값가지고 오기  (0) 2018.09.27
코틀린 Toast 토스트  (0) 2018.09.27