코딩을 하면서 함수라는 단어를 많이 접하게 된다. java와 kotlin을 공부하면서 부터 함수를 메서드라고 부른다. 메서드 선언을 하기 전 메서드란 무엇인지 알아보자
fun 함수명(변수명 : 타입, 변수명 : 타입, ... ) : 반환 자료형 {
함수내용
함수내용
...
return 반환값
}
fun PlusNumber(firstNumber : Int = 20, secondNumber : Int = 30) : Int {
val result = firstNumber + secondNumber
return result
}
fun main() {
val sum = PlusNumber(firstNumber = 10)
println(sum) //40
}
위 코드는 firstNumber 값만 넘겨주었지만, secondNumber는 30이라는 기본값이 있기 때문에 40이 출력된다.
fun PlusNumber(firstNumber : Int = 20, secondNumber : Int = 30) = firstNumber + secondNumber
fun main() {
val sum = PlusNumber(firstNumber = 10)
println(sum) //40
}
class 키워드를 통해 클래스를 선언할 수 있습니다.
클래스 이름을 쓰며 일반적으로 파스칼케이스(PascalCase)를 이름 규칙으로 가져갑니다.
클래스 이름 옆에 생성자 키워드 constructor을 넣어 생성자를 선언할 수 있습니다.
기본적인 접근제어자는 public 이며 public으로 사용할 때는 constructor을 생략하고 사용할 수 있습니다.
val 또는 var 키워드를 통해 내부 변수를 선언할 수 있습니다.
객체가 생성될때 초기화 블럭이 실행됩니다.
실행 순서는 위에서 아래로 차례대로 실행되며 init 블럭에서는 해당 블럭보다 위에 선언되어있는 멤버변수, 그리고 생성자 변수만을 사용할 수 있습니다.
클래스의 상태 업데이트 등을 캡슐화하여 사용하기 위해 클래스 내부에 함수를 선언할 수 있습니다.
class 클래스이름 {
정보1
정보2
행위1
행위2
}
data class 클래스이름 {
정보1
정보2
}
sealed class 부모클래스 {
class 자식클래스1 : 부모클래스생성자
class 자식클래스2 : 부모클래스생성자
}
enum class 클래스1 {
C, JAVA, KOTLIN
}
enum class 클래스2(val code: Int) {
C(10),
JAVA(20),
KOTLIN(30)
}
fun main() {
println(클래스1.C.toString()) // 출력: C
println(클래스2.KOTLIN.code) // 출력: 30
println(클래스2.KOTLIN.name) // 출력: KOTLIN
}