객체 지향 프로그래밍은
소프트웨어 개발에서 사용되는 프로그래밍 패러다임 중 하나로,
다양한 객체들이 협력하여 하나의 애플리케이션으로 동작하는 프로그래밍 방법입니다.
장점
상대 객체의 세부 정보를 알 필요 없이
그저 객체에 무언가를 요청만 하면 된다는 점이 있습니다.
핵심 개념
클래스와 객체
클래스 == 객체를 생성하기 위한 템플릿입니다.
객체 == 클래스의 인스턴스, 데이터와 해당 데이터를 처리하기 위한 메서드를 포함합니다.
추상화
객체의 공통적인 속성과 기능을 추출하여 정의를 해 둔 것입니다.
자동차와 오토바이라는 클래스가 있으면
그 클래스들의 공통적인 부분은 전진과 후진,.. 등으로 볼 수 있다.
이때 이 공통적인 부분을 가진 추상 클래스 또는 인터페이스를 만들어서 사용을 할 수 있다.
상속
상속 ==
하위 클래스가 상위 클래스의 특성과, 메서드를 상속받는 개념입니다..
상속을 사용하면 코드의 재사용성을 높일 수 있습니다.
위의 추상화 부분에서 만들어진 추상클래스, 인터페이스의 기능들을
사용할 클래스에 extends, implements를 사용해서 상속을 받을 수 있다.
이렇게 하면 각 클래스에서 추상클래스, 인터페이스의 기능들을 사용할 수 있게 된다.
다형성
같은 이름의 메서드가 다양한 형태로 작동할 수 있는 능력입니다.
상위 클래스에 정의된 메서드가 하위 클래스에서 다르게 구현될 수 있습니다.
이를 통해 유연하고 확장 가능한 코드를 작성할 수 있고,
새로운 기능을 쉽게 추가할 수 있습니다.
공통적인 부분을 상속받은 자동차, 오토바이에서
상위클래스의 메서드를 사용할 수 있는데
이를 각 클래스에서 상위클래스의 메서드를 가지고 내용을 바꿀 수 있다.
or
메서드를 정의를 할 때 매개변수가 중복이 되지 않으면 메서드의 이름은
중복이 되어도 문제가 없다.
캡슐화
객체의 데이터와 메서드를 하나로 묶는 개념입니다.
이를 통해 데이터를 보호할 수 있습니다.
해당 클래스의 필드들을 외부에서 건드리지 못하게 private으로
해당 클래스 내에서만 사용이 가능하게 막아둘 수 있다.
외부에서 사용할 일이 있으면 public으로 메서드를 만들어서 사용이 가능하다.
5대 원칙
SOLID
SRP(단일 책임 원칙)
한 클래스에는 한 책임만 있어야 하는 원칙입니다.
OCP(개방 폐쇠 원칙)
자신의 확장에는 열여있어야하고 주변의 변화에 대해서는 닫혀있어야하는 원칙입니다.
LSP(리스코프 치환 원칙)
자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다.
ISP(인터페이스 분리 원칙)
인터페이스를 클라이언트에 특화되도록 분리시키라는 설계 원칙
DIS(의존 역전 원칙)
추상 클래스 또는 상위 클래스는 구체적인 구현체 또는 하위 클래스에 의존하면 안 된다는 원칙입니다.
'Java' 카테고리의 다른 글
(Java) OAuth (0) | 2024.09.09 |
---|---|
Getter, Setter 어노테이션 (0) | 2024.08.29 |
Rest, API, Restful API 간단 (0) | 2024.08.28 |
Java 관심사 분리(SOC), 관점 지향 프로그래밍(AOP) 간단하게 (0) | 2024.08.28 |
Java Spring, 객체 지향 프로그래밍 (7) | 2024.08.27 |