본문으로 바로가기

C# 프로그램 시작하기 드디어 클래스 #10 메인사진

 

안녕하세요. 애드라이프입니다.

오랜만에 C#으로 돌아왔습니다!!

이전 포스팅으로 기초를 더 다지고 싶으신 분들은

하단 링크 꼭 참고해주세요.

[공지] C# 한 번에 모아보기 <-링크

 

[공지]C# 자료 한번에 모아보기

안녕하세요. 애드라이프 입니다. C# 자료를 포스팅하면서 한눈에 모아 볼수 있으면 좋겠다는 생각에 공지글에다 포스팅 순서대로 링크를 모아두려 합니다. 계속해서 업로드 되는데로 추가할 예정이다. C# 프로그..

increase-life.tistory.com

 

그렇게도 나중에 따로 말씀드린다고 했던!!

뒤에 가서 자세히 배우자고 했던 클래스입니다.

하지만 클래스를 알기 전에 잠깐

객체지향 언어에 대해 언급하겠습니다.

( 클래스를 설명하기 위해 꼭 필요한 개념입니다!! )

 

객체지향 언어는 모든 것을 객체로 표현하고 그것으로

프로그래밍을 하는 언어라고 간단히 말할 수 있습니다.

 

예를 들어 우리 주변에 있는 사물!

자동차, 연필, 거울, 청소기 등등

다 객체라고 할 수 있습니다.

물론 사물뿐 아니라 생물도 똑같은 개념입니다.

고양이, 강아지, 비둘기 모두요!

 

하지만 바로 생각했을 때 이것들을 프로그램으로

표현하기란 쉬운 일이 아닌 것처럼 보입니다.

 

우리는 표현하는 방법을 모를 뿐 어려운 일이 아닙니다.

 

방법을 간단히 설명하자면

처음에 자신이 표현하고자 하는 객체를 정합니다.

저는 자동차로 하겠습니다.

 

그럼 자동차에 대한 속성과 기능을 간단히 정의합니다.

자세히 정의할수록 복잡한 표현이 가능하겠지만

지금은 아주 간단하게 설정하겠습니다.

 

속성(겉모습이나 데이터로 표현이 가능한 것) - 변수로 표현 가능

- 색상

- 인승

 

기능(객체가 수행하는 기능이나 동작) - 메서드로 표현 가능

- 주행

- 주차

 

 

 

예를 들어 위와 같이 자동차의 속성과 기능을 정의합니다.

그럼 객체를 생성(프로그램) 하기 위한 준비는 끝입니다.

 

이제 클래스(Class)를 설명하겠습니다.

기본적으로 클래스는 객체를 포함하고 있습니다.

다시 말해 클래스 안에는 변수와 메서드가 존재한다는 말이죠.

 

기본 구조를 보면 이해가 더 쉬울 겁니다.

 

class  클래스 이름

{                      

//변수   

//메서드

}                     

 

프로그램으로 예를 들어보겠습니다.

class car
{
  public string car_color;    //자동차 색상을 나타내는 변수
  public int persons;         //자동차 인승을 나태내는 변수

  public void Driving()   //주행기능을 수행하는 메소드
  {
  	WriteLine($"{persons}인승 {car_color}색 자동차가 주행을 시작합니다.");
  }

  public void Parking()   //주차기능을 수행하는 메소드
  {
  	WriteLine($"{persons}인승 {car_color}색 자동차가 주차를 시작합니다.");
  }
}

위와 같이 클래스를 나타낼 수 있습니다.

위에서 언급한 대로 클래스는 변수(객체의 속성)와

메서드(객체의 기능)를 포함하고 있는 것을 알 수 있습니다.

( 뭐 꼭 변수와 메서드만 가지고 있다는 이야기는 아닙니다!! )

 

하지만 여기까지는 클래스는 생성한 것에 불과합니다.

어떻게 보면 예쁜 색상에 사람을 태울 수 있고

주행과 주차 기능이 있는 자동차를 만들어 놓기만 한 샘이죠.

너무 아깝지 않나요?

 

여기서 등장하는 개념이 바로 인스턴스와 생성자입니다.

 

객체 지향 프로그래밍(OOP)에서 인스턴스(instance)는

해당 클래스의 구조로 컴퓨터 저장공간에서 할당된 실체를 의미한다.

출처 : 위키백과! 객체지향 언어의 인스턴스란?

 

인스턴스 (컴퓨터 과학) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

생성자는 한글로 되어있으니 무슨 말인지 아실 테고

인스턴스가 어떤 의미인지 궁금하실 것 같아서

위키 형님에게 물어보고 왔습니다.

 

실체! 그렇습니다. 인스턴스는 실체를 의미하죠.

그래서 car라는 클래스의 인스턴스를 정의한다고

말하고 그것은 실제로 위에서 만든 자동차를 

사용한다는 의미가 됩니다!!

 

 

인스턴스는 아래와 같이 정의하고 사용합니다.

car DreamCar = new car(); // DreamCar라는 객체를 선언한다.
DreamCar.car_color = "무지개";    //자동차의 색상을 정의합니다.
DreamCar.persons = 2;               //자동차의 인승을 정의합니다.
DreamCar.Driving();         //무지개색 2인승 자동차가 주행을 시작합니다.
DreamCar.Parking();			//무지개색 2인승 자동차가 주차를 시작합니다.

위 코드에 보면 new car();라는 부분이 있습니다.

여기서 car()가 생성자라는 메서드입니다.

이 생성자라고 하는 메서드를 이용하여

new라는 키워드와 함께 DreamCar라는 객체를

생성해줍니다.

 

위의 모든 것을 하나의 프로그램으로 작성하여

이해를 돕도록 하겠습니다.

using static System.Console;

namespace Basic_class
{
    class car
    {
        public string car_color;    //자동차 색상을 나타내는 변수
        public int persons;         //자동차 인승을 나태내는 변수

        public void Driving()   //주행기능을 수행하는 메소드
        {
            WriteLine($"{persons}인승 {car_color}색 자동차가 주행을 시작합니다.");
        }

        public void Parking()   //주차기능을 수행하는 메소드
        {
            WriteLine($"{persons}인승 {car_color}색 자동차가 주차를 시작합니다.");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            car DreamCar = new car(); // DreamCar라는 객체를 선언한다.
            DreamCar.car_color = "무지개";    //자동차의 색상을 정의합니다.
            DreamCar.persons = 2;               //자동차의 인승을 정의합니다.
            DreamCar.Driving();         //무지개색 2인승 자동차가 주행을 시작합니다.
            DreamCar.Parking();			//무지개색 2인승 자동차가 주차를 시작합니다.
        }
    }
}

 

위 프로그램의 실행 결과는

C# 클래스 기본 프로그램 실행 결과

콘솔 프로젝트 생성과 실행방법을 모르시는 분은

아래 링크를 참고해주세요!!

 

콘솔 프로젝트 만들기 1편 <- 링크

 

C# 프로그램 시작하기 - 간단한 콘솔 프로젝트 만들기 #2

안녕하세요. 애드라이프입니다. 이전 포스팅에서는 C# 프로그래밍을 위한 개발 환경 구축을 진행했는데요. 모두 Visual Studio 2017 설치는 마무리 하셨나요? 혹시나 아직 개발 환경 구축을 하지못하�

increase-life.tistory.com

콘솔 프로젝트 만들기 2편 <- 링크

 

C# 프로그램 시작하기 - 간단한 콘솔 프로젝트 만들기 #2.5

안녕하세요. 애드라이프 입니다. 전 포스팅에서 C# 콘솔 프로젝트를 만들어보고 간단한 프로그램을 작성해서 실행까지 해보았습니다. 이번 포스팅에서는 #2편의 프로그램을 심층!? 분석하는 시간을 갖도록 하겠습..

increase-life.tistory.com

 

이번 포스팅에서는 클래스의 아주 기본적인 부분만

다뤘습니다. 벌써 머리가 아프시다는 분들은 

이전 포스팅을 천천히 복습하기고 오면 좀 나아질 겁니다!!

 

지금까지 클래스에 대한 내용이었습니다.

다음 포스팅에서도 클래스를 계속 이어서 할 예정입니다.

 

다음에는 더욱 유익한 포스팅으로 돌아오겠습니다.

by 애드라이프

 

구독과 공감버튼 눌러주세요!!