본문 바로가기
Tech/Java

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

by mozzi329 2023. 1. 5.
728x90

📌 알림


해당 글은 공부 목적으로 작성한 글입니다.

 

📌 OOP(Object-Oriented Programming)


명령형 프로그래밍 방법론 중 하나로, 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(Object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 프로그래밍 패러다임이다.

 

📌 OOP 특징


1. 캡슐화(Encapsulation)

변수와 함수를 하나의 단위로 묶는 것
캡슐화는 클래스를 통해 구현되고, 해당 클래스의 인스턴스 생성을 통해 클래스 안에 포함된 멤버 변수화 메서드에 쉽게 접근할 수 있다.

2. 추상화(Abstraction)
객체의 공통적인 속성과 기능을 추출하여 정의하는 것
불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화하는 것, 즉 모델화하는 것으로 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념이다. 추상화를 사용하면 코드의 재사용성, 가독성을 높이고, 생산성의 증가, 에러 감소, 유지 보수에 있어 많은 시간을 줄일 수 있다

3. 상속(Inheritance)
자식 클래스가 부모 클래스의 특성과 기능을 그대로 물려받는 것
기능의 일부분을 변경해야 할 경우 자식 클래스에서 상속받은 그 기능만을 수정해서 다시 정의할 수 있는 '오버라이딩(Overriding)'을 지원한다. 오버라이딩을 통해 캡슐화를 유지하면서도 클래스의 재사용을 용이하게 해 준다.

4. 다형성(Polymorphism)
하나의 변수, 또는 함수가 상황에 따라 다른 의미로 해석될 수 있는 것
부모 클래스를 상속받은 각각의 하위 클래스는 메서드 위에 자신의 메서드를 덮어쓰는 메서드 오버라이딩(method overriding)을 수행하며, 상위 클래스의 참조 변수가 어떤 하위 클래스의 객체를 참조하느냐에 따라 호출되는 메서드가 달라진다.

 

📌 모의 면접


OOP(Object-Oriented Programming)이 무엇인가요?

명령형 프로그래밍 방법론 중 하나로, 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(Object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 프로그래밍 패러다임을 말합니다.

OOP의 특징과 각각에 대해 설명해주세요
OOP의 특징으로 캡슐화, 추상화, 상속, 다형성이 있습니다.
OOP는 변수와 함수를 하나의 단위로 묶어 모듈로 관리하는 캡슐화(Encapsulation)를 지원하며, 캡슐화를 통해 모듈 내에서의 응집도를 높이고 외부의 노출을 최소화합니다. 또한 추상화(Abstraction)를 통해 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정할 수 있으며, 코드의 재사용성과 가독성을 높입니다. OOP에서는 자식 클래스가 부모클래스의 특성과 기능을 물려받는 상속(Inheritance)을 지원하는데, 상속받은 자식 클래스는 부모 클래스의 기능을 물려받아 수정 및 재사용이 가능합니다. 마지막으로 다형성(Polymorphism)이 있는데, 부모 클래스를 상속받은 각각의 하위 클래스는 메서드 위에 자신의 메서드를 덮어쓰는 메서드 오버라이딩을 수행하며, 상위 클래스의 참조 변수가 어떤 하위 클래스의 객체를 참조하느냐에 따라 실행 메서드를 달리하여 다형성을 줄 수 있습니다.

 

댓글