class Car (var engine: String, var body: String){
...
}
class Car constructor(var engine: String, var body: String){
...
}
class SuperCar{
var engine : String
var body : String
var door : String
constructor(engine: String, body: String, door: String){
this.engine = engine
this.body = body
this.door = door
}
}
단, 주생성자나 부생성자를 모두 선언해주지 않으면 컴파일러가 기본으로 인자가 없는 생성자를 만들어준다.
class Car(engine: String, body: String){
var door: String
constructor(engine: String, body:String, door: String) : this(engine, body){
this.door = door
}
}
class Car{
var engine: String = ""
var body: String = ""
var door: String = ""
constructor(engine: String, body: String){
this.engine = engine
this.body = body
}
constructor(engine: String, body: String, door: String){
this.engine = engine
this.body = body
this.door = door
}
}
fun main(array: Array<String>){
// 인스턴스화해서 변수에 담아줌
val bigCar: Car = Car("v9 engine", "big")
val superCar: SuperCar = SuperCar("good engine", "big", "white")
}
// 이렇게 작성한 class에는 멤버변수가 없음
class RunnableCar(engine: String, body: String){
fun ride(){
println("탑승하였습니다.")
}
fun drive(){
println("달립니다.")
}
fun navi(destination: String){
println("$destination 으로 목적지가 설정되었습니다.")
}
}
fun main(array: Array<String>){
val runnableCar: RunnableCar = RunnableCar("simple engine", "small")
runnableCar.ride()
runnableCar.navi("부산")
runnableCar.drive()
}
class RunnableCar(engine: String, body: String){
init{
...
}
fun ride(){
println("탑승하였습니다.")
}
fun drive(){
println("달립니다.")
}
fun navi(destination: String){
println("$destination 으로 목적지가 설정되었습니다.")
}
}
class TestClass{
// 파라미터의 개수를 다르게 해서 구분하도록 한다.
fun test(a: Int){
...
}
fun test(a: Int, b: Int){
...
}
}