C# 강좌 : 제 13강 - 클래스 & 메소드 (1)

   

클래스(Class)


클래스(Class)는 객체 지향 프로그래밍(OOP)에서 특정한 객체를 생성하기 위해서 필드, 속성, 메소드이벤트 등을 정의하는 입니다. 그룹화하여 자체 사용자 지정 형식을 만들 수 있는 구문입니다. 클래스는 참조 형식입니다.


객체 지향 프로그래밍이란? : 1강 바로가기

참조 형식이란? : 9강 바로가기


메소드 (Method)


메소드 (Method)는 일련의 코드를 하나의 그룹으로 묶은 것입니다. OOP적 의미에서는 객체의 데이터 처리 방법을 추상화한 것입니다. 그룹화된 코드는 메소드의 이름을 호출하는 것으로도 실행됩니다.


클래스와 메소드 형식


class 클래스이름
{
    필드 & 속성
    
    한정자 반환형식 메소드이름(사용될 매개변수 목록)
    {
        코드 1;
        코드 2;
        코드 3;
        ...
        return 반환값                
    }
}

한정자, 반환형식이란? : 3강 바로가기


클래스와 메소드####


animal이라는 클래스를 생성하여 select라는 메소드를 만들어보겠습니다.

class animal
{
    public string color;
    public string name;
    
    public void select()
    {
        Console.WriteLine("동물 : {0}{1}", color, name);
    }
}

출력 창에 동물 : {색상}{이름}으로 된 문구가 출력된다는걸 알 수 있습니다. 하지만 color와 name 필드에는 아무것도 선언되어 있지않습니다. 이를 생성자를 이용하여 설정할 수 있습니다. 생성자는 아래와 같이 설정할 수 있습니다.

private void Form1_Load(object sender, EventArgs e)
{
    animal ani = new animal();

    ani.color = "검은";
    ani.name = "고양이";
    ani.select();
}

실제 출력 값 : 동물 : 검은고양이

생성자는 클래스이름 객체이름 = new 생성자;로 구성되어 있습니다. ani라는 객체를 생성하며 ani는 animal 클래스와 연결되어 있습니다. 필드를 수정하거나 메소드를 불러올 수 있습니다.


private void Form1_Load(object sender, EventArgs e)
{
    ani.showing(40, 2);
}
class animal
{
    public int size;
    public int age;

    public void showing(int order_Size, int order_Age)
    {
        size = order_Size;
        age = order_Age;

        if (size > 50) Console.WriteLine("무거운 {0} 살",age);
        else Console.WriteLine("가벼운 {0} 살", age);
    }
}

실제 출력 값 : 가벼운 2살

위와 같이 반환 형식없이 매개변수만을 이용하여 출력값을 바꿔서 출력할 수 있습니다. order_Sizeorder_Age를 불러와 sizeage라는 변수에 값을 넣어줍니다.

public int size;
public int age;
public void showing2(int size, int age)
{
    this.size = size;
    this.age = age;

    if (size > 50) Console.WriteLine("무거운 {0} 살", age);
    else Console.WriteLine("가벼운 {0} 살", age);
}

매개변수필드이름을 같게 해도 사용할 수 있습니다. 단, this라는 키워드를 이용해야합니다. this 키워드를 이용하게되면 동일한 개체의 다른 생성자를 호출 할 수도 있습니다. this.size, this.age 뿐만 아니라 this.select()도 호출 할 수 있습니다.


코드

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            animal ani = new animal();

            ani.color = "검은";
            ani.name = "고양이";
            ani.select();

            ani.color = "빨간";
            ani.select();

            ani.showing(40, 2);
            ani.showing2(60, 4);
        }
        
        class animal
        {
            public string color;
            public string name;
            
            public void select()
            {
                Console.WriteLine("동물 : {0}{1}", color, name);
            }

            public int size;
            public int age;

            public void showing(int order_Size, int order_Age)
            {
                size = order_Size;
                age = order_Age;

                if (size > 50) Console.WriteLine("무거운 {0} 살",age);
                else Console.WriteLine("가벼운 {0} 살", age);
            }

            public void showing2(int size, int age)
            {
                this.size = size;
                this.age = age;
                
                if (size > 50) Console.WriteLine("무거운 {0} 살", age);
                else Console.WriteLine("가벼운 {0} 살", age);
            }
        }
    }
}


도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post C# 강좌 : 제 14강 - 클래스 & 메소드 (2) ⤧  Previous post C# 강좌 : 제 12강 - 점프문