Object Oriented Programming의 줄임말
객체 지향 프로그래밍은 현실 세계의 사물을 객체라고 보고 그 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징을 뽑아와서 프로그래밍 하는 것이다.
->추상화
코드 재활용하는 것을 목적으로 한다.
클래스라는 캡슐에 기능과 특성을 담는다.
클래스로부터 즉, 부모로부터 속성과 메서드를 물려받는다.
다른 클래스를 가져와 사용할 때, 그 클래스를 직접 수정하는 대신 상속을 받아 변경하고자 하는 부분만 변경하면 된다.
불필요한 정보 외 중요한 정보만 표현함으로써 공통의 속성과 기능을 묶어 이름을 붙이는 것이다.
하나의 변수명이나 함수명이 상황에 따라 다르게 해석될 수 있다.
오버 라이딩,오버로딩
단일 책임 원칙
클래스는 단 하나의 책임을 가지고, 그에 대한 책임을 져야 한다.
개방-폐쇄 원칙
확장에는 열려있어야 하고, 변경에는 닫혀 있어야 한다.
-> 즉, 클래스를 상속하여 수정한다.
리스 코프 치환 원칙
상위 타입의 객체를 하위 타입의 객체로 지환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.
-> 즉, 자식 클래스를 사용중일 때, 거기에 부모 클래스로 치환하여도 문제가 없어야 한다.
인터페이스 분리 원칙
각 행위에 대한 인터페이스는 서로 분리되어야 한다.
의존 역전 원칙
상위 클래스가 하위 클래스에 의존하면 안 된다는 법칙