2018/01
C# 강좌 14편. 확장 메소드, 분할 클래스, 중첩 클래스 [최근 수정 2017.01.11]
C# 강좌 14편. 확장 메소드, 분할 클래스, 중첩 클래스 [최근 수정 2017.01.11]
2018.01.141. 확장 메소드(Extension Method)확장 메소드는 지금까지 우리가 보아왔던 메소드와는 다르게 조금 독특한 메소드라고 할 수 있습니다. 이 확장 메소드는, 기존 클래스의 기능을 확장시켜주는 메소드라고 볼 수 있습니다. 아래는 확장 메소드의 선언 형식입니다. namespace 네임스페이스명 { public static class 클래스명 { public static 반환형식 메소드명(this 확장대상형식 식별자, 매개변수..) { .. } .. } } 선언 형식을 보시면, 정적(static) 클래스를 먼저 정의하고 그 안에 확장 메소드가 정의되었습니다. 확장 메소드 역시 정적(static) 메소드여야 합니다(정적 메소드는 객체를 만들지 않고도 바로 호출이 가능). 그리고 메소드의 첫번째 매개변수..
C# 강좌 13편. 클래스의 상속(Class inheritance) [최근 수정 2017.12.26]
C# 강좌 13편. 클래스의 상속(Class inheritance) [최근 수정 2017.12.26]
2018.01.121. 클래스의 상속(Class inheritance)이번에 배울 건 '클래스의 상속(Class inheritance)'입니다. 어? 상속이란 말을 어디선가 들어본 적이 있는 것 같지 않나요? 짐작하는 그 상속이 맞냐구요? 네 맞습니다. 혹시나 상속이 뭔지 들어보 적 없는 분들을 위해 무엇인지 알려드리려고 합니다. 상속이란 네이버 지식백과를 빌어 다음과 같이 정의되어 있습니다. '일정한 친족적 관계가 있는 사람 사이에 한 쪽이 사망하거나 법률상의 원인이 발생하였을 때 재산적 또는 친족적 권리와 의무를 계승하는 제도'. 즉, 부모님이 돌아가셨다고 할 때 그 유산을 자식이 물려받는 것이라고 할 수 있습니다. 클래스의 상속도 이와 똑같습니다. 객체 지향 프로그래밍에선 부모 클래스와 자식 클래스가 있는데, 부모 ..
12편. 생성자(Constructors)
12편. 생성자(Constructors)
2018.01.12생성자(Constructor) 생성자와 소멸자를 간단히 소개하자면, 생성자는 객체를 생성할 때 호출되는 메서드이며, 소멸자는 객체가 소멸될 때 호출되는 메서드라고 할 수 있습니다. 우선 생성자 부터 알아보고, 이 생성자가 어떻게 사용되는지 아래 예제를 살펴보며 생각해봅시다. 그러기 전에, 생성자의 선언 형식부터 잠깐 보고 들어가보도록 하겠습니다. class 클래스명 { // 여기서 대괄호([])는 선택 사항이라는 의미다. // 따로 제한자를 적지 않으면 기본 접근 제한자인 internal이 사용된다. [접근 제한자] 클래스명(매개변수1, 매개변수2, ...) { // ... } // ... } 생성자의 선언 형식을 살펴보면, 생성자의 이름은 클래스의 이름과 똑같고, 생성자는 메서드와 같이 매개변수를 가질..
C# 강좌 11편. 접근 제한자(Access Modifier), this [최근 수정 2017.12.17]
C# 강좌 11편. 접근 제한자(Access Modifier), this [최근 수정 2017.12.17]
2018.01.121. 접근 제한자(Access Modifier) 오늘은 접근 범위를 결정하게 해주는 접근 제한자에 대해서 알아보려고 합니다. 접근 제한자에는 public, protected, internal, private가 있습니다. 이미 public라는 접근 제한자는 본적이 있죠? 이 네 가지의 접근 제한자에 대해 알아보려고 합니다. 아래는 4개의 접근 제한자를 정리해놓은 표입니다. 접근 제한자 설명 private 클래스 내부에서만 접근이 가능합니다. public 모든 곳에서 해당 멤버로 접근이 가능합니다. internal같은 어셈블리에서만 public으로 접근이 가능합니다. protected클래스 외부에서 접근할 수 없으나 파생 클래스에서는 접근이 가능합니다. protected internal 같은 어셈블리에서만 ..
C# 강좌 10편. 클래스(Class) [최근 수정 2017.11.26]
C# 강좌 10편. 클래스(Class) [최근 수정 2017.11.26]
2018.01.121. 객체(Object) 이번 강좌에서는 강력한 기능을 제공하는 클래스에 대해서 배우기 전에, 객체 지향 프로그래밍(Object Oriented Programming, OOP)에 대해 알고 넘어가야 하기에 객체 지향 프로그래밍이 도대체 무엇인지에 대해서 설명을 해드리도록 하겠습니다. 우리가 알고있듯 C#은 객체 지향 언어입니다. C#에서의 객체(Object)는 핵심 중에 핵심이라 말할 수 있죠. 오로지 객체만을 다루는 책이 있을정도로 객체를 완벽히 이해하기에는 많은 어려움이 있습니다. 우리 주위에서 객체는 쉽게 찾아볼 수 있습니다. 눈에 보이는 모든 것이 객체가 될 수 있습니다. 지금 앞에 보이는 모니터, 마우스, 키보드, 프린터, 달력, 가방, 자동차 등과 같이 개념상으로 존재하는 것은 모두가 객체가 ..
C# 강좌 9편. 배열(Array) [최근 수정 2017.11.26]
C# 강좌 9편. 배열(Array) [최근 수정 2017.11.26]
2018.01.121. 배열(Array)배열이란, 동일한 타입의 변수를 모아놓은 데이터 집합이라고 말할 수 있습니다. 예를 들어서, 우리가 각 반 학생들의 한 달 독서량을 변수에 담는다고 가정하면 아래와 같이 변수를 선언해야 합니다. ... int reading_1 = 4; int reading_2 = 9; int reading_3 = 1; int reading_4 = 0; int reading_5 = 21; int reading_6 = 12; ...보기만 해도 비효율적이고, 만약 반에 학생이 30명 정도가 있다면 비슷한 성격의 변수를 똑같이 30번 선언해야 하며, 전체 학생의 독서량을 사용자에게 제공하려고 변수에 접근하여 값을 얻어올 때도 상당히 불편합니다. 여기서, 배열을 사용하면 이 두 문제를 한 번에 잡을 수 있으..
C# 강좌 8편. 메소드(Method) [최근 수정 2017.11.10]
C# 강좌 8편. 메소드(Method) [최근 수정 2017.11.10]
2018.01.121. 메소드(Method)이번 강좌에서는 메소드가 무엇인지, 메소드가 어떠한 기능을 하는지, 또 어떻게 쓰이는지 알아보도록 하겠습니다. C#에서의 메소드(Method)는, C언어와 C++의 함수(Function)와 비슷한 기능을 합니다. 메소드를 간단히 나타내자면, 이어지는 코드들을 묶어놓은 코드 블록입니다. 예를 들어서, 아래는 제곱 후 결과물을 출력하는 기능을 가진 메소드입니다. ... static void square(int a) { Console.WriteLine("{0}*{1}={2}", a, a, a*a); } ...위 코드는, square라는 녀석에게 값을 넘겨주고, 임시로 a라는 변수에 값을 기억시킵니다. 그리고 이 a 변수를 가지고 제곱하여 출력하는 코드입니다. 대충 메소드를 어떻게 정의..
C# 강좌 7편. 무한 루프, 제어문(continue, break, goto) [최근 수정 2017.11.06]
C# 강좌 7편. 무한 루프, 제어문(continue, break, goto) [최근 수정 2017.11.06]
2018.01.121. 무한 루프(infinite loop) 전 강좌에서 말했었듯이, 무한 루프란 종료문을 만나지 못하고 끝없이 동작하는 것을 의미합니다. 개발자의 예상치 못한 실수로 중간에 무한 루프가 발생하면, 반복문 내의 코드가 계속해서 실행되므로 자칫하면 비정상적으로 프로그램이 종료될 수 있습니다. 그런데, 이 무한 루프가 단점만 있는 것이 아니라 장점도 존재합니다. 예를 들어, 사용자에게 계속 입력받으며 루프를 돌다가, 특정 문자가 입력되면 루프를 종료하는 것처럼 계속 반복되다가 특정한 조건을 만족하면 빠져나오게 할 수도 있습니다. 아래는 무한 루프의 예입니다... while (true) { // 항상 참이므로 무한 루프에 빠진다. // 실행될 코드 } ..위의 예를 보시면, 조건식에 참(true)이 오므로, 항..
C# 강좌 6편. 반복문(while, do, for, foreach) [최근 수정 2017.11.10]
C# 강좌 6편. 반복문(while, do, for, foreach) [최근 수정 2017.11.10]
2018.01.121. while(참일때 동안 반복~) 오늘은 반복문에 대해서 알아보도록 할 텐데, 여기서 반복문이란 말 그대로 반복에서 쓰이는, 특정 조건을 만족할 때 까지 계속 반복하여 실행하는 문장입니다. 우선은 while문부터 알아보도록 하겠습니다. 아래는 while문의 기본 형태입니다. while (조건식) { // 반복 실행될 코드 }위와 같은 형태에서 조건식은 if문과 마찬가지로 true 또는 false가 반환되어야 합니다. while문의 특징은 조건식이 참일 때 동안 계속해서 반복하여 코드를 실행합니다. 만약에 반복하다 조건식이 거짓이 되면 루프를 빠져나옵니다. (여기서 루프란 프로그램의 실행 흐름이 고리처럼 이어지는 부분을 말합니다. 즉, 반복되는 부분을 말함) 그러나 계속 조건식이 참이라면 루프를 빠져나..
C# 강좌 5편. 조건문(if, else, switch) [최근 수정 2017.11.10]
C# 강좌 5편. 조건문(if, else, switch) [최근 수정 2017.11.10]
2018.01.121. if~else문 (만약에~, 그렇지 않으면~) 오늘은 조건문에 대해서 알아보도록 하겠습니다. 여기서 조건이란 사전적 의미 그대로 '어떤 일을 이루게 하거나 이루지 못하게 하기 위하여 갖추어야 할 상태나 요소'라는 뜻을 지니고 있습니다. 프로그래밍에서 프로그램 흐름을 조건에 따라 실행시키는 게 바로 우리가 배울 '조건문'입니다. 우선 if문 부터 배워보도록 하겠습니다. 아래는 if문의 기본 구성입니다. if (조건식) { // 조건이 참일 경우 실행될 문장 }이 예제의 조건식에서 true 또는 false를 반환하는 논리 연산자나 관계 연산자가 자주 등장합니다. 조건식에 올 수 있는 건 true 또는 false의 값을 가지는 bool 형식이어야 합니다. 예를 들어, 아래의 조건을 한번 살펴봅시다. if..
C# 강좌 4편. 연산자(Operators) [최근 수정 2017.10.29]
C# 강좌 4편. 연산자(Operators) [최근 수정 2017.10.29]
2018.01.121. 연산자(Operators)C#에선 산술 연산자, 증감 연산자, 조건 연산자, 관계 연산자, 논리 연산자 등 여러 가지의 연산자를 제공합니다. 오늘은 아래 표에 정리된 연산자들에 대해서 배워보도록 하겠습니다.분류 연산자 예 수식 연산자 +, -, *, /, % a = b + c; 증감 연산자 ++, -- a++; 할당 연산자 =, +=, -=, *=, /=, %= a += b + c; 논리 연산자 &&, ||, ! a && b 관계 연산자 , ==, !=, >=, b 비트 연산자 &, |, ^ a ^ b 시프트 연산자 >>, 2 2. 수식 연산자(+, -, *, /, %)수식 연산자에는 덧셈, 뺄셈, 곱셈, 나눗셈, 그리고 나눗셈을 한 뒤의 나머지를 구하는 연산자들이 있습니다. 아래는 그 연산자들을 ..
C# 강좌 3편. 변수, 데이터 형식, 상수 [최근 수정 2017.10.29]
C# 강좌 3편. 변수, 데이터 형식, 상수 [최근 수정 2017.10.29]
2018.01.121. 변수(Variable) 변수(variable)란 무엇일까요? 이미 익히 들어보신 분도 계실 거라 생각합니다. 변수는 쉽게 말하면 값을 담아 두는 상자와 같습니다. 변수는 하나의 데이터 값을 가질 수 있으며, 한번 정해진 값은 고정되어 있는 게 아니라 계속해서 변할 수 있습니다. 마치 수학의 변수와 비슷하죠! 변수는 값을 담아 두는 상자와 같다 또한, 이 변수라는 녀석은 담기는 음식에 따라 그릇이 달라지듯 담기는 데이터에 따라 변수의 자료형(data type)이 결정됩니다. 예를 들어, 문자는 문자를 담을 수 있는 char 자료형이, 정수는 정수를 담을 수 있는 int라는 자료형 등과 같이 말이죠. 그럼 우리는 어떻게 해서 이러한 변수를 만들 수 있을까요? 아래와 같이 자료형과 변수명을 가지고 변수를..