본문 바로가기

내일배움캠프 4기 스프링/내배캠 TIL📘

11. 21 객체 지향 프로그래밍/ JAVA 기초 복습

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