본문 바로가기

OOP

Private

Q : 엔진의 기어 단수를 관리하는 입장에서 알 필요가 없다. 내부에서 쓰이는 변수 어떻게 숨길 수 있나요?

A : Private 정보 은닉

main에서 알 필요 없는 정보 숨김

abstract class Bus(val licensePlate: String) {

    private var engineGear:Int = 0

    var departure = "서울"
    var arrive = "부산"

    fun engineStart(){
        engineGear++
        println("부릉부릉")
        println("$licensePlate 차량이 엔진을 켰습니다.")
    }

    open fun departure(){
        println("출발합니다.")
        println("${departure}에서 ${arrive}로 출발합니다.")
    }

}

class CityBus(licensePlate: String, val routeNumber: String) : com.example.oop.main5.Bus(licensePlate),
    ParkingAvailable {
    val stop1 = "신림역"
    val stop2 = "신도림역"
    val stop3 = "홍대입구역"

    override fun departure() {
        super.departure()
        println("이것은 시내버스입니다.")
        println("정차 정류장은 $stop1 - $stop2 - $stop3")
    }

}

fun main(){

    val cityBus = CityBus("가가 1234", "109")
    println(cityBus.engineGear) //사용 불가능

}

 

 

 

'OOP' 카테고리의 다른 글

예외(Exception)  (0) 2023.12.22
디자인 패턴  (0) 2023.08.25
OOP 정리  (0) 2023.08.25
업 캐스팅, 다운 캐스팅  (0) 2023.08.11
객체 지향 프로그램 (OOP)  (1) 2023.08.07