객체 지향 프로그래밍(OOP)이란?

강민범·2024년 2월 28일
0

면접을 보면서 나온 질문 중 하나인데 자바를 하는 사람이라면 기본중에 기본으로 알아야 하는 지식도 제대로 말을 못하면서 어떻게 더 심화된 지식을 이해 할 수 있을까라는 생각이 들정도로 다시 되돌아 볼 수 있는 고마운 면접이였다.

객체 지향 프로그래밍이란?

프로그래밍에서 필요한 데이터를 추상화시켜 행위와 상태를 가진 객체로 만들고, 이러한 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 방법

장점

  1. 코드 재사용성 용이
    • 다른 사람의 클래스를 사용하거나 상속을 통해 확장할 수 있음
  2. 유지보수가 쉽다.
    • 클래스 내부의 멤버 변수 또는 메서드로 존재하기 때문에 이 부분만 확인하면됨.
  3. 대형 프로젝트에 적합하다.
    • 클래스 별로 모듈화하기 때문에 개인마다 역할을 분담하기 쉽다.

단점

  1. 속도가 상대적으로 느리다.
  2. 객체가 많아질수록 성능이 저하된다.
  3. 설계시 많은 시간과 노력이 필요하다.

객체 지향 프로그래밍 키워드 5가지

클래스 + 인스턴스

클래스는 집단의 속성, 행위를 변수 또는 메서드로 정의하고
인스턴스는 클래스에서 정의한 것을 토대로 메모리에 할당된 것(객체)

캡슐화

캡슐화는 코드의 중복을 피할 수 있고, 객체의 속성과 행위를 메서드로 묶어, 실제 구현 내용 일부를 외부에 감추어 은닉한다.

상속

부모 클래스의 변수, 메서드를 자식 클래스에서 되물림 받아 사용할 수 있다.

추상화

공통의 속성이나 기능을 묶어 이름을 붙히는 것. 핵심은 불필요한 코드를 줄이고 중요한 부분을 살리는 것 입니다.
예를 들면 for, do-while, while 등이 있습니다.

다형성

다형성이란 하나의 객체에 여러가지 타입을 대입할 수 있는 것을 말합니다.
예를 들면 오버라이딩오버로딩이 있습니다.

오버라이딩

오버라이딩이란 하위 클래스에서 상위 클래스를 상속받아 메서드를 재정의 하는 것을 말합니다. 메서드의 이름, 매개변수의 개수, 순서, 형식과 리턴 값은 같지만 자신의 상황에 맞게 메서드를 재정의 하는 것을 말합니다.

오버로딩
오버로딩이란 클래스 내부에서 메서드의 이름은 같고 매개변수의 개수, 타입이 달라야합니다.

profile
개발자 성장일기

0개의 댓글