코트카타
26) 음양 더하기
나의 풀이
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
for(int i=0;i<absolutes.length;i++){
if(signs[i] == false){
absolutes[i] = absolutes[i] * -1;
}
answer += absolutes[i];
}
return answer;
}
}
다른 분의 풀이
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
for (int i=0; i<signs.length; i++)
answer += absolutes[i] * (signs[i]? 1: -1);
return answer;
}
}
삼항 연산자를 사용하셨다.
그래서 더 깔끔해 보인다.
김영한의 실전 자바 - 기본편
- Model3Car 를 생성
- driver.setCar(model3Car)를 호출해서
Driver의 Car car 필드가 Model3Car 의 인스턴스를 참조하도록 변경
- driver.drive()를 호출하면 x002을 참조
car 필드가 Car타입이므로 Car 타입을 찾아서 실행
하지만 메서드 오버라이딩에 의해 Model3Car 의 기능이 호출된다.
OCP(Open-Closed Principle) 원칙
좋은 객체 지향 설계 원칙 중 하나
Open for extension: 새로운 기능의 추가나 변경 사항이 생겼을 때, 기존 코드는 확장할 수 있어야 한다.
Closed for modification: 기존의 코드는 수정되지 않아야 한다.
전략 패턴(Strategy Pattern)
디자인 패턴 중에 가장 중요한 패턴을 하나 뽑으라고 하면 전략 패턴을 뽑을 수 있다.
전략 패턴은 알고리즘을 클라이언트 코드의 변경 없이 쉽게 교체할 수 있다.
방금 설명한 코드가 바로 전략 패턴을 사용한 코드이다.
Car 인터페이스가 바로 전략을 정의하는 인터페이스가 되고, 각각의 차량이 전략의 구체적인 구현이 된다.
그리고 전략을 클라이언트 코드(`Driver` )의 변경 없이 손쉽게 교체할 수 있다.
김영한의 실전 자바 - 중급1편
obj.sound() 호출
obj.sound() 를 호출한다.
obj 는 Object 타입이므로 Object 타입에서 sound() 를 찾는다.
Object 에서 sound() 를 찾을 수 없다.
Object 는 최종 부모이므로 더는 올라가서 찾을 수 없다.
따라서 오류가 발생한다.
Dog 인스턴스의 sound() 를 호출하려면 다음과 같이 다운캐스팅을 해야한다.
if (obj instanceof Dog dog) {
dog.sound();
}
Object obj 의 참조값을 Dog dog로 다운캐스팅 하면서 전달한다.
dog.sound() 를 호출하면 Dog 타입에서 sound() 를 찾아서 호출한다.
'CODING > 스파르타 내일배움캠프 TIL' 카테고리의 다른 글
키오스크 개인과제 관련 트러블슈팅 TIL 모음 (0) | 2025.01.17 |
---|---|
25_핸드폰 번호 가리기_도전과제 레벨 6-1 구현_자바 강의 String_25.1.16(목) (1) | 2025.01.16 |
23_나누어 떨어지는 숫자 배열_키오스크 필수과제 레벨 3,4,5 구현_계산기 과제 피드백 내용_25.1.14(화) (0) | 2025.01.14 |
22_서울에서 김서방 찾기_키오스크 필수과제 레벨 1,2 구현_객체지향 강의_25.1.13(월) (0) | 2025.01.13 |
21_콜라츠 추측_계산기 과제 해설_25.1.10(금) (0) | 2025.01.10 |