728x90
2 - 5 : 클래스
2 - 6 : 구조체
5. 클래스
C#에서 클래스는 객체 지향 프로그래밍의 기본 단위로, 속성(데이터)과 메서드(기능)를 포함하는 사용자 정의 데이터 타입입니다. 클래스를 사용하면 관련된 데이터와 기능을 하나의 단위로 묶어 관리할 수 있습니다.
< 특징 >
1. 속성과 메서드 : 클래스는 데이터를 저장하는 속성과 해당 데이터를 처리하는 메서드를 포함합니다.
2. 객체 생성 : 클래스를 기반으로 객체를 생성하여 사용할 수 있습니다.
3. 상속 : 클래스를 상속받아 새로운 클래스를 정의할 수 있습니다.
예시)
using System;
class Program
{
static void Main()
{
// Person 클래스의 객체 생성
Person person1 = new Person("Alice", 30);
Person person2 = new Person("Bob", 25);
// 객체의 메서드 호출
person1.Introduce();
person2.Introduce();
}
}
// Person 클래스 정의
public class Person
{
// 속성
public string Name { get; set; }
public int Age { get; set; }
// 생성자
public Person(string name, int age)
{
Name = name;
Age = age;
}
// 메서드
public void Introduce()
{
Console.WriteLine($"안녕하세요, 제 이름은 {Name}이고, 나이는 {Age}세입니다.");
}
}
6. 구조체
C#에서 구조체는 사용자 정의 데이터 타입으로, 주로 작은 데이터 집합을 그룹화하는 데 사용됩니다. 구조체는 클래스와 유사하지만, 값 타입(value type)으로 작동하며, 주로 간단한 데이터 구조를 만들 때 사용됩니다.
< 특징 >
1. 값 타입 : 구조체는 값 타입으로, 변수에 할당될 때 복사가 이루어집니다.
2. 메모리 관리 : 구조체는 스택 메모리에 저장되며, 클래스는 힙 메모리에 저장됩니다.
3. 간결한 정의 : 구조체는 간단한 데이터 그룹화에 적합하며, 추가적인 기능이 필요하지 않은 경우에 사용됩니다.
예시)
using System;
class Program
{
static void Main()
{
Point point1 = new Point(10, 20);
Point point2 = new Point(30, 40);
Console.WriteLine($"Point 1: ({point1.X}, {point1.Y})");
Console.WriteLine($"Point 2: ({point2.X}, {point2.Y})");
double distance = CalculateDistance(point1, point2);
Console.WriteLine($"Distance between Point 1 and Point 2: {distance}");
}
static double CalculateDistance(Point p1, Point p2)
{
return Math.Sqrt(Math.Pow(p2.X - p1.X, 2) + Math.Pow(p2.Y - p1.Y, 2));
}
}
public struct Point
{
public int X { get; }
public int Y { get; }
public Point(int x, int y)
{
X = x;
Y = y;
}
}
728x90
'C# > 문법' 카테고리의 다른 글
C# 문법 17 -- 데이터 형식 정리 9 (0) | 2024.12.07 |
---|---|
C# 문법 15 -- 데이터 형식 정리 7 (0) | 2024.12.05 |
C# 문법 14 -- 데이터 형식 정리 6 (0) | 2024.12.04 |
C# 문법 13 -- 데이터 형식 정리 5 (0) | 2024.12.03 |
C# 문법 12 -- 데이터 형식 정리 4 (0) | 2024.12.02 |