2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

C#에서 정적 메서드(Static Method)는 어떻게 정의하나요?

_____
Q1: C 에서 정적 메서드란 무엇인가요?
A1: 정적 메서드는 클래스의 인스턴스 없이 클래스 이름으로 직접 호출할 수 있는 메서드입니다. 주로 공통 기능을 제공하거나 상태와 무관한 동작을 수행할 때 사용됩니다.

Q2: C 에서 정적 메서드는 어떻게 정의하나요?
A2: 메서드 선언 앞에 `static` 키워드를 붙여서 정의합니다. 예를 들어:
```csharp
public static void MyStaticMethod()
{
// 메서드 내용
}
```

Q3: 정적 메서드는 어디에서 호출하나요?
A3: 클래스 이름을 통해 호출합니다. 인스턴스 생성 없이 `ClassName.MyStaticMethod()` 형태입니다.

Q4: 정적 메서드 내부에서 인스턴스 멤버에 접근할 수 있나요?
A4: 아닙니다. 정적 메서드는 인스턴스 멤버(변수, 메서드)에 직접 접근할 수 없고, 정적 멤버만 접근할 수 있습니다.

Q5: 정적 메서드의 대표적인 사용 예는 무엇인가요?
A5: 유틸리티 함수, 수학 계산 메서드, 팩토리 메서드 등이 있습니다. 예를 들어 `Math.Sqrt()`는 정적 메서드입니다.
Q6: 정적 메서드는 생성자와 관계가 있나요?
A6: 정적 메서드는 인스턴스 생성과 무관하며, 정적 생성자(static constructor)는 클래스가 처음 사용될 때 단 한번 호출되어 정적 필드를 초기화합니다.

Q7: 예시 코드를 보여주세요.
A7:
```csharp
public class Utility
{
public static int Add(int a, int b)
{
return a + b;
}
}

// 호출
int result = Utility.Add(3, 4);
Console.WriteLine(result); // 출력: 7
```

Q8: instance 메서드와 static 메서드의 차이는 무엇인가요?
A8: 인스턴스 메서드는 클래스의 객체를 생성해야 호출 가능하지만, 정적 메서드는 객체 없이 클래스 이름으로 직접 호출 가능합니다. 인스턴스 메서드는 객체 상태를 다루고, 정적 메서드는 주로 상태와 무관한 기능을 수행합니다.
C 에서 정적 메서드(Static Method)는 클래스의 인스턴스(객체)를 생성하지 않고도 호출할 수 있는 메서드입니다.

정적 메서드는 클래스 자체에 속하며, 클래스의 모든 인스턴스가 공유하는 데이터를 처리하거나, 클래스와 관련된 유틸리티 기능을 제공하는 데 유용합니다.

정적 메서드를 정의하고 사용하는 방법에 대해 자세히 설명하겠습니다.

정적 메서드 정의하기 정적 메서드를 정의하려면 `static` 키워드를 사용하여 메서드를 선언합니다.

아래는 정적 메서드를 정의하는 기본적인 예제입니다.

```csharp public class MathUtility { // 정적 메서드 정의 public static int Add(int a, int b) { return a + b; } } ``` 위의 예제에서 `MathUtility`라는 클래스 안에 `Add`라는 정적 메서드를 정의했습니다.

이 메서드는 두 개의 정수를 매개변수로 받아 그 합을 반환합니다.

`static` 키워드를 사용하여 이 메서드가 정적임을 명시했습니다.

정적 메서드 호출하기 정적 메서드는 클래스 이름을 통해 직접 호출할 수 있습니다.

인스턴스를 생성할 필요가 없으므로, 다음과 같이 호출할 수 있습니다: ```csharp class Program { static void Main(string[] args) { // 정적 메서드 호출 int result = MathUtility.Add(5,

10); Console.WriteLine("The result is: " + result); } } ``` 위의 코드에서 `MathUtility.Add(5,

10)`을 통해 정적 메서드를 호출하고, 그 결과를 출력합니다.

정적 메서드의 특징 1. 인스턴스 필요 없음 : 정적 메서드는 클래스의 인스턴스를 생성하지 않고도 호출할 수 있습니다.



2. 클래스 수준에서 공유 : 정적 메서드는 클래스의 모든 인스턴스가 공유합니다.

즉, 인스턴스 변수에 접근할 수 없고, 정적 변수나 다른 정적 메서드에만 접근할 수 있습니다.



3. 상태 유지 불가 : 정적 메서드는 인스턴스 상태를 유지할 수 없으므로, 인스턴스 변수에 접근할 수 없습니다.

대신, 메서드 내에서 필요한 모든 데이터를 매개변수로 전달해야 합니다.



4. 유틸리티 메서드 : 정적 메서드는 일반적으로 유틸리티 기능을 제공하는 데 사용됩니다.

예를 들어, 수학 계산, 문자열 처리, 날짜 및 시간 관련 기능 등을 구현할 수 있습니다.

정적 메서드와 정적 클래스 정적 메서드는 정적 클래스 내에서도 정의할 수 있습니다.

정적 클래스는 인스턴스를 생성할 수 없는 클래스이며, 모든 멤버가 정적이어야 합니다.

정적 클래스를 정의하는 방법은 다음과 같습니다: ```csharp public static class StringHelper { public static string ToUpperCase(string input) { return input.ToUpper(); } } ``` 정적 클래스를 사용하면 관련된 정적 메서드를 그룹화하여 코드의 가독성을 높일 수 있습니다.

정적 클래스의 메서드는 다음과 같이 호출할 수 있습니다: ```csharp class Program { static void Main(string[] args) { string result = StringHelper.ToUpperCase("hello"); Console.WriteLine(result); // 출력: HELLO } } ``` 결론 C 에서 정적 메서드는 클래스의 인스턴스를 생성하지 않고도 호출할 수 있는 강력한 기능입니다.

정적 메서드를 사용하면 관련된 기능을 그룹화하고, 코드의 재사용성을 높이며, 유틸리티 메서드를 쉽게 정의할 수 있습니다.

이러한 메서드는 주로 클래스와 관련된 공통 기능을 제공하는 데 사용되며, 프로그램의 구조를 보다 명확하게 만드는 데 기여합니다.

작성자: 김하린 [비회원] | 작성일자: 1년 전 2024-09-09 08:39:16
조회수: 149 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.