이론을 싫어!

[c#] 클래스 개념 꽉~ 잡아보자 본문

C#

[c#] 클래스 개념 꽉~ 잡아보자

이론을 싫어! 2023. 5. 2. 18:08
반응형

클래스 개념 

 

- 클래스는 사용자가 직접 만든 틀 

 

- 변수(필드)와 함수(메소드)를 하나의 단위로 결합 

 

 - 상속, 다형성, 파생 클래스 클래스의 특수화 메커니즘 

 

정의 

1
2
3
4
5
6
7
8
9
public class Point
{
  public int a, b; // 변수(필드)
    
  public Point() // 메소드 (함수)
  {
   ...
  }
}
cs

 

이렇게 말하게 되면 좀 어렵다. 무슨 소리인지 하나도 모르는 것이다. 

 

여기서 대부분 예를 붕어빵 틀을 가지고 많이 예시를 드는데 

 

비유를 하자면 붕어빵 틀이 제일 간단한 예시이다. 

 

붕어빵 틀 하나로 우리는 붕어빵을 여러개 찍어 낼수 있듯이 

 

클래스가 붕어빵 틀이라고 생각하면 된다. 

 

원하는 모양을 하고 싶은 붕어빵의 틀을 만드는 것이 클래스라고 생각하면 될것이다. 

 

 

new 키워드

 

- 클래스의 객체 생성 

 

선언)

1
2
클래스명 객체명 = new 생성자 
ex)AA aa=new AA(); 
cs

 

예시)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class 계산기  // 클래스 
{
    public int a, b;  // 필드
 
    public void Sum()  // 메소드 
    {
        Console.WriteLine("a + b = " + (a + b));
    } 
}
public class Class1
{
    static void Main(string[] args)  // main
    {
        계산기 계산기1 = new 계산기();
 
        계산기1.a = 100;
        계산기1.b = 200;
 
        계산기1.Sum();
 
    }
}
cs

 

계산기 클래스를 만든뒤 그 클래스안에 필드 메소드를 넣어서 프로그램을 실행시킨 코드이다. 

(한국어 로 클래스 적어도 실행은 되지만 원래 국룰은 영어로 적어야한다. )

 

조금 설명을 하자면 계산기 중 a값과 b의 값을 더해서 결과값을 알려주는 틀(클래스)이다.

 

여기서 필드를 선언해주는데 만약에 여기서 접근지정자를 설정해주지 않는다면 

 

자동으로 그 필드는 private 이 된다. 이점에 주의해야할것이다. 

 

그리고 난뒤에 Sum()의 메소드를 볼수 있는데 여기서 void라고 적으면 반환값이 없다는 뜻을 가지고 

 

int 나 double 등등의 자료형이 있다면 그 해당되는 자료형으로 return을 해주어야한다. 

 

그리고 main의 메소드를 보게 되면 

 

계산기 계산기1 =new  계산기(); 라고 객체를 생성을 했다. 

 

이렇게 되면 계산기1이라는 이름을 가진 계산기 객체가 호출 즉, 계산기 클래스를 불러오겠다는 뜻이다. 

 

그리고 거기에 a의 값과 b의 값을 각각 넣어준 뒤 Sum()이라는 메소드를 호출하면 해당되는 값이 나온다.

 

실행 결과