목록전체 글 (23)
minjea.dev의 코딩블로그
오늘은 c#의 기능중, 형변환이라는것을 알아보겠습니다. 기본 자료형 강의에서 말씀드렸던, c#의 기본 자료형중, 숫자 형식을 이용하여 형변환을 알아보겠습니다. int 타입은 -2,147,483,648 ~ 2,147,483,647의 범위의 수를 포함할수 있고, sbyte는 -128 ~ 127, byte는 0 ~225, short는 -32,768 ~ 32,767의 범위의 수를 포함할수 있습니다. 즉, int 타입은, sbyte, byte, short 등을 포함할수 있다는 소리입니다. 따라서, sbyte, byte, short등은 int로 형변환을 할수 있는데, 다음과 같이 가능합니다. sbyte _sbyte = 127; byte _byte = 225; short _short = 32767; // 형변환 in..
클래스의 상속에 대하여 알아보겠습니다. 여기서 상속을 받는 클래스를 부모 클래스라고 하고, 상속을 하는 클래스를 자식 클래스라고 하겠습니다. 자식 클래스는 다른 말로 부모 클래스에서 파생되었다 해서, 파생 클래스라고도 합니다. 상속을 받은 클래스는, 부모 클래스의 기능과 속성을 물려받습니다. 따라서, 대부분 중복되는 특성을 부모 클래스에 정의하고 그것을 상속받는 식으로 코딩하기도 합니다. 클래스를 상속받으려면 클래스 이름 옆에 콜론(:)과 부모 클래스의 클래스명을 작성해주시면 됩니다. 다음과 같이 말이죠. 참고로 c#에서는 다중 상속이 불가능합니다.(클래스당 하나의 클래스만을 상속받을수 있습니다) class Parent {} class Child:Parent {} 넘어가기 전 먼저 protected 접근..
namespace 네임스페이스란 이름이 중복되는 클래스 등을 구분하기 위해 나온 기능입니다. A가 dll을 만들어 배포하고, B도 dll을 만들어 배포했다고 가정해봅시다. 만약 A가 만든 dll에 CSharp이란 클래스가 있고, B가 만든 dll에도 CSharp이란 클래스가 있다고 하면, 이 두개의 dll을 동시에 이용하면 에러가 발생하게 됩니다. 따라서 이런 문제를 해결하기 위해 등장한 것이 네임스페이스입니다. 아래는 기존 코드입니다 class CSharp {} // A가 만든 클래스 class CSharp {} // B가 만든 클래스 이러면 에러가 발생합니다. 따라서, 이럴때 네임스페이스로 문제를 해결할수 있습니다. 네임스페이스를 이용하여 문제를 해결한 코드는 다음과 같습니다. namespace Ad..
접근 제한자 설명 private 클래스 내부에서만 접근가능. protected 클래스 내부에서 접근할수 있고, 클래스를 상속받은 클래스에서도 사용이 가능하다. public 클래스 내부와 외부 모두 접근이 가능하다. internal 동일한 어셈블리에서만 접근가능. internal protected 동일 어셈블리 내에서 정의된 클래스이거나, 다른 어셈블리라면 파생 클래스인 경우에 한해 접근을 허용. 접근 제한자는 클래스와 구조체, 인터페이스, 클래스의 메서드, 필드 등에서도 사용이 가능합니다. private private는 모든 클래스 멤버의 기본적인 접근제한자로써, 다음과 같이 작성하면, private 접근 제한자가 생략된것으로 간주됩니다. public class testClass { int num; //..
오늘은 정적 필드, 정적 메서드, 정적 생성자에 대하여 알아보겠습니다. 정적 필드 정적 필드를 선언하면 해당 필드는 인스턴스마다 각각 생성되는것이 아니라, 그 클래스 전역에서 접근하거나 사용할수 있습니다. 정적 필드를 선언할때는 앞에 static 키워드를 붙여주면 됩니다. 아래는 Human 클래스에 정적 필드인 instances를 선언한 예제입니다 class Human { public string name; public int age; public string gender; static public int instances; public Human(string name, int age, string gender) { this.name = name; this.age = age; this.gender = g..
이번시간에는 저번시간에 이어서, 생성자와 소멸자에 대하여 알아보도록 하겠습니다. 생성자 생성자란, 객체가 생성되는 시점에 호출되는 메서드라고 생각하시면 될듯 합니다. 즉, 인스턴스가 만들어지는 시점에 작동한다고 생각하시면 됩니다. 그렇다면 이 생성자는 어떻게 생성하고, 어떤 역할을 할까요? 일단 생성하는 법부터 알아보겠습니다. 생성하는 방법은 다음과 같습니다 class 클래스명 { [접근제한자] 클래스명(매개변수들) { code.... } } 위를 보시면 생성자의 이름이 클래스명과 동일하다는 점을 눈치채셨을 겁니다. 또한, 자세히 보면 반환타입도 없습니다. 그 이유는, 생성자는 메서드와는 달리 값을 반환할수 없기 때문입니다. 그 점을 제외하면 일반 메서드와 똑같다고 생각하시면 됩니다. 아래는 저번 시간에..
객체 일단 클래스를 배우기 전에 여러분은 객체 지향 프로그래밍(Object Oriented Programming, OOP)에 대하여 알아 두셔야할 필요가 있습니다. 객체 지향 프로그래밍을 알려드리기 전에, 객체에 대하여 알아야 합니다 객체란 우리 주변에 모든 물체를 객체라 할수 있습니다. 여러분이 지금 이 블로그를 보고 있는 전자기기나, 책, 혹은 키보드, 마우스, 칫솔, 베개 등을 객체라 할수 있습니다. 또한 모든 객체는 각각 속성(attribute)과 행동(behavior)을 가지고 있습니다. 속성이란, 컴퓨터를 예로 들자면, 기기 이름, 운영체제, 혹은 컴퓨터 모니터의 면적 등이 모두 속성이 될수 있습니다. 그럼 행동은 무엇일까요? 행동은 동물을 예로 들자면, 음식을 먹거나, 움직이는 것들이 행동이..
우리는 저번 시간에 조건문에 대하여 배워보았습니다. 그런데 아직 우리가 할수 없는것이 하나 있습니다. 그건 바로 특정 코드를 특정 횟수만큼 반복하여 실행하는것입니다. 반복문을 왜 배워야 할까요? 예를 들어, 1에서 100까지의 수를 출력하는 코드를 작성한다고 해봅시다. 그러면 우리는 코드를 약 100줄을 짜야 합니다. 그런데 여기서 더 큰 문제는, 코드를 변경해야 하는 경우입니다. 코드를 1000에서 1100까지의 수를 출력하는 코드로 변경해야 한다면 우리는 코드를 일일이 하나하나 다 변경해야 합니다..... 너무 끔찍할것 같습니다. 이럴때 반복문이 사용되는 것입니다. 반복문 반복문이란 무언가를 반복해서 실행하는 것입니다. 어떠한 기준을 만족할 때까지 말이죠. while문 while문은 if문과 사용 방..
이제 우리는 c#에서 변수를 만들고, 변수를 활용하여 연산을 할수 있을 정도까지 왔습니다. 그렇다면 이제 우리는 새로운 기능을 하나 배워보도록 합시다. 바로 조건문입니다. 조건문을 배운다면, 여러분은 이제 여러가지 조건을 비교하고 그에 따라 코드를 실행할수 있을 겁니다. if, else문 c#에서는 조건문을 다음과 같이 사용할수 있습니다. if (조건) { 실행구문; } 조건에는 bool형을 반환하는 함수나, 연산자를 넣으시면 되고, 실행구문에는 조건이 참일 경우 실행할 문법을 넣어주시면 됩니다. c#은 조건이 참일 경우 실행구문을 실행하고, 아니라면 실행하지 않고 다음으로 넘어갑니다. 만약 조건이 여러개라면 어떻게 해야 할까요? 여러분은 아마도 if문을 여러개 사용하는걸 생각하셨을 겁니다. 다음과 같이..
저번시간에 우리는 c#의 기본 연산자와 변수에 대하여 알아봤습니다. 오늘은 c#에서 사용이 가능한 여러가지 연산자에 대하여 알아볼 예정입니다. 오늘 알아볼 연산자들은, 수식연산자, 증감연산자, 할당연산자, 논리연산자, 관계연산자, 비트연산자, 시프트연산자, 총 7개입니다 1. 수식연산자 수식 연산자 작동 방식 예제 + 우측 피연산자와 좌측 피연산자를 더함 1+1 - 우측 피연산자와 좌측 피연산자를 뺌 2-1 * 우측 피연산자와 좌측 피연산자를 곱함 4*4 / 우측 피연산자와 좌측 피연산자를 나눔 8/2 % 우측 피연산자와 좌측 피연산자를 나누고 나머지를 반환 7%2 수식연산자는 우리가 잘 아는 사칙연산을 할수 있게 해주는 연산자입니다. 즉, 이 연산자를 이용하면, 더하기, 빼기, 곱하기, 나누기, 나머지..