본문 바로가기
IT(기존 자료 보관용)

뇌를 자극하는 C# 5.0 프로그래밍 7장 연습문제 1~5번 답

by 공학코드 2015. 4. 24.
728x90
반응형

7장에는 연습문제 1~5번이 간단하게 개념을 묻는 문제라 한꺼번에 묵어서 답을 적겠다.


1. 클래스와 객체, 인스턴스는 서로 어떤 점이 다른가요?

현실에 존재하는 것의 속성과 기능이 담겨 있는 것이 클래스(Class)이며 속성은 변수로, 기능은 메소드로 표현된다. 객체(Object)는 세상의 모든 것을 지칭하는 단어이다. 인스턴스는 실제로 데이터를 담을 수 있는 것을 뜻한다.


다시 말해 객체는 클래스로 만들 대상이며 클래스는 객체를 만들기 위한 틀(청사진)이다. 인스턴스는 데이터를 담을 수 있는 객체를 뜻한다. 


Object와 Instance를 번역했을 때 둘 다 객체로 사용하기 때문에 입문자는 이를 잘 구분해서 사용하는 책을 구매해서 읽는 것을 추천한다. 가급적 원서를 구매해서 보는 것이 좋을 것 같다. 보통은 이 둘을 구분하기 위해 Object만 객체라고 적고 Instance는 그대로 인스턴스라고 부른다.


2. 다음 코드에서 오류를 찾고, 오류의 원인을 설명하세요.

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace practice7_1
  8. {
  9. class A { }
  10. class B : A { }
  11. class Program
  12. {
  13. static void Main(string[] args)
  14. {
  15. A a = new A();
  16. B b = new B();
  17. A c = new B();
  18. B d = new A(); // 자식 클래스는 부모 클래스의 객체를 생성할 수 없다.
  19. }
  20. }
  21. }
  22.  

3. this 키워드와 base 키워드에 대해 설명하세요.

this는 자기 자신의 생성자를 가리키며 base는 기반 클래스를 가리킨다.

this는 객체가 자기 자신을 가리키는 키워드이며 base는 부모클래스를 가리키는 키워드이다.


4. 구조체에 대한 다음 설명 중 틀린 것을 모두 찾으세요.

2) 복사할 때 얕은 복사가 이루어진다.

깊은 복사가 일어난다.

3) 참조 형식이다.

값 형식이다.


5. 다형성은 무엇이며 오버라이딩과 무슨 관계가 있는지 설명하세요.

다형성은 같은 종(種)의 생물이면서도 어떤 형태나 형질이 다양하게 나타나는 현상을 뜻하는 것인데 이것은 객체지향프로그래밍의 핵심 개념이다. 이를 구현하기 위해 부모의 메소드를 재정의하는 오버라이딩이 필요하다.

문제에서 말하는 다형성은 자신으로부터 상속받아 만들어진 파생 클래스를 통해 다형성을 실현한다는 의미의 Subtype Polymorphism의 준말이다. 다시 말해 다형성이란 상속받아 만들어진 파생 클래스를 통해 다형(多形)을 이루고자 하는 것이다.


728x90
반응형

댓글