728x90
반응형
1. 접근 제한자
public
:클래스 외부 어디서나 접근 가능합니다.
private
: 선언된 클래스 내에서만 접근 가능합니다.
protected
: 선언된 클래스와 파생된 클래스 내에서 접근 가능합니다.
internal
: 같은 어셈블리 내의 모든 클래스에서 접근 가능합니다.
protected internal
: 같은 어셈블리, 또는 파생 클래스에서 접근 가능합니다.
private protected
: 선언된 클래스와 동일한 어셈블리 내의 파생 클래스에서만 접근 가능합니다.
2. 메서드 및 클래스 관련 키워드
static
: 메서드가 클래스의 인스턴스를 생성하지 않고도 메서드를 바로 사용할 수 있게합니다.
void
: 메서드가 반환 값이 없음을 나타냅니다.
const
: 상수, 즉 변경할 수 없는 값을 정의합니다.
readonly
: 읽기 전용 필드를 정의합니다. 선언 시 또는 생성자에서만 값을 할당할 수 있습니다.
virtual
: 파생 클래스에서 재정의(override)할 수 있는 메서드를 정의합니다.
override
: 상속받은 클래스에서 부모 클래스의 메서드를 재정의 합니다.
abstract
: 파생 클래스에서 구현해야 하는 추상 메서드나 클래스를 정의합니다.
3. switch
switch ( 조건을 확인 할 대상 )
{
case 조건1:
// 조건을 확인 할 대상과 조건1이 일치하는 경우의 처리 구문
break; // switch 문 종료합니다.
case 조건2:
// 조건을 확인 할 대상과 조건2이 일치하는 경우의 처리 구문
break; // switch 문 종료합니다.
default: // case 조건들에 전부 해당하지 않는 경우 실행합니다.
// case조건들에 전부 해당하지 않는 경우의 처리 구문
break; // switch 문 종료합니다.
}
4. Stack
//Stack
Stack stack = new Stack(); //Stack 클래스의 인스턴스 생성합니다.
stack.Push("First"); //데이터 1번
stack.Push("Second"); //데이터 2번
Console.WriteLine(stack.Pop()); //Pop 시 2번 출력됩니다.
Console.WriteLine(stack.Pop()); //Pop 시 1번 출력됩니다.
try //에러 확인 용 try - catch
{
Console.WriteLine(stack.Pop()); //에러나서 실행 안됩니다.
}
catch (Exception ex)
{
Console.WriteLine($"예외 내용 : {ex.Message}"); //에러 메시지가 뜹니다.
}
stack.Clear(); //stack 비우기입니다.
Stack은 아래에서 위로 데이터를 쌓는 형태의 자료 구조입니다.
Stack은 LIFO (Last In First Out) 후입선출 특성을 보입니다.
나중에 들어온 데이터 2번이 먼저 출력됩니다.
5. Heap
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
}
static void Main(string[] args)
{
Person person1 = new Person("킴", 15);
Person person2 = new Person("팍", 17);
Console.WriteLine($"{person1.Name} 은/는 {person1.Age} 살");
Console.WriteLine($"{person2.Name} 은/는 {person2.Age} 살");
person1.Age = 18;
Console.WriteLine($"{person1.Name} 은/는 {person1.Age}살");
}
C#에서 Heap은 메모리 관리의 한 부분으로, 주로 객체와 배열을 저장하는 데 사용됩니다.
Heap에 할당된 메모리는 가비지 컬렉션에 의해 관리되며, 객체의 수명이 끝나면 자동으로 메모리가 해제됩니다.
C#에서 Heap 메모리의 관리 방식은 메모리 누수를 방지하고 효율적인 메모리 사용을 지원한다고 합니다.
Heap 메모리: 위 예제에서 Person 클래스의 인스턴스는 new Person(...)을 통해 Heap에 할당됩니다.
이 객체는 메서드가 종료된 후에도 존재할 수 있으며, 필요할 때까지 메모리에 유지됩니다.
C#에서 클래스는 참조 타입입니다.
person1과 person2는 각각 Heap에 있는 Person 객체를 참조하고 있습니다. 두 변수가 같은 객체를 참조할 수도 있습니다.
'C# > 문법' 카테고리의 다른 글
C# 문법 8 -- Nullable (0) | 2024.11.28 |
---|---|
C# 문법 7 -- 구조체(Struct) (0) | 2024.11.27 |
C# 문법 5 (0) | 2024.11.25 |
C# 문법 4 (0) | 2024.11.24 |
C# 문법 3 (0) | 2024.11.24 |