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 상위 계층은 하위 계층의 변화에 대한 구현으로 부터 독립