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

C# Class & Method (1)

C# 강좌 : 제 13강 - 클래스 & 메소드 (1)
[ C# ] - 윤대희

클래스(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);
            }
        }
    }
}


Book Image

개정판이 출간됐습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍 (개정판)

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C#과 파이썬용 OpenCV의 데이터 형식과 행렬 및 배열 연산
  • 이미지/동영상/카메라를 활용한 입출력과 결과 저장
  • 전처리 과정과 정보를 탐색하기 위한 이미지 변형
  • 유의미한 정보를 검출하기 위한 이미지 변환
  • 이미지에서 정보를 검출 및 인식
  • 객체 검출을 포함한 모션 추적
  • K-means, KNN, SVM 등의 머신러닝 알고리즘 적용 방법
  • 카페(Caffe), 다크넷(Darknet), 텐서플로 모델을 활용한 딥러닝 모듈 적용 방법
  • Tesseract-OCR과 C# OpenCvSharp4를 활용한 프로젝트
  • 텐서플로와 Python OpenCV4를 활용한 프로젝트
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


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