🎨 Programming/Android(Kotlin)

[Kotlin] 7. 클래스 (Class)

ryang x2 2020. 12. 1. 02:27
728x90
반응형

# Class 

● 절차지향 프로그래밍 

코드를 위해서 아래로 실행하면서 진행한다.

 

● 객체지향 프로그래밍

객체를 만들어 객체에 데이터를 저장하고 일을 하게 만든다.

객체는 설명서(Class)가 꼭 있어야 한다.

 

● 클래스 만드는 방법 

 

예시 1)

class Car constructor(var engine: String, var body: String){ // 필드가 두개가 존재한다.

}

fun main(array: Array<String>){
    // 1. 객체(인스턴스) 생성 방법
    var myCar = Car("V8 engine", "pretty")
    // 2. 객체(인스턴스) 생성 방법
    var bigCar: Car = Car("V8 engine", "pretty")
}

 

예시 2) 자바 형식으로도 만들 수 있다. ( 명확한 형식)

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
    }
}

fun main(array: Array<String>){
    var superCar: SuperCar = SuperCar("good engine", "fast", "4door")
}

 

예시 3) 예시 1의 확장

class Car1 constructor(engine: String, body: String){
    var door: String = "" // 넣어도되고 안넣어도됨

    constructor(engine: String, body: String, door: String) : this(engine, body){
        this.door = door
    }
}

 

예시 4) 예시 2의 확장

class Car2{
    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
    }
}

 

예시 5) 메소드를 추가하는 방법

class RunableCar(engine: String, body: String){
    fun go(){
        println("앞으로 갑니다.")
    }
    fun navi(destination: String){
        println("$destination 으로 목적지가 설정되었습니다.")
    }
}

fun main(array: Array<String>){
    var runableCar1: RunableCar = RunableCar("simple engine", "short body")
    runableCar1.go()
    runableCar1.navi("부산")
}

 

예시 6) 

class RunableCar2 {
    var engine: String
    var body: String

    constructor(engine: String, body: String){
        this.engine = engine
        this.body = body
    }

//   객체가 생성될 경우 가장 먼저 실행되는 것이다.
    init{
        println("자동차 검사를 실행합니다.")
    }

    fun go(){
        println("앞으로 갑니다.")
    }
    fun navi(destination: String){
        println("$destination 으로 목적지가 설정되었습니다.")
    }
}

fun main(array: Array<String>){
    var runableCar2: RunableCar2 = RunableCar2("nice engine", "long body")
    println(runableCar2.engine)
    println(runableCar2.body)
}

 

예시 7) 메소드 오버로딩 

class Student(){
    fun regist(userid: String){
        println("$userid 학생")
    }
    fun regist(userid: String, name: String){
        println("$name 학생")        
    }
}

fun main(array: Array<String>){
    val student1 = Student()
    student1.regist("apple")
    student1.regist("banana", "반하나")
}

 

 

 

 

 

 

728x90
반응형