728x90
1. 객체 지향 프로그래밍
다형성 - 클라이언트를 변경하지 않고, 내부 기능을 변경할 수 있다.
코드:
// status의 기능을 변경하고 싶다.
// status를 "off" 값을 반환한다.
class Plug {
public void on() {}
public void off() {}
}
interface InternetOfThings {
String status();
}
class SmartPlug extends Plug implements InternetOfThings {
public String status() {
```
```
return "ok";
}
}
class OffPlug extends Plug implements InternetOfThings {
public String Status() {
return "off";
}
}
SmartPug sp = new SmartPlug();
sp.on();
sp.off();
OffPlug op = new OffPlug();
Plug p = sp;
p.on();
p.stop();
InternetOfThings iot = sp; -> InternetOfThings iot = op
iot.status(); // sp -> ok, op -> off
SOLID 원칙
-> 한 클래스는 하나의 책임을 가진다.
-> 책임의 기준은 "변경"이다.
-> 변경의 이유는 하나만 인정된다. ex)결제버튼의 위치변경
SRP = 단일 책임 원칙
OCP = 개방/폐쇄 원칙
LSP = 리스코프 치환 원칙
ISP = 인터페이스 분리 원칙
DIP = 의존관계 역전 원칙
2. JAVA 기초 복습
예외처리
오버라이딩 조건
1. 선언부가 조상 클래스의 메서드와 일치
2. 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
3. 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.
728x90
'내일배움캠프 4기 스프링 > 내배캠 TIL📘' 카테고리의 다른 글
11. 23 미니 프로젝트 두 번째: 메모장 프로그램 작성 (0) | 2022.11.23 |
---|---|
11. 22 객체 지향 프로그래밍/ JAVA (0) | 2022.11.23 |
11. 18 객체 지향 프로그래밍 강의/ CS 강의/ 백문이불여일타(1): 계산기, JAVA (0) | 2022.11.19 |
11. 17 객체 지향 프로그래밍 강의/ JAVA/ 알고리즘 강의 (0) | 2022.11.17 |
11. 16 알고리즘 TIME ATTACK 풀이/ JAVA 기초 강좌 (0) | 2022.11.16 |