Log to grow

[C# 기초] 클래스의 기초 개념 본문

PL

[C# 기초] 클래스의 기초 개념

kkkrrr 2018. 7. 14. 18:04

    C#을 처음 접했을 때 클래스의 개념이 이해가 잘 되지 않아 고통스러웠던 적이 있다. 클래스를 사용하기 위해서는 아래보다 훨씬 많은 개념을 알아야 하지만 처음 C#을 배울 때 아래의 내용(특히 1번)을 정확히 알고 다른 개념들을 익혔더라면 훨씬 빠르게 배울 수 있었을 것 같다. 



1. C# 프로그램의 모든 것은 Type으로 구성되어 있다. 

C#은 객체 지향 언어이다. 

    객체 지향 언어의 핵심은 객체로 모든 것을 표현할 수 있다는 것이다. 객체란 쉽게 이해하자면 '현실 세계의 모든 것'이라고 할 수 있다. 우리 주변에 있는 휴대폰, 펜, 의자 등 모든 것이 객체이다. 이러한 객체를 중심으로 구성된 문법을 기반으로 하는 언어를 객체 지향 언어라고 한다. 

    그렇다면 클래스는 무엇일까? 바로 이 객체들의 Type에 해당한다. 위에서 이야기한 휴대폰은 '전자 기기'라는 Type에 속하는 객체이다. 펜은 '필기 도구'라는 Type에 속할 것이고, 의자는 '가구'라는 Type에 속할 것이다. 이러한 Type을 클래스라고 한다. 다만, 휴대폰을 '전자 기기'라는 Type으로 정의할 것인지, '소지품'이라는 Type으로 정의할 것인지는 코드를 짜는 사람의 마음이다.

    우리는 이미 여러가지 Type에 대하여 알고 있다. int, float, string, char, bool과 같은 것들이 Type이다. 이러한 Type들은 언어가 제공하는 기본 타입이며, 객체 지향 언어에서는 이러한 기본 Type들과 더불어 여러가지 Type(클래스)를 만들 수 있게 하는 것이다. 


2. 클래스는 필드(Field)와 메서드(Method)로 구성된다.

    마이크로소프트의 C# 가이드는 클래스를 '인스턴스를 만드는 청사진'이라고 표현한다. 인스턴스(Instance)는 위에서 표현한 객체와 같은 말이고, 청사진은 쉬운 말로 설계도라고 할 수 있다. 즉, 클래스는 '객체를 만드는 설계도' 라고 이해할 수 있다. 설계도(클래스)는 객체가  어떻게 만들어져야 하는지 객체에 대한 정보를 담고 있어야 한다.  

    이러한 정보는 두 가지로 구분 되는데 바로 속성과 행위이다. C#에서는 속성을 '필드'라고 하고, 행위를 '메서드'라고 한다. 아래는 그 예와 설명이다. 


1) Sports라는 클래스를 아래와 같이 정의하였다.



    위 코드에서 name과 numOfPlayer는 Sports라는 클래스의 필드이다. 필드는 클래스에 담겨 있는 정보(속성)을 말하는데 간단히 얘기하면 클래스 내부에 포함된 변수를 필드라고 할 수 있다.

    DisplayName()과 DisplayNumOfPlayer()는 클래스의 메서드이다. 각각 name과 numOfPlayer라는 변수를 출력하는 동작을 정의해놓았다. 메서드는 클래스의 동작, 행위라고 할 수 있다. 


2) Main 메서드에서 baketball과 football 객체(인스턴스)를 생성하였다. 



basketball과 football은 Sports라는 Type에 속하는 객체라는 것을 알 수 있다.  C#에서 객체를 생성하는 방법은 다음과 같이 new 예약어를 이용한다. 


Sports basketball = new Sports();


그 후 생성된 객체의 필드와 메서드는 [객체 이름].[필드 이름] or [객체 이름].[메서드 이름] 과 같이 사용할 수 있다. 각 객체의 필드에 적절한 값을 대입해주고, 메서드를 이용하여 콘솔창에 그 값을 띄웠다. 아래는 그 결과이다. 








'PL' 카테고리의 다른 글

[책] 시작하세요! C# 7.1 프로그래밍  (2) 2018.06.27
Comments