WEB/자격증
객체지향 프로그래밍(OOP, Object Oreiented Programming)
hwahaha
2023. 10. 25. 11:47
개념 | 객체들의 집합으로 프로그램의 상호 작용을 표현 및 데이터를 객체로 취급하고 객체 내부에 선언된 메서드를 활용하는 방식 설계에 많은 시간이 소요되며 처리 속도가 다른 프로그래밍 패러다임에 비해 상대적으로 느림 |
객체 지향의 특징 ..
추상화(abstraction) | 복잡한 시스템으로 부터 핵심적인 개념 또는 기능의 특징을 뽑아내거나 간추려 내는 것 |
캡슐화(encapsulation) | 객체의 속성과 메서드를 하나로 묶고 일부를 외붸 감추어 은닉하는 것 |
상속성(inheritance) | 상위 클래스의 특성을 하위 클래스가 이어받아서 재사용하거나 추가, 확장하는 것 |
다형성(poldmymorphism) | 하나의 메서드나 클래스가 다양한 방법으로 동작하는 것, 오버라이딩, 오버로딩 |
다형성의 예시 ..
오버로딩 | 같은 이름을 가진 메서드를 여러 개 두는 것, 메서드의 타입, 매개변수의 유형, 개수 등으로 같은 이름의 메서드를 여러개로 가질수 있음(컴파일 중 발생하는 정적 다형성) |
오버라이딩 | 상위 클래스로 부터 상속받은 메서드를 하위 클래스가 재정의 하는 것(런타임 중 발생하는 동적 다형성) |
객체지향의 설계 원칙(SOLID) ..
Single Responsibility Principle | 모든 클래스는 각각 하나의 책임만 가져야하는 원칙 |
Open Closed Principle | 기존의 코드 수정에는 폐쇄, 확장에는 개방된 원칙 |
Liskov Subsitution Principle | 부모 객체에 자식 객체를 넣어도 시스템이 문제없이 작동하는 원칙 |
Interface Segregation Principle | 하나의 일반적인 인터페이스 보다 여러개의 구체적인 인터페이스를 만들어야하는 원칙 |
Depencency Inversion Principle | 상위 계층은 하위 계층의 변화에 대한 구현으로 부터 독립 |