반응형

전체 글 2934

[C#] 5.1.5 생성자

5.1.5 생성자 생성자는 정의한 클래스나 구조체의 개체가 생성될 때 수행할 코드를 작성하는 메서드입니다. 생성자는 반환 형식을 명시할 수 없고 형식 이름과 같은 이름을 갖는 특별한 메서드입니다. C#에서 정의할 수 있는 생성자 종류에는 기본 생성자, 입력 매개 변수가 있는 생성자, 정적 생성자가 있습니다. 기본 생성자는 입력 매개 변수가 없는 생성자를 말합니다. 기본 생성자는 클래스에서만 명시적으로 정의할 수 있으며 구조체는 매개 변수 있는 생성자만 정의할 수 있습니다. 또한, 클래스나 구조체 내에 어떠한 생성자도 정의하지 않으면 묵시적으로 기본 생성자가 만들어지며 멤버들을 기본값으로 초기화하는 등의 작업을 수행합니다. [그림 15] 구조체에 명시적으로 기본 생성자를 정의할 경우 오류화면 ▶ 생성자를 ..

[C#] 5.1.4 인덱서

5.1.4 인덱서 인덱서는 멤버 요소들로 구성된 컬렉션 개체의 요소에 쉽게 접근할 수 있게 해 주는 멤버입니다. 인덱서는 매개 변수가 있다는 점을 제외하면 구현 방법이 속성과 매우 흡사하며 속성처럼 get 블록과 set 블록을 선택적으로 정의할 수 있습니다. 인덱스를 캡슐화할 때에는 요소 형식, this 키워드, [매개 변수]를 선언하고 내부에 get 혹은 set 블록을 정의하면 됩니다. class Example{ ... public string this[int index] { get { return ...; } set { ...[index] = value; } }} 사용하는 곳에서는 인덱스 연산자를 이용하여 원하는 요소를 참조할 수 있습니다. static void Main(string[] args){ ..

[C#] 5.1.3 메서드와 매개 변수 전달 방식

5.1.3 메서드와 매개 변수 전달 방식 메서드는 수행해야 할 작업에 대한 코드가 있는 블록입니다. 메서드는 이름과 수행에 필요한 입력 매개 변수와 수행한 결과 형식을 선언하고 블록 내에서 수행할 코드를 정의해야 합니다. 메서드의 입력 매개 변수는 여러 개가 올 수 있으면 콤마를 통해 구분하게 됩니다. 그리고 반환 형식은 하나만 정의할 수 있으며 필요가 없으면 void 로 선언합니다. int DoAny(int a, int b){ return a + b;} 입력 매개 변수는 전달하는 방법에는 값으로 전달하는 방법과 참조로 전달하는 방법이 있습니다. 선언문에 단순히 형식과 변수 이름만 명시하면 값을 복사하여 전달되며 out이나 ref를 명시하면 참조로 전달됩니다. 값을 복사하여 전달하면 호출한 곳의 변수와 ..

[C#] 5.1.2 멤버 속성

5.1.2 멤버 속성 멤버 속성은 멤버 필드에 있는 값을 얻어오거나 변경할 때 사용할 수 있게 제공하는 특별한 메서드입니다. 멤버 속성을 캡슐화하기 위해서는 형식과 속성 명을 선언하고 전용 필드의 값을 얻어올 때 사용하는 get 블록과 설정하는 set 블록을 선택적으로 정의할 수 있습니다. 각 블록에서는 메서드처럼 내부에서 수행할 작업에 대한 코드를 작성할 수 있으며 필요에 따라 get 블록과 set 블록의 접근 한정을 다르게 지정할 수도 있습니다. get 블록에서는 선언한 형식을 반환해야 하고 set 블록에서는 value 이름으로 전달된 값을 사용할 수 있습니다. using System; namespace Ex_MemberProperty { class Man { public string name; //..

[C#] 5.1 캡슐화 대상(멤버) - 멤버 필드

5.1 캡슐화 대상(멤버) C#에서 클래스나 구조체를 정의할 때 다양한 멤버들을 캡슐화가 가능합니다. 가장 기본적인 멤버는 데이터를 캡슐화하기 위한 멤버 필드와 수행할 작업에 대한 논리적 코드를 정의하는 메서드입니다. 그리고 사용하는 곳에서는 캡슐화된 데이터처럼 보이지만 실제로는 수행할 작업을 정의할 수 있는 특별한 메서드인 속성을 제공합니다. 배열이나 연결 리스트처럼 요소 개체들을 보관하는 컬렉션에서는 사용자가 인덱스 연산을 통해 요소에 접근할 수 있는 인덱서를 제공하고 있습니다. 그리고 정적 멤버인 상수 멤버와 읽기 전용이 있습니다. 이 외에도 개체를 생성할 때 수행할 작업을 정의할 수 있는 생성자와 메모리에서 개체를 제거할 때 작업을 정의하는 소멸자가 있습니다. 그리고 형식 내에 서브 형식을 정의할..

[C#] 5. 캡슐화

5. 캡슐화 C#에서는 프로그램 목적에 맞게 사용자가 형식을 정의할 수 있습니다. C#에서 사용자가 형식을 정의하기 위한 문법으로 클래스와 구조체, 열거형 등을 제공하고 있는데 열거형에 대해서는 앞에서 다루었으며 여기에서는 클래스와 구조체에 대해 알아봅시다. 클래스와 구조체는 여러 개의 멤버를 하나의 형식으로 묶어 하나의 형식으로 정의할 수 있습니다. 이와 같은 작업을 캡슐화라고 하는데 C언어에서는 구조체만 제공하고 있으며 캡슐화 대상도 멤버 필드(멤버 변수)로 한정되어 있었습니다. C++언어에서는 클래스를 제공하고 구조체와 클래스에 캡슐화 대상이 멤버 필드뿐만 아니라 멤버 메서드도 캡슐화 대상입니다. 그리고 C언어는 캡슐화된 멤버에 접근 지정자를 제공하고 않아서 모든 멤버에 접근할 수 있습니다. 이는 ..

[아산 여행] 현충사에서

[아산 여행] 현충사에서 이용시간09:00~18:00 하절기(3월~10월) 09:00~17:00 동절기(11월~2월) 관람 종료 1시간 전까지 입장이 가능합니다. 관람료2012년부터 무료로 개방하고 있어요. 휴관일매주 월요일 위치충남 아산시 염치읍 현충사길 126주변 여행지 [아산 여행] 아산의 새 명소 탕정 지중해 마을에서 여유를 즐기다.[여행/국내여행] - 살기 좋은 마을 아산 외암마을[여행/국내여행] - [충남 아산] 공세리 성당 여행 후기 및 갤러리 현충사는 충무공 이순신장군의 정신을 기리기 위한 곳이죠.충무공이 결혼하여 무과에 급제하기까지 10여년 살았던 고택이 있습니다.그리고 난중일기, 임진장초, 서간첩,사부유서, 충무공 장검 등의 많은 고서와 유물들이 전시하고 있는 곳이죠.또한 임진왜란 당시..

여행/국내여행 2016.05.02

[가평 여행] 해오름에서 제자들과 함께

[가평 여행] 해오름에서 제자들과 함께 올해 5월을 마지막으로 15년 강사 생활을 마감합니다.이미 수료하여 IT 전문 인력으로 사회생활하는 제자들이 같이 바람쐬러 가자고 연락이 왔어요.충분한 시간을 두고 연락이 온 것이라 약속을 잡는데 아무런 문제가 없었죠.그리고 약속 날 아침에 차가 막히기 전에 약속 장소인 가평 해오름으로 출발했어요.약속 시간이 오후 1시였는데 11시에 도착하여 여유있게 주변을 돌아다녔어요. 제자들은 아직도 젊은지 저녁이 되기 전까지 족구, 족구, 족구, 족구,족구, 족구,족구, 풋살, 풋살,족구, 족구, 족구,... 개가 멋있네요.저녁이 되면서 먹는 즐거움얘기하는 즐거움함께하는 즐거움을 나누었죠. 학생 시절에는 다들 늦게 일어나더니 이제 사회인 티를 내더군요.아침 6시부터 한 둘 일..

여행/국내여행 2016.05.02

지능형 에이전트(Intelligent agent)

안녕하세요. 언제나 휴일, 언휴예요. 이번에는 지능형 에이전트를 알아보기로 해요. 지능형 에이전트(Intelligent agent) 특정 목적을 달성하기 위해 사용자 개입없이 작업을 수행하는 시스템 에이전트 설계 시 고려해야 할 과제 환경 PEAS Performance: 성능을 판별하는 기준이 필요합니다. Environmemt: 에이전트가 동작하는 환경을 파악해야 합니다. Actuators: 에이전트가 취할 수 있는 동작을 조사해야 합니다. Sensors: 에이전트가 감지해야 할 것들과 이에 관한 센서를 파악합니다. 예) 자동차 에이전트 Performancd: 안전, 이동시간, 안전, 고장 등 Environment: 도로, 보행자, 신호, 다른 차량 등 Actuators: 가속, 감속, 방향 전환 등 S..

인간의 뇌와 슈퍼 컴퓨터

안녕하세요. 언제나 휴일, 언휴예요. 이번에는 인간의 뇌와 슈퍼 컴퓨터를 알아보기로 해요. 인간의 뇌 뉴런이라는 신경 세포에 의해 자극을 받아들이고 신호를 전달합니다. 인간은 천억(10의 11승)개의 뉴런을 갖고 있습니다. 그리고 메시지 송수신 역할을 담당하는 시냅스는 뉴런 하나에 1000여 개 정도 있습니다. 따라서 백조(10의 14)개의 시냅스가 있는 것입니다. 이 부분이 현재의 슈퍼 컴퓨터보다 뛰어난 점이죠. 연산을 수행하는 주기(Cycle)은 10의 -3승으로 1000Hz로 컴퓨터와 비교하면 현저히 떨어집니다. 슈퍼 컴퓨터 슈퍼 컴퓨터는 개인용 컴퓨터와 비교했을 때 연산을 수행하는 주기(Cycle)은 10의 -9승 정도로 비슷합니다. GHz 정도라고 보면 되겠죠. 개인용 컴퓨터보다 뛰어난 연산력을..

반응형