
정답다형성을 '여러 클래스 객체를 묶어 하나처럼 다루는 기법'이라고 잘못 설명한 선지
핵심 개념
객체지향 프로그래밍의 핵심 개념 - 다형성
객체지향 프로그래밍(OOP)의 핵심 개념을 묻는 문항입니다. 클래스(class)는 객체를 찍어내는 틀이고, 그 틀로 만든 각 객체를 인스턴스(instance)라고 합니다. 객체는 속성(attributes)과 행동(behaviors, 메소드)으로 구성됩니다. 상속(inheritance)은 기존 클래스의 속성과 행동을 다른 클래스가 물려받는 기능이며, 다형성(polymorphism)은 같은 메시지나 연산에 대해 객체마다 서로 다르게 반응하도록 하는 성질(예: 메소드 오버라이딩, 오버로딩)을 뜻합니다. 옳지 않은 설명을 고르는 문제이므로 각 개념의 정확한 정의를 대조하는 것이 핵심입니다.
선지별 해설
①하나의 클래스로 여러 객체를 생성하며, 그 각각의 객체를 클래스의 인스턴스라고 부릅니다. 인스턴스 개념을 정확히 서술한 옳은 설명입니다.
②객체는 상태를 나타내는 속성(attributes)과 동작을 나타내는 행동(behaviors)으로 구성된다는 것은 객체의 기본 정의로 옳은 설명입니다.
③한 클래스가 다른 클래스의 속성과 행동을 물려받는 것이 상속(inheritance)입니다. 코드 재사용을 가능하게 하는 대표적 특성으로 옳은 설명입니다.
④다형성(polymorphism)은 같은 이름의 메시지나 연산에 대해 객체마다 다르게 반응하도록 하는 성질입니다. 선지에서 말한 '여러 클래스 객체들을 묶어 하나의 객체처럼 다루는 기법'은 다형성이 아니라 집합체(composition/집약) 개념에 가까우므로 틀린 설명이며, 이 문항의 정답입니다.

정답AND 결과(00110000)를 반전한 11001111₂
핵심 개념
NAND 비트 연산 - AND의 부정
두 이진수의 NAND 비트 연산 결과를 구하는 문항입니다. NAND는 'NOT AND'로, 먼저 두 수를 비트 단위 AND한 뒤 그 결과의 모든 비트를 반전(NOT)합니다. AND는 두 비트가 모두 1일 때만 1이 됩니다. 10111000과 00110011을 자리별로 AND하면 00110000이 되고, 이를 반전하면 11001111이 됩니다. 각 비트를 자리 맞춰 계산하는 것이 핵심입니다.
선지별 해설
①00110000은 두 수의 AND 결과 그 자체입니다. NAND는 여기서 한 번 더 NOT(반전)을 해야 하므로 최종 답이 될 수 없습니다.
②10111011은 자리별 AND와 NOT 계산과 일치하지 않는 값으로 오답입니다.
③10111000 AND 00110011 = 00110000이고, 이를 비트 반전하면 11001111이 됩니다. NAND 정의에 정확히 부합하는 정답입니다.
④01000100은 AND 결과의 반전값과 일치하지 않으므로 오답입니다.