// 뇌를 자극하는 C# 5.0 프로그래밍 연습문제 답 - 6장 1. 클래스와 객체, 인스턴스는 서로 어떤 점이 다른가요? -클래스는 객체를 만들기 위한 청사진 -인스턴스는 실체 (예)int a = 30;int b = 40; -int 는 클래스-a와 b 는 실제로 데이터를 담을 수 있는 실제 객체-a와 b를 일컬어서 int의 실체(인스턴스)라고 함 -객체를 인스턴스라고 부르기도 함 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(); // 파생(자식)클래스로 기반(부모)클래스를 참조할 수 없음}..
특징 클래스 구조체 키워드 class struct 형식 참조 형식 값 형식 복사 얕은 복사 깊은 복사 인스턴스 생성 new 연산자와 생성자 필요 선언만으로도 생성 생성자 매개 변수 없는 생성자 선언 가능 매개 변수 없는 생성자 선언 불가능 상속 가능 모든 구조체는 System.Object 형식을 상속하는 System.ValueType으로 부터 직접 상속 받음 [구조체 예시] namespace Structure{ struct Point3D { public int X; public int Y; public int Z; public Point3D(int X, int Y, int Z) { this.X = X; this.Y = Y; this.Z = Z; } public override string ToString..
1. 확장 메서드(Extension Method)- 기존 클래스의 기능을 확장하는 기법- 상속과는 다른 개념- 방법 - 메소드를 선언하되, static 한정자 - 첫 번째 매개 변수는 반드시 "this [클래스(형식)] 이름" - 그 뒤에 매개 변수들은 확장 메소드를 호출할 때 입력되는 매개 변수들 - 확장 메소드를 선언하고 있는 클래스도 static namespace ExtensionMethod{ public static class IntegerExtension { public static int Square(this int myint) { return myint * myint; } public static int Power(this int myint, int exponent) { int result ..
-Nullableint? a = null; -ref, out -ref, out의 사용법은 동일 -ref는 메서드로 전달되는 매개변수가 초기화 되어 있어야 전달가능 -out은 메서드고 전달되는 매개변수가 초기화 되어 있지 않아도 전달 가능, 하지만 해당 메서드에서 초기화해주지 않으면 에러 -this(), base() -this는 본인의 생성자, base는 부모 클래스의 생성자 -named parameter -매개변수의 이름을 넣어서 전달(가독성 증가) ex) method(param1 : "value1", param2 : "value2") -optional parameter -매개변수의 기본(디폴트)값을 설정하면, 해당 매개변수의 값은 전달해주지 않아도 디폴트로 저장됨 ex) method(int a, int..
// 뇌를 자극하는 C# 5.0 프로그래밍 연습문제 답 - 6장 1. 다음 코드에서 Square() 메소드를 구현해서 프로그램을 완성하세요. Square() 함수는 매개 변수를 제곱하여 반환합니다. 프로그램의 실행 예는 다음과 같습니다. 수를 입력하세요 : 3결과 : 9 수를 입력하세요 : 34.2결과 : 1169.64 namespace Ex6_1{ class Program { static int Square(int arg) { return arg * arg; } static double Square(double arg) { return arg * arg; } static void Main(string[] args) { Console.Write("수를 입력 : "); string input = Conso..
// 뇌를 자극하는 C# 5.0 프로그래밍 연습문제 답 - 5장 1. 다음과 같은 결과를 출력하는 프로그램을 for 문을 이용하여 작성하세요. *************** namespace Practice5_1{ class Program { static void Main(string[] args) { for(int i = 0; i < 5; i++) { for(int j = 0; j < i + 1; j++) { Console.Write("*"); } Console.WriteLine(""); } } }} 2. 다음과 같은 결과를 출력하는 프로그램을 for 문을 이용하여 작성하세요. *************** namespace Practice5_2{ class Program { static void Main..
// 뇌를 자극하는 C# 5.0 프로그래밍 연습문제 답 - 4장 1. i++와 ++i의 차이점은 무엇인가요? i++는 후위 증가, ++i 전위 증가 2. 다음 보기 중에서 결과가 다른 것을 찾으세요 1) i = i + 1;2) i++;3) ++i;4) i += 1; 모두 동일(i값이 1 증가함) 3. 다음 코드에서 a와 b는 각각 얼마일까요? int a = 8 >> 1;int b = a >> 2; a = 4, b = 1 4. 다음 코드에서 a는 얼마일까요? int a = 0xF0 | 0x0F; 0xF0 : 00000000 00000000 00000000 11110000 0x0F : 00000000 00000000 00000000 00001111or : 00000000 00000000 00000000 11..
// 뇌를 자극하는 C# 5.0 프로그래밍 연습문제 답 - 3장 1. 다음 코드에서 잘못된 부분을 찾고, 그 이유를 설명하세요. int a = 7.3; // 데이터 타입 안맞음float b = 3.14; // float 형식은 3.14f (f 붙여줌)double c = a*b; char d = "abc"; // 문자열은 stringstring e = '한; // 문자는 char 2. 값 형식과 참조 형식의 차이는 무엇인가요? -값 형식(Value Type) : 변수가 값을 담는 데이터 형식 ex) 숫자형식, 논리형식-참조 형식(Reference Type) : 변수가 값 대신 값이 있는 곳의 위치(참조)를 담는 데이터 형식 ex) 문자열, 오브젝트 형식 3. 박싱과 언반싱을 설명하세요. object a =..