OOP의 4대 기본 원칙추상화 (Abstraction)캡슐화 (Encapsulation)*정보 은닉 (Information Hiding)*응집도 (Cohesion)*결합도 (Coupling)상속성, 재사용 (Inheritance)*상속 (extends)*인터페이스 (implements)다형성 (Polymorphism)🔖 참고 사이트
OOP의 4대 기본 원칙
- 4대 원칙
- 추상화
- 캡슐화
- 응집도
- 결합도
- 4가지 원칙으로 인한 OOP의 장점은
- 프로그램을 유연하고 변경이 용이하게 만들기
- 개발과 보수를 편하게 만들기
- 직관적인 코드 분석 등
추상화 (Abstraction)
추상화는 객체들이 가진 공통의 특성들을 파악하고 속성, 기능을 묶어 이름을 붙이는 것입니다.
캡슐화 (Encapsulation)
- 접근 제어자을 사용해서 객체 외부에서 내부 데이터의 접근을 통제하는 것
- public : 프로그램 어디에서나 해당 객체에 직접 접근할 수 있다.
- protected : 이 접근 제어자 멤버에 접근할 수 있는 목록은 아래와 같다.
- 선언한 클래스의 멤버
- 선언한 클래스가 속한 클래스의 멤버
- 선언한 클래스를 상속 받은 자식 클래스의 멤버
- default
- private : 외부에 공개되지 않으며 외부에서 접근할 수 없다.
*접근 제어자 종류
- 캡슐화는 정보 은닉을 통해 높은 응집도, 낮은 결합도를 유지할 수 있도록 해주는 객체지향 설계 원리이다.
*정보 은닉 (Information Hiding)
외부에서 객체 접근하는데 있어 정보를 숨기고 객체의 연산을 통해서만 접근이 가능하도록 하는 것
*응집도 (Cohesion)
- 클래스나 모듈 안의 요소들이 얼마나 밀접하게 관련되어 있는지를 나타낸다.
- 객체지향 관점에서 응집도는 객체 또는 클래스에 얼마나 관련 높은 책임을 할당했는지를 나타낸다.
- 모듈 내의 요소들이 하나의 목적을 위해 긴밀하게 협력한다면 그 모듈은 높은 응집도를 가진다.
*결합도 (Coupling)
- 어떤 기능을 실행하는 데 다른 클래스나 모듈들에 얼마나 의존적인지를 나타낸다.
상속성, 재사용 (Inheritance)
- 상위 개념의 특징을 하위 개념이 물려받는 것
- 상위 클래스를 하위 클래스에서 상속 받게 되면 상위 클래스의 멤버변수나 메소드를 그대로 물려 받을 수 있다.
- 상속이 있기 때문에 코드를 재활용 가능 → 생산성과 유지보수성이 높아진다.
*상속 (extends)
- 하위 클래스는 상위 클래스 특성을 재사용하고, 확장한다.
*인터페이스 (implements)
- 어떤 객체가 해야 할일을 정의하는 추상 자료형
- 다중 상속 가능
다형성 (Polymorphism)
다형성은 동일한 역할을 수행하는 객체들이 동일한 메시지에 대해 서로 다른 방식으로 반응하는 것을 의미
오버라이딩 (Overriding)
같은 메서드 이름 / 같은 인자 목록 / 상위 클래스의 메서드를 재정의
상위 클래스 타입의 객체 참조 변수에서 자동으로 하위 클래스가 오버라이딩한 메서드를 호출
class Parent { public void printWhoIAm() { System.out.println("parent"); } } class Child extends Parent { @Override public void printWhoIAm() { System.out.println("child"); } } Parent who = new Child(); who.printWhoIAm(); // ✨ child 출력
오버로딩 (Overloading)
같은 메서드 이름 / 다른 인자 목록 / 다수의 메서드 중복을 정의
class Example { public int add(int a, int b) { return a + b; } public int add(int a, int n, int c) { return a + b + c; } ... }