학습
C# 속성과 메서드
C# 속성과 메서드 — 초급
속성과 메서드
1. 도입 (왜 배워야 하는가)
C#에서 속성과 메서드는 객체 지향 프로그래밍(OOP)의 핵심 구성 요소입니다. 속성은 객체의 상태를 정의하고, 메서드는 그 상태를 조작하는 방법을 제공합니다. 실무에서 객체 지향적 설계를 통해 코드의 재사용성과 유지보수성을 높일 수 있기 때문에 이 두 개념을 이해하는 것은 필수적입니다. 만약 이 개념을 모른다면, 객체 지향 프로그래밍의 장점을 활용하지 못하고 복잡한 코드로 인해 유지보수가 어렵고, 버그가 발생하기 쉬운 상황에 처할 수 있습니다.
2. 핵심 개념 설명
- 속성 (Property): 객체의 특성을 나타내는 변수입니다. 예를 들어, '사람' 객체는 '이름', '나이'와 같은 속성을 가질 수 있습니다.
- 메서드 (Method): 객체가 수행할 수 있는 동작을 정의합니다. 예를 들어, '사람' 객체는 '걷다', '말하다'와 같은 메서드를 가질 수 있습니다.
관련 용어 정리
| 용어 | 설명 |
|---|---|
| 클래스 | 객체의 설계도, 속성과 메서드를 포함 |
| 인스턴스 | 클래스의 실제 객체 |
3. 기본 코드 예제
다음은 속성과 메서드를 사용하는 간단한 예제입니다.
using System;
class Person
{
// 속성 정의
public string Name { get; set; }
public int Age { get; set; }
// 메서드 정의
public void Introduce()
{
Console.WriteLine($"안녕하세요, 제 이름은 {Name}이고, 나이는 {Age}살입니다.");
}
}
class Program
{
static void Main(string[] args)
{
Person person = new Person(); // Person 클래스의 인스턴스 생성
person.Name = "홍길동"; // 속성에 값 할당
person.Age = 30; // 속성에 값 할당
person.Introduce(); // 메서드 호출
}
}
안녕하세요, 제 이름은 홍길동이고, 나이는 30살입니다.
1. using System;: System 네임스페이스를 사용하기 위해 지정합니다.
2. class Person: Person이라는 클래스를 정의합니다.
3. public string Name { get; set; }: Name이라는 속성을 정의합니다.
4. public int Age { get; set; }: Age라는 속성을 정의합니다.
5. public void Introduce(): Introduce라는 메서드를 정의합니다.
6. Console.WriteLine(...): 인사말을 출력합니다.
7. class Program: 프로그램의 시작점인 클래스를 정의합니다.
8. static void Main(...): Main 메서드를 통해 프로그램 실행을 시작합니다.
9. Person person = new Person();: Person의 인스턴스를 생성합니다.
10. person.Name = "홍길동";: Name 속성에 "홍길동"을 할당합니다.
11. person.Age = 30;: Age 속성에 30을 할당합니다.
12. person.Introduce();: Introduce 메서드를 호출하여 인사말을 출력합니다.
4. 실전 활용 예제
예제 1: 쇼핑몰 장바구니 구현
쇼핑몰에서 장바구니를 구현할 때, 제품의 속성과 장바구니에 담길 수 있는 메서드를 사용할 수 있습니다.
class Product
{
public string ProductName { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
public decimal CalculateTotalPrice()
{
return Price * Quantity;
}
}
class ShoppingCart
{
private List<Product> products = new List<Product>();
public void AddProduct(Product product)
{
products.Add(product);
}
public decimal GetTotalPrice()
{
decimal total = 0;
foreach (var product in products)
{
total += product.CalculateTotalPrice();
}
return total;
}
}
예제 2: 학생 성적 관리
학생의 성적을 관리하는 프로그램에서 학생의 속성과 성적을 계산하는 메서드를 활용할 수 있습니다.
class Student
{
public string Name { get; set; }
public List<int> Grades { get; set; } = new List<int>();
public double CalculateAverage()
{
return Grades.Average();
}
}
5. 흔한 실수와 주의사항
- 속성을 잘못 사용하기:
- 메서드 호출 시 인스턴스 생성 잊기:
- 속성과 메서드는 객체 지향 프로그래밍의 기본 요소입니다.
- 속성은 객체의 상태를 나타내고, 메서드는 행동을 정의합니다.
- 실무에서 객체 지향 설계를 통해 코드의 재사용성과 유지보수성을 높일 수 있습니다.
- 다음에 학습하면 좋은 주제로는 상속과 다형성이 있습니다.
public string Name; // 잘못된 예
- 올바른 코드:
public string Name { get; set; }; // 올바른 예
Person person;
person.Introduce(); // NullReferenceException 발생
- 올바른 코드:
Person person = new Person();
person.Introduce(); // 정상 작동