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 |