일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 배열
- 자동구현프로퍼티
- 프로퍼티
- 인터페이스 예제
- 중첩클래스
- 이것이C#이다
- as
- base()
- 배열초기화
- 컬렉션 초기화
- is
- 분할 클래스
- 추상 프로퍼티
- 클래스
- 프로퍼티와 생성자
- 인터페이스의 프로퍼티
- 무명형식
- c#
- 형식변환
- 접근 한정자
- 인덱서
- 일반화 클래스
- System.Array
- 튜플
- 오버라이딩
- 가변배열
- this 키워드
- 인터페이스 상속
- 메소드숨기기
- 클래스 연습문제
- Today
- Total
제로의영역
7장 클래스 연습문제 본문
* 본 블로그 글은 머리가 아~~~주 나쁜 왕X100초보가 프로그래밍을 공부하면서 정리를 위해 작성하는 글입니다. 잘못 정리되거나 제가 잘못 이해한 글은 이해 및 조언 부탁드립니다.
* 공부는 '이것이 C#이다' 책을 보고 하고 있습니다. 참고로 저같은 왕초보가 보기 어렵게 써져 있어서 별도의 정리 문서를 만들게 되었습니다.
1. 문제: 클래스와 객체, 인스턴스는 서로 어떤 점이 다른가요?
답:
(1) 클래스: 객체를 표현하기 위한 틀로 변수와 메소드로 구성
(2) 객체: 속성(데이터)과 기능(메소드)으로 나누어 구현한 대상으로 클래스에 선언된 대상
(3) 인스턴스: 객체가 구현되어 메모리에 할당되고 실제 사용되는 대상
2. 문제: 다음 코드에서 오류를 찾고, 오류의 원인을 설명하세요.
class A
{
}
class B : A
{
}
class C
{
public static void Main( )
{
A a = new A( );
B b = new B( );
A c = new B( );
B d = new A();
}
}
답: B d=new A( )
파생 클래스(자식 클래스)의 객체를 부모 클래스의 객체로 생성할 수 없음
3. 문제: this키워드와 base키워드에 대해 설명하세요.
(1)this키워드: 자기자신(소속된 클래스의 정의된 멤버)을 가리키는 키워드
(2)base 키워드: 상속시 부모생성자에 입력값을 전달할 때 상속해준 기반클래스(부모클래스)를 가리키는 키워드
4. 문제: 구조체에 대한 다음 설명 중 틀린 것을 모두 찾으세요.
(1) struct 키워드를 이용하여 선언한다.
(2) 복사할 때 얕은 복사가 이루어진다. >> 틀림: 깊은 복사가 이루어짐
(3) 참조 형식이다 >> 틀림: 값 형식
(4) 메소드를 가질 수 있다.
5. 문제: 다형성은 무엇이며,오버라이딩과 무슨 관계가 있는지 설명하세요.
(1) 다형성: 객체가 여러 형태를 가지는 것을 말함.
(2) 오버라이딩과의 관계: 부모클래스의 객체들을 변형하기 위해서는 파생클래스를 생성하여 부모클래스에서 정의된 멤버들을 재정의 해주어야 함. 이 때 변형해주려는 부모클래스의 객체는 virtual로 수식해주고 파생클래스는 override로 재정의 해줘야함.