Kotlin
클래스
`Kotlin` 클래스의 선언은 클래스 이름을 포함하여 매개변수, 생성자, 그리고 중괄호로 묶인 본문으로 구성됨
간단 예제
class Person{
var name: String = "Yoonsoo"
var age: Int = "15"
var country: String = "South Korea"
var height: Int = 150
var weight: Int = 30
fun sayHello(){
println("Hi")
}
fun introduce(){
println("I'm $name and my age is $age.")
}
}
생성자
`Kotlin`의 생성자는 아래와 같은 형식으로 구성이 가능하다.
class PersonWithConstructor constructor(private val name: String, private val age: Int){ // 주 생성자
constructor(name: String) : this(name, 15) // 부 생성자
constructor(name: String, age: Int, etc: String) : this(name, age){ // 추가 생성자
println("additional constructor is called : $etc")
}
fun sayHello(){
println("Hi")
}
fun introduce(){
println("I'm $name and my age is $age.")
}
}
실습
ClassSample
`main()` 함수가 존재한다.
package classes
fun main() {
val aMan = Person()
aMan.sayHello()
aMan.introduce()
aMan.age = 55
println("sorry, my real age is ${aMan.age}")
println("=========================================")
val tim = PersonWithConstructor("Tim", 150)
val poter = PersonWithConstructor("Poter")
val harry = PersonWithConstructor(name = "harry", age = 25, etc = "추가값")
poter.sayHello()
poter.introduce()
tim.sayHello()
tim.introduce()
harry.sayHello()
harry.introduce()
}
Person
package classes
class Person {
var name: String = "Yoonsoo"
var age: Int = 15
var country: String = "South Korea"
var height: Int = 150
var weight: Int = 30
fun sayHello() {
println("Hi!")
}
fun introduce() {
println("I'm $name and my age is $age.")
}
}
PersonWithConstructor
package classes
class PersonWithConstructor constructor(private val name: String, private val age: Int) { // 주 생성자
private var etc: String = "no value"
init {
println("initializer block : $etc")
}
constructor(name: String) : this(name, 15) // 부 생성자
constructor(name: String, age: Int, etc: String) : this(name, age) { // 추가 생성자
this.etc = etc
println("additional constructor is called : ${this.etc}")
}
fun sayHello() {
println("Hi!")
}
fun introduce() {
println("I'm $name and my age is $age.")
}
}
`init` 메소드는 말 그대로 최초 초기화를 위해 사용되는 코드이다.
그리고 `constructor`는 클래스 이름의 옆에도 지정이 가능하고 추가로 부 생성자도 호출이 가능하다.
'Language > Kotlin' 카테고리의 다른 글
[Kotlin] Enum Class & Data Class (0) | 2024.09.03 |
---|---|
[Kotlin] 상속 (0) | 2024.09.03 |
[Kotlin] 함수 (0) | 2024.09.02 |
[Kotlin] 조건문과 반복문 (0) | 2024.09.02 |
[Kotlin] 연산자 (0) | 2024.09.02 |