1. Class

<!-- 이 강좌를 보고 오시기 전에, C# 기초를 모르시는 분은 기초 강의를 보고 오시는 것을 추천 드립니다.

 

C#이 객체 지향 언어 (OOP) 라는 것은 익히 알고 있는 사실입니다.

 

그럼 객체(object) 가 뭘까요? 예를들어 설명하자면, 눈앞에 있는 모든것이 객체입니다. 스마트폰, 노트북, 빗 등등...

 

그런 객체들은 자기 각각의 상태를 가지고 있습니다. 무게, 맛, 성능 등등.. 또한 객체를 이용하여 일련의 동작이 가능합니다. 빗으로 머리를 빗거나 노트북으로 게임을 하는 등..

 

이러한 상태를 변수로 표현이 가능하고, 동작은 메소드로 표현이 가능합니다.

 

즉, 객체는 상태 + 동작. 변수 + 메소드 라고 할 수 있습니다.

 

또한 클래스는 그러한 객체를 생성 할 수 있는 "틀" 이라고 할 수 있죠. 객체를 여러개 찍어 낼 수 있는 틀 입니다.

 

클래스는 다음과 같이 선언 가능합니다.

 

제한자 class 클래스_이름
{
// 클래스 내부
}

 

접근 제한자는 여러가지가 있지만, 클래스 개념을 배운 후에 다시 언급하겠습니다.

 

상기 말한 스마트폰을 예시로 클래스를 하나 만들어 보도록 하죠.

 

class smartphone
{
private string phonename; //폰 이름 필드
private int version; // 폰의 버전을 나타내는 필드
private string ownername; // 폰 주인을 나타내는 필드

public  void whosephone()
{
Console.WriteLine(" {0} : 꺼임 ", ownername);
}
}

 

변수가 필드가 된다고 생각하시면 편합니다.

 

스마트폰을 간략화 해서 클래스로 만들어 보았습니다.

 

위 소스를 이용하여 풀- 소스를 만들어 보죠

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Hello_World
{
    class smartphone
    {
        public string phonename; //폰 이름 필드
        public int version; // 폰의 버전을 나타내는 필드
        public string ownername; // 폰 주인을 나타내는 필드

        public void whosephone()
        {
            Console.WriteLine(" {0} : 꺼임 ", ownername);

        }
    }
        class Program
    {
        static void Main(string[] args)
        {
            smartphone smart = new smartphone();
            smart.ownername = "JOHNSON";
            smart.version = 6;
            smart.phonename = "iPhone";
            smart.whosephone();

            Console.WriteLine("{0} 님의 폰 이름은 {1} 이구 그 버전은 {2} 임", smart.ownername, smart.phonename, smart.version);
            
        }
    }
}
    

 

실행 시켜보면

 

 

와 같이 나옵니다.

 

코드를 분석하면 smartphone 클래스 내부에서 변수 3개를 선언하고, 폰 주인의 이름을 말하는 메소드를 선언 해둡니다.

 

그후 Main 메소드 내에서 변수 3개의 값을 각각 결정해주고, 폰 주인의 이름을 말하는 메소드를 사용 한후, Console로 각각 필드 값을 출력 시킨후 종료하게 됩니다.

 

그 중 이부분의 소스에 주목해주세요

 

smartphone smart = new smartphone();

 

클래스명 식별자 = new 클래스명(); 의 꼴을 취하고 있습니다.

 

이것이 "객체" 를 만드는 생성 방법입니다.

 

즉, 여기서 smartphone 은 "틀" 이 되는 클래스가 되는것이며 smart 는 "객체" 가 되는 것 입니다.

 

기본 변수와 선언하는 방법이 다른 점 유념해 두셔야 합니다.

 

뒤의 클래스명(); 은 생성자라고 하는데, 나중 강의에 다루도록 하겠습니다.