면접준비
객체지향프로그래밍이란?
썩은피망
2024. 6. 27. 05:12
반응형
객체지향프로그래밍 (Object-Oriented-Programing)
추상화, 캡슐화, 상속성, 다형성 4가지 개념을 갖고 있는 프로그래밍 방식으로 공통된 구조를 추상화시켜 분리하고 그렇게 분리된 객체들 간의 유기적인 상호작용을 통해 프로그램을 구현합니다. 불필요한 중복 코드를 줄이고 재사용하면서 코드의 가독성과 유지보수를 중요시하게 됩니다.
객체지향프로그래밍의 장점과 단점!
장점
- 공통된 구조를 상위 클래스로 추상화하고 이를 하위 클래스로 확장하여 사용합니다. 이를 통해 불필요한 중복 코드를 줄일 수 있어 코드의 가독성을 높일 수 있습니다.
- 코드를 수정해야할 때 일일이 수정할 필요없이 상위 클래스를 수정하여 이를 상속받는 하위 클래스들을 한번에 수정하는 등, 유지보수에 용이합니다.
- 객체들을 분리해서 관리하는 만큼, 대형 프로젝트에 여러 개발자들이 협업하기 용이한 형태를 갖고 있습니다.
단점
- 구현하는데 절차지향프로그래밍보다 더 많은 시간과 노력을 필요로 합니다.
- 처리 속도가 절차지향프로그래밍보다 비교적 느립니다.
추상화에 대해 설명하세요.
객체들의 공통된 구조를 상위 클래스로 분리하고 이를 하위 클래스로 확장하여 중복되는 코드를 줄이는 것을 말합니다. 이는 가독성을 높이고 유지보수를 용이하게 합니다.
- virtual 가상 클래스
- 하위 클래스에서 override를 통해 재정의가 가능합니다. 이는 필수가 아니기에 선택적으로 수행할 수 있습니다.
- abstract 추상 클래스
- 추상 메서드와 일반 메서드 모두를 포함할 수 있습니다. 추상 메서드는 선언만 하고 기능은 상속받은 하위 클래스에서 구현해야만 합니다.
- interface 인터페이스
- 추상 메서드만 사용 가능합니다. 복잡한 구조의 틀을 만들어놓는 등의 목적으로 사용하게 됩니다. virtual과 abstract와 달리 다중상속이 가능합니다.
캡슐화에 대해 설명하세요.
연관된 속성과 기능을 하나의 그룹으로 묶는 것을 말합니다. 외부로부터의 접근을 제한하여 데이터를 은닉하는 효과를 갖고 있습니다.
상속성에 대해 설명하세요.
추상화된 상위 클래스를 하위 클래스로 확장하여 사용하는 것을 말합니다.
다형성에 대해 설명하세요.
같은 메서드라도 다양한 동작을 하도록 구현하는 것을 말합니다.
- 오버로딩
- 매개변수의 개수나 타입에 따라 다른 동작을 할 수 있도록 구현하는 것을 말합니다.
- 오버라이딩
- 상속받은 하위 클래스에서 재정의를 통해 새로운 기능을 하도록 구현하는 것을 말합니다.
위 내용은 어디까지나 개인 학습 중, 정리한 내용이기 때문에 잘못된 내용이 있을 수 있습니다.
부족한 설명이나 잘못된 내용에 대한 지적은 언제나 환영입니다.
반응형