반응형
상 위 | 자동차 | 차이름 | 색상 | 제조사 | 속도 |
감속( ) | 감속 ( ) | 정지( ) |
하 위 | 택시(Taxi) | 버스(Bus) | 트럭(Truck) |
요금(price) | 승객수(pcount) | 중량(weight) | |
총중량(maxWeight) | |||
---------------------------------------------------------------------------------------------------- | |||
요금계산( ) | 타다 ( ) | 상차 ( ) | |
calcPrice(int km) | getOn(int pcount) | loadUp(int weight) | |
내리다( ) | 하차 ( ) | ||
getOut(int pcount) | loadDown(int weight) |
50으로 달릴 때의 speed
speed가 150이 넘으면 속도를 제한하고 싶다.
Taxi)
TaxiGuest)
Object의 method를 쓸 수 있다.
Car 클래스에서 info 메소드를 고치고 싶음.
//에러남. 상위 Object 랑 overriding을 하고 싶은데 Object의 메소드는 public인데 왜 넌 아니냐! 더 넓은거로만가능
override할때는 위에 @Override를 써주는 것이 좋음. 또한 메소드 이름을 꼭 맞춰야함.
이제 t1.info()이렇게 하지 않고 그냥 t1해도 됨.
택시라고도 만들고 싶음
Taxi에서 또 오버라이딩
toString에 택시만 덫붙임
결과 :
TaxiGuest에 t3을 만든다.
>>다른 차로 나옴.
비교연산자 ==는 값을 비교한다. 내용이 같을 뿐 값이 같지는 않다.
Object의 hashcode() 메소드를 써서 값을 비교해본다.
//==비교연산자 는 기본DT(숫자,문자 등)일 경우에 값을 비교하지만 참조형DT(object)일 경우는 주소값 비
따라서 t2와 t3은 주소값이 다른 차이다.
근데 차 이름이 같으면 같게 하고 싶다면?
Object method 중 equals 사용
>아직도 다른차라고 나온다.
Object의 equals도 주소값 비교하기 때문.
Car에서 Object의 equals를 Car에게 맞게 형변환해야한다.
결과 ) 차이름이 같다고 나온다.
Object 비교는 ==보다 equal를 하는 것이 좋다.
[출처] 빡쏘끼룩
반응형
'IT > JAVA' 카테고리의 다른 글
[Java]상속(inheritance)- Button,Frame 만들기 (0) | 2020.07.23 |
---|---|
[Java]상속 (inheritance) - 다형성 (0) | 2020.07.22 |
[Java]택시요금 code (0) | 2020.07.20 |
[Java]상속 (inheritance)/overriding(재정의)/super (0) | 2020.07.18 |
[Java]스타크래프트 마린 만들기/call by reference, call by value (0) | 2020.07.17 |