안녕하세요 유랑입니다. 이번 시간에는 일반화 프로그래밍에 대해서 알아보겠습니다.여러 가지 데이터 형식에 맞춰 동작할 수 있도록 하는 일반화 프로그래밍은 어떤 것일까요?한 번 알아보겠습니다. 1. 일반화 프로그래밍 포유류, 동물, 식물 등 공통된 개념을 찾아 묶는 것을 "일반화"라고 합니다.이런 일반화를 하는 기법에 대해서 알아보겠습니다. 1-1) 일반화 메소드 일반화 메소드는 데이터 형식을 일반화한 메소드입니다.구체적인 형식의 이름 대신 형식 매개 변수가 들어간다는 사실이 다른데요.코드를 통해서 알아보겠습니다. 1-2) 일반화 클래스 일반화 클래스는 데이터 형식을 일반화한 클래스입니다.문법은 같지만 일반화 메소드처럼 형식 매개 변수가 있는 것이 다릅니다. 1-3) 형식 매개 변수 제약시키기 형식 매개 변..
안녕하세요 유랑입니다. 이번 시간에는 컬렉션에 대해서 알아보겠습니다.같은 성격을 띄는 데이터는 어떤 자료 구조 형식을 가지고 있을까요?컬렉션을 통해서 알아보겠습니다. 1. 컬렉션 1-1) ArrayList ArrayList는 가장 배열과 닮은 컬렉션입니다.컬렉션의 요소에 접근할 때는 [ ] 연산자를 이용하고, 데이터를 임의로 할당가능합니다.예제를 통해서 알아보겠습니다. 1-2) Queue Queue는 대기열이라는 뜻을 가지고있습니다.말그대로 데이터나 작업을 차례대로 입력해뒀다가입력된 순서대로 하나씩 꺼내 처리하기 위해 사용됩니다.배열이나 리스트에서는 원하는 위치에 자유로운 접근이 가능하지만,Queue는 입력은 뒤에서 출력은 앞에서만 가능하답니다. 1-3) Stack Stack은 Queue와는 반대로 먼저..
안녕하세요 유랑입니다. 이번 시간에는 배열에 대해서 알아보겠습니다.C언어에서부터 알고 있는 배열은 C#에서 어떻게 표현될까요?한 번 알아보겠습니다. 1. 배열 1-1) 배열이란 구조체, 클래스와 마찬가지로 다수의 데이터를 저장할 때 쓰는 방법이 배열입니다.배열을 어떤 형식과 이름으로 생성할 수 있을지 예제를 통해서 알아보겠습니다. 1-2) 배열을 초기화하는 방법 배열을 초기화하는 방법은 여러가지 있습니다.배열의 용량을 명시하거나 생략하거나 형식 또한 생략이 가능합니다.그렇다고 기능이 바뀌지는 않지만 가독성과 편리성이 달라질 수 있겠네요. 1-3) System.Array 배열도 일종의 객체입니다. C#에서는 모든 것이 객체이기 때문이죠.배열은 System.Array 클래스에 대응되는데요.클래스의 기능에 해..
안녕하세요 유랑입니다. 오늘도 C# 예제를 통해서 복습하는 시간을 가지겠습니다.시작하겠습니다. 1. 예제로 알아보기 1-1) 문제31 - 오버로딩 * 배열 m을 enum SortType에 따라 증가순으로 정렬하거나 감소순으로 정렬하는 프로그램이다.* 오버로딩을 이용해서 조건식을 만들어 보자. 1-2) 문제32 - 오브젝트 클래스 * 오브젝트를 상속받아 GetType()과 GetHashCode() 메서드를 사용하는 프로그램이다.* 오브젝트 클랙스를 이용해서 조건식을 만들어 보자. 1-3) 문제33 - is 키워드 * 기본 타입은 object로 박싱된다. obj1의 원래 타입을 알고 싶다면 is를 이용하면 된다.* is를 이용해서 조건식을 만들어 보자. 1-4) 문제34 - as 키워드 * as는 참조 타입..
안녕하세요 유랑입니다. 이번 시간에는 프로퍼티에 대해서 배워보겠습니다.public의 편의성과 유혹은 코드를 작성할 때마다 계속 일어납니다.하지만 은닉성에서는 좋지 않습니다.그런 관점에서 프로퍼티에 대해서 배워보겠습니다. 1. 프로퍼티 1-1) 메소드보다 프로퍼티 프로퍼티는 은닉성과 편의성을 골고루 갖춘 존재입니다.프로퍼티 선언 문법에는 get, set이라는 접근자고 존재하며,get 접근자는 필드로부터 값을 읽어오고set 접근자는 필드에 값을 할당합니다. 1-2) 자동 구현 프로퍼티 앞에 서는 get과 set 접근자를 직접 구현했지만,자동 구현 기능이 있습니다.컴파일러가 보이지 않는 곳에서 자동으로 구현해 주는 방식인데요. 정말 좋은 기능이네요. 1-3) 프로퍼티와 생성자 객체를 생성할 때도 물론 프로퍼티..
안녕하세요 유랑입니다. 이번 시간에는 인터페이스에 대해서 배워보겠습니다.클래스도 아닌 것이 클래스 형태와 유사한 그런 느낌이네요. 1. 인터페이스와 추상 클래스 1-1) 인터페이스는 약속 인터페이스는 자신으로부터 파생될 클래스가 반드시 자신의 메소드를 구현하도록합니다.게다가 이 메소드들은 public 한정자로 수식해야 하지요.코드를 통해서 알아보겠습니다. 콘솔창에서 작성한 내용은 txt 파일로 생성되어 다음 위치에 저장되게 됩니다. 1-2) 인터페이스를 상속하는 인터페이스 인터페이스를 상속할 수 있는 것은 클래스뿐만이 아니라 구조체나 인터페이스도 가능합니다.기존의 인터페이스에 새로운 기능을 추가한 인터페이스를 만들고 싶을 때 사용됩니다. 1-3) 여러 개의 인터페이스 클래스는 여러 클래스를 한꺼번에 상속..
안녕하세요 유랑입니다. 지난 시간에 이어서 클래스에 대해서 알아보겠습니다.오버라이딩, 구조체 등 다양한 기능들에 대해 알아볼게요.시작하겠습니다. 1. 클래스 1-1) 오버라이딩과 다형성 객체는 다양한 형태로 존재할 수 있습니다.마치 부모와 자식이 조금 다르듯, 상속받은 코드에 기능들을 추가할 수 있어요.그러기 위해서는 부모 클래스에는 virtual 키워드와 자식 클래스에는 override 키워드가 필요합니다.물론 public으로 설정되어 있어야 하구요. private는 컴파일러가 인식하지 못합니다. 1-2) 메소드 숨기기 앞에서 virtual을 통해서 오버라이딩을 재정의 하였습니다.재정의 하고싶지는 않지만, 동일 이름이라 다른걸 보여주고 싶을 때도 있습니다.이럴 때 쓰는게 메소드 숨기기 기능입니다.메소드..
안녕하세요 유랑입니다. 이번 시간에는 C#에서 가장 핵심이라고 할 수 있는 클래스에 대해서 배워보겠습니다.객체지향언어에 꼭 나오며, 지난 시간에 조금씩 써왔었습니다. 1. 클래스 1-1) 클래스의 선언과 객체의 생성 클래스를 이야기하려면, 객체에 대해서 알아야 합니다.객체는 자동차, 파일, 연필 등 모든 물체를 뜻합니다.우리는 이런 객체의 특징들을 정리해 코드화 하여야 합니다.즉, 클래스에 객체의 색깔과 기능 등을 정리해 도면도를 이용하듯 생성이 가능하답니다.설명이 너무 길었군요. 코드를 통해서 알아보겠습니다. 고양이라는 객체를 Class로 정의하여, Cat kitty = new Cat();의 형태로 객체를 만들어낸답니다.생성하고 각각의 색깔과 이름을 정의해 줬어요. 1-2) 생성자와 종료자 객체는 생성..
안녕하세요 유랑입니다. 오늘도 C# 예제를 통해서 복습하는 시간을 가지겠습니다.시작하겠습니다. 1. 예제로 알아보기 1-1) 문제21 - 쉬프트 연산자 * 숫자를 입력하면 8진수와 16진수로 변환시켜주는 프로그램이다.* 쉬프트 연산자를 이용해서 조건식을 만들어 보자. 1-2) 문제22 - while 문 * 숫자를 입력하면 1이 되기 전까지 짝수이면 n/2, 홀수이면 n*3 +1을 해주는 프로그램이다.* while 문을 이용하여 해당 조건식을 만들어 보자. 1-3) 문제23 - do ~ while 문 * 0 ~ 100까지 각 정수마다 자릿수의 합을 구해주는 프로그램이다.* do ~ while문을 이용하여 조건식을 만들어 보자. 1-4) 문제24 - 1차원 배열 * 숫자들을 작은 수부터 순서대로 정렬해주는 ..
안녕하세요 유랑입니다. 오늘도 C# 예제를 통해서 복습하는 시간을 가지겠습니다.시작하겠습니다. 1. 예제로 알아보기 1-1) 문제11 - 네임스페이스 * 다른 네임스페이스를 갖는 클래스를 호출하여 사용하자.* 약수를 구하는 프로그램이다.* using을 사용하여 namespace를 생략하자.* 총 스크립트는 2개이다. 1-2) 문제12 - 스태틱 메서드 * 완전수를 출력하는 프로그램이다.* static 키워드를 붙이면 어떻게 호출 되는지 알아보자.* 완전수란 자기 자신을 제외한 약수들의 합이 자기 자신이 되는 양의 정수이다. 1-3) 문제13 - break * 2부터 1000 사이의 소수를 출력하는 프로그램이다.* break를 통해서 순환문에서 빠져나올 수 있다. 1-4) 문제14 - continue * ..
안녕하세요 유랑입니다. C# 예제를 통해서 복습하는 시간을 가져볼까 합니다.초반에는 간단한 문제들로 시작하여 점차 어려운 문제들을 통해 진행하겠습니다.시작하겠습니다. 1. 예제로 알아보기 1-1) 문제1 - 변수 * 변수는 데이터를 저장하는 임시 저장 장소이다.* 변수는 몇 번이고 새로 대입 가능하다.* const를 붙여 상수로 만들면 대입을 할 수 없다. 1-2) 문제2 - 형 변환 * 정수는 int, 실수는 double, 문자열은 string에 대입* Console.ReadLine() 메서드는 키보드로 입력받은 문자열을 리턴한다.* int.Parse()는 문자열을 int타입으로 변환* double.Parse()는 문자열을 double타입으로 변환 1-3) 문제3 - 산술 연산자 * 산술 연산자는 +(..
안녕하세요 유랑입니다. 1. 메소드 이번 시간에는 메소드에 대해 진행하겠습니다.C#과 Java처럼 객체지향언어에서 나오는 단어입니다. 1-1) 메소드란 메소드는 객체 지향 프로그래밍 언어에서 사용되는 용어로, 코드를 하나의 이름 아래 묶은 것이라고 생각하시면 됩니다.평소에 쓰던 Class는 메소드를 포함하고 있는데, 다음 강의 때 자세하게 배우겠습니다.코드를 통해서 알아보겠습니다. 이번 에는 클래스를 두개 만들고 Calculator 클래스 안에 두 개의 메소드를 넣어 보았습니다.Main문에서 클래스 안에있는 Plus, Minus 메소드를 실행하는 코드는 다음과 같습니다. 1-2) return return 문은 점프문의 한 종류로서 언제든지 메소드 중간에 호출되어 메소드를 종결시키고 프로그램의 흐름을 호출..