336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
......뭐지
발행한 게시물의 내용이 삭제되어 있었음 ㅠㅠ OTL
이 글은 초보자를 위한 Kotlin 예제 200 을 참고하였습니다.
더욱 자세한 설명은 직접 책을 구매해서 확인하세요~
1. 함수 간단히 쓰기
fun function() : Double{
return 3.0 + 7
}
//위와같이 문장이 하나뿐인 블록은 =를 사용하여 줄여쓸 수 있다.
fun function() : Double = 3.0 +7
//3.0+7이라는 값은 Double타입을 추론해 낼 수 있으므로(!) 반환타입을 생략 가능
fun function() = 3.0 + 7
2. void와 대응하는 Unit
fun celsiusToFah(celsius:Int) : Unit {
println(celsius * 1.8 +32)
}
//반환값이 없을 때 함수의 반환타입으로 'Unit'을 사용하는데 이는 생략이 가능하다.
//함수의 반환타입을 생략하면 자동으로 Unit이 되고 문제없이 컴파일된다.
//자바의 void에 대응하는 개념이라고 생각하면 된다.
3. Object
fun main(args:Array<String>){
val person = object{
val name : String ='홍길동'
val age : Int = 30
}
println(person.name)
println(person.age)
}
4. 클래스에 내장된 함수 '멤버함수'
class Building{
var name = ""
var date = ""
fun print(){
println(this.name)
println(this.date)
}
}
//Building 클래스 안에 print 함수가 내장되어 있는데 이렇게 클래스에 내장된 함수를 멤버함수라고 부른다
5. 상속클래스에 'open'
//open키워드를 사용해 Person 클래스를 다른 클래스에서 상속할 수 있다.
//즉 open은 해당 클래스의 상속을 허용해준다는 의미
//코틀리은 자바와 달리 클래스 선언이 기본적으로 final로 되어있다(상속에 폐쇠적이다)
//따라서 상속을 위해서는 'open' 키워드를 작성해줘야 한다.
open class Person(val name:String,val age:Int)
class Student(val name:String,val age:Int,val grade:Int) : Person(name,age)
//Person 클래스를 상속하여 새로운 Student 클래스를 정의했다.
6. 오버라이딩
자바에서는 오버라이딩 시 @Override 어노테이션을 붙이지만, 코틀린에서는 override 키워드를 붙인다
프로퍼티도 오버라이딩이 가능하다.
open class AAA{ // open키워드를 사용하여 상속허용
open var number = 10 //number 프로퍼티도 상속허용
get() { println("AAA GET함수") return field }
set(value) { println("AAA SET함수") field = value }
}
class BBB : AAA(){ //AAA클래스를 상속받음
override var number : Int
get() { println("BBB GET함수") return super.number }
set(value) { println("BBB SET함수") super.number = value }
}
fun main(args:Array<String>){
val test = BBB()
test.number = 5
test.number
}
//실행결과
BBB SET함수
AAA SET함수
BBB GET함수
AAA SET함수
7. Any클래스
모든 코틀린 클래스는 Any클래스를 상속한다.
Any클래스에는 세가지 멤버함수가 있다.
equals : ==연산자를 오버로딩 하는 함수
hashCode : 객체 고유의 해시코드를 반환하는 함수
toString : 객체 내용을 String 타입으로 반환하는 멤버함수
8. 엘비스연산자 ?:
//엘비스연산자는 왼쪽의 피연산자가 null이 아니면 그 값을 그대로 쓰지만, null이라면 우측의
//피연산자를 대입하는 연산자다.
var number :Int? = null
println(number ?: 0)
//number에 null이 지정되어 있으므로 출력값은 0 이 된다.
9. 확장함수
정리가 잘 되어있어서 해당 포스팅에서 참고!
https://tourspace.tistory.com/104
10. 객체선언 Object, 싱글톤
object Person // object 선언!
{
var name: String = ""
var age: Int = 0
fun print()
{
println(name)
println(age)
}
}
fun main(args: Array<String>)
{
Person.name = "Singleton"
Person.age = 45
Person.print()
}
프로그램 전체에서 공유할 수 있는 하나뿐인 객체가 필요할 때 위처럼 사용할 수 있다.
object 키워드 덕에 자바에서 작성해야만 했던 싱글톤 패턴 코드를 더 이상 쓰지 않아도 되게 되었다.
그저 일반 클래스를 선언하듯이 프로그램 전체에서 단 하나만 존재하는 객체를 편하게 만들 수 있다.
'Language > Kotlin' 카테고리의 다른 글
Kotlin(코틀린) 개념잡자! 문법 및 사용법 정리(3) (0) | 2020.01.03 |
---|---|
Kotlin(코틀린) 개념잡자! 문법 및 사용법 정리(1) (2) | 2019.10.30 |