TIL 25.01.31 - class

강진규·2025년 1월 31일

Today I Learned

목록 보기
3/34
post-thumbnail

3주차 강의를 들었는데 클래스가 이해가 잘 안되어서 다시 공부하면서 정리해보았다.

[ 클래스 ]

  • 객체를 생성하기 위한 템플릿 또는 설계도 역할을 함
  • 속성과 동작을 가지며 속성은 필드로, 동작은 메서드로 표현함
  • 객체를 생성하기 위해서는 클래스를 사용하여 인스턴스를 만들어야함
class Person
{
    public string Name;  //1. 필드 (Fields)
    public int Age;

    public void Print()  //2. 메서드 (Methods)
    {
        Console.WriteLine($"이름 : {Name} \n나이 : {Age}");
    }
}

static void Main(string[] args)
{
    Person p = new Person();  //3. 생성자 (Constructors)
    p.Name = "hi";
    p.Age = 22;
    p.Print();
}

[ 접근 제한자 ]

클래스, 필드, 메서드 등의 접근 가능한 범위를 지정하는 키워드

  • public: 외부에서 자유롭게 접근이 가능
  • private: 같은 클래스 내부에서만 접근 가능
  • protected: 같은 클래스 내부와 상속받은 클래스에서만 접근 가능

[ 필드와 메서드 ]

클래스는 필드와 메서드로 구성

  • 필드 : 클래스 내부에 선언되어 있는 변수, 클래스의 상태를 나타내는 데이터를 저장
class Person
{
	//필드
	public string Name;	 
    public int Age;
}
  • 메서드 : 클래스 내부에 선언되어 있는 함수, 클래스의 동작을 정의하고 실행
class Person
{
    public string Name;  
    public int Age;

	//메서드
    public void Print()  
    {
        Console.WriteLine($"이름 : {Name} \n나이 : {Age}");
    }
}

[ 생성자와 소멸자 ]

  • 생성자 : 클래스의 인스턴스를 생성할 때 호출되는 메서드, 객체를 생성할 때 new 키워드와 함께 호출
Person person1 = new Person();	// 디폴트 생성자 호출 
								// 클래스와 동일한 이름을 가지며, 반환 타입이 없음
Person person2 = new Person("John", 25);	// 매개변수를 받는 생성자 호출
  • 소멸자 : 클래스의 인스턴스가 메모리에서 해제될 때 호출되는 메서드
~Person()
{
	Console.WriteLine("Person 객체 소멸");	//자원, 메모리 해제 및 로깅, 디버깅
}

[ 프로퍼티 ]

  • 클래스 멤버로서, 객체의 필드 값을 읽거나 설정하는데 사용되는 접근자 메서드의 조합
  • 객체의 필드에 직접 접근하지 않고, 간접적으로 값을 설정하거나 읽을 수 있게 함
[접근 제한자] [데이터 타입] 프로퍼티명
{
    get
    {
        // 필드를 반환하거나 다른 로직 수행
    }
    set
    {
        // 필드에 값을 설정하거나 다른 로직 수행
    }
}

[접근 제한자] [데이터 타입] 프로퍼티명 { get; set; }  // 자동 프로퍼티

처음엔 강의를 들으면서 솔직히 이해 1도 못했는데, 제공된 강의 자료랑 같이 보니까
조금씩 이해가 되었다. 마지막으로 다시 한번 적어보니까 더 이해가 잘 되는거같다.
벌써부터 개인과제에 대한 걱정이 한가득 생겼다. ㅎㅎ;;

0개의 댓글