728x90
반응형
1. 객체지향 개념에서 다형성(Polymorphism)과 관련한 설명으로 틀린 것은?
① 다형성은 현재 코드를 변경하지 않고 새로운 클래스를 쉽게 추가할 수 있게 한다.
② 다형성이란 여러 가지 형태를 가지고 있다는 의미로, 여러 형태를 받아들일 수 있는 특징을 말한다.
③ 메소드 오버라이딩(Overriding)은 상위 클래스에서 정의한 일반 메소드의 구현을 하위 클래스에서 무시하고 재정의할 수 있다.
④ 메소드 오버로딩(Overloading)의 경우 매개 변수 타입은 동일하지만 메소드명을 다르게 함으로써 구현, 구분할 수 있다.
정답 : ④
- 다형성은 현재 코드를 변경하지 않고 새로운 클래스를 쉽게 추가할 수 있게 한다.
- 맞습니다. 다형성을 이용하면 인터페이스나 추상 클래스를 통해 새로운 클래스를 기존 코드에 쉽게 추가할 수 있습니다. 이렇게 하면 기존 코드를 수정하지 않고도 기능을 확장할 수 있습니다.
- 다형성이란 여러 가지 형태를 가지고 있다는 의미로, 여러 형태를 받아들일 수 있는 특징을 말한다.
- 맞습니다. 다형성은 같은 인터페이스를 구현한 여러 클래스가 다양한 형태로 동작할 수 있는 것을 의미합니다. 예를 들어, 하나의 메소드 호출이 다양한 객체에서 다르게 실행될 수 있습니다.
- 메소드 오버라이딩(Overriding)은 상위 클래스에서 정의한 일반 메소드의 구현을 하위 클래스에서 무시하고 재정의할 수 있다.
- 맞습니다. 메소드 오버라이딩은 상위 클래스의 메소드를 하위 클래스에서 재정의하여, 하위 클래스의 객체가 상위 클래스의 메소드를 호출할 때 하위 클래스의 메소드가 실행되도록 합니다.
- 오버라이딩은 상위 클래스(부모 클래스)에서 이미 정의된 메서드를 하위 클래스(자식 클래스)에서 같은 시그니처(메서드 이름, 매개변수 타입, 개수)를 가진 메서드로 다시 정의하는 것을 말합니다. 이 과정에서 하위 클래스는 상위 클래스의 메서드를 재정의하여 자신의 필요에 맞게 구현할 수 있습니다. 오버라이딩은 상속 관계에서 발생하며, 다형성의 한 형태로 간주됩니다.
- 주요 특징 : 오버라이딩을 통해 하위 클래스는 상위 클래스의 동작을 변경할 수 있습니다., 메서드명과 매개변수는 동일하게 유지되어야 합니다.
- 메소드 오버로딩(Overloading)의 경우 매개 변수 타입은 동일하지만 메소드명을 다르게 함으로써 구현, 구분할 수 있다.
- 틀렸습니다. 메소드 오버로딩은 메소드명이 동일하지만 매개변수의 타입, 개수, 순서가 다르도록 하여 같은 이름의 메소드를 여러 개 정의하는 것을 말합니다. 즉, 메소드명이 다르면 오버로딩이 아닙니다.
- 오버로딩은 같은 메서드명을 가지면서 매개변수의 타입, 개수, 순서가 다른 여러 개의 메서드를 한 클래스 내에 정의하는 것을 말합니다. 즉, 메서드 시그니처가 다르면서 같은 이름의 메서드를 여러 개 정의하여 사용할 수 있습니다.
캡슐화(Encapsulation)
캡슐화는 객체지향 프로그래밍의 중요한 특징 중 하나로, 데이터(속성)와 이를 처리하는 함수(메서드)를 하나의 단위로 묶는 것을 말합니다. 이로 인해 객체 내부의 데이터가 외부에 은폐되어 객체의 세부 내용을 감추고, 이를 통해 데이터의 무결성을 보호하며, 변경 시 오류의 파급효과를 줄입니다. 캡슐화된 객체들은 외부에서 접근할 수 있는 인터페이스만을 제공하며, 이를 통해 객체의 재사용성을 높입니다.
예를 들어, 은행 계좌 객체는 계좌 번호와 잔액(데이터)을 가지며, 입금과 출금(메서드) 기능을 제공할 수 있습니다. 외부에서는 직접 계좌 잔액을 변경할 수 없고, 오직 입금과 출금을 통해서만 잔액을 조작할 수 있습니다.
- 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것
- 캡슐화 된 객체의 세부 내용이 외부에 은페되어, 변경이 발생할 때 오류의 파급효과를 줄인다.
- 캡슐화 된 객체들은 재사용이 용이하다.
정보 은닉(Information Hiding)
정보 은닉은 객체지향 프로그래밍에서 캡슐화의 핵심 개념 중 하나로, 객체가 자신의 데이터를 외부에서 접근하지 못하도록 숨기고, 필요한 경우에만 자신이 제공하는 연산을 통해서만 접근할 수 있도록 하는 것입니다. 이를 통해 객체 간의 의존성을 줄이고, 코드의 변경에 따른 영향을 최소화할 수 있습니다.
예를 들어, 클래스의 필드를 private로 선언하여 외부에서 직접 접근하지 못하도록 하고, 필요한 경우 getter와 setter 메서드를 통해서만 접근할 수 있도록 합니다.
- 다른 객체에서 자신의 정보를 숨기고 자신의 연산만을 통해 접근을 허용하는 것
- 캡슐화에서 가장 중요한 개념
추상화(Abstraction)
추상화는 객체의 속성 중에서 가장 중요한 것에 중점을 두어 불필요한 부분을 생략하고, 중요한 부분만을 개략화하는 것을 의미합니다. 이를 통해 복잡한 시스템을 더 단순하고 이해하기 쉽게 만들 수 있습니다. 추상화는 데이터의 공통 성질을 추출해 슈퍼 클래스를 선정하는 개념, 즉, 모델화하는 과정입니다.
예를 들어, 동물 클래스는 모든 동물이 공통으로 가지는 속성(예: 나이, 성별)과 메서드(예: 먹기, 움직이기)를 정의하고, 이를 상속받는 개, 고양이 등의 클래스는 개별적인 특성을 추가로 정의할 수 있습니다.
- 불필요한 부분을 생략, 객체의 속성 중 가장 중요한 것에만 중점을 두고 개략화 하는 것
- 데이터의 통 성질을 추출해 슈퍼 클래스를 선정하는 개념, 즉, 모델화 하는 것
상속성(Inheritance)
상속성은 이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산(메서드)을 하위 클래스(자식 클래스)가 물려받는 것을 의미합니다. 하위 클래스는 상위 클래스의 기능을 재사용할 수 있으며, 필요에 따라 추가적인 속성과 메서드를 정의하거나 상위 클래스의 메서드를 재정의(오버라이딩)할 수 있습니다.
예를 들어, Vehicle 클래스가 있고, 이를 상속받은 Car 클래스와 Bike 클래스가 있을 때, Vehicle 클래스에서 정의된 속성과 메서드를 Car와 Bike 클래스가 물려받아 사용할 수 있습니다.
- 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
- 하위 클래스는 다시 정의하지 않고서도 자신의 속성으로 사용할 수 있다.
다형성(Polymorphism)
다형성은 메시지(메서드 호출)에 대해 객체가 각각 고유한 방법으로 응답할 수 있는 능력을 의미합니다. 이는 동일한 메서드명이지만 서로 다른 클래스에서 다르게 구현되어, 하나의 메시지가 각 객체에서 서로 다른 방식으로 실행될 수 있게 합니다. 다형성은 주로 메서드 오버라이딩과 인터페이스를 통해 구현됩니다.
예를 들어, 동물 클래스에 makeSound()라는 메서드가 있고, 이를 상속받은 개 클래스는 makeSound() 메서드를 멍멍으로, 고양이 클래스는 야옹으로 구현할 수 있습니다. 동일한 makeSound() 메서드 호출이지만, 객체의 타입에 따라 다른 동작을 하게 됩니다.
- 메시지에 의해 객체(클래스)가 연산을 수행하게 될 때 하나의 메시지에 대해 각 객체가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력을 의미한다.
- 객체들은 동일한 메소드명을 사용하며 같은 의미의 응답을 한다.
정보처리기사 필기, 시나공과 함께 시작하세요!
IT 자격증 시험 준비의 표준, 시나공은 믿을 수 있는 파트너입니다. 정보처리기사 필기를 대비하는 가장 효율적이고 효과적인 방법을 찾고 있다면, 시나공 시리즈가 최선의 선택입니다.
정보처리기사 필기 시나공으로 시작하세요!
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
반응형
'코딩일기 > 자격증' 카테고리의 다른 글
[정보처리기사] 사용자 인터페이스(UI), CLI와 GUI 그리고 NUI의 차이 | 정보처리기사 기출문제 (1) | 2024.07.01 |
---|---|
[정보처리기사] 소프트웨어 설계 | 애자일(Agile) 방법론 | 정보처리기사 필기&실기 기출문제 (0) | 2024.06.28 |
정보처리기사 소프트웨어 설계 : UI 설계 지침 (0) | 2024.06.27 |
정보처리기사 소프트웨어 설계 : 객체지향(Object Oriented), 객체 클래스 인스턴스의 차이! (0) | 2024.06.27 |
정보처리기사 소프트웨어 설계 : 미들웨어 (Middleware) (0) | 2024.06.26 |