25.09.30 개발일지 / C# 클래스

2025. 11. 11. 10:55·LMS 7/개발일지

프로퍼티(Property)

1. 클래스의 캡슐화

> 클래스는 private, public과 같은 접근지정자를 통해 클래스 내 필드(Filed)와 매서드(Method)를 클래스 생성자에 의도에 맞게 사용할 수 있도록 캡슐화를 할 수 있다.

​

2. Get, Set

> 대표적인 입출력 매서드(Method)인 set, get은 Private로 선언된 필드(Filed)의 값을 의도대로 쓰거나 읽게 함으로써 클래스의 안정감을 보장한다

Class Test{
    private
        int top;
    public void set(int value)
    {
        top = i;
    }
    public int Get()
    {
        return top;
    } 
}
 

3. 프로퍼티

> 프로퍼티는 위처럼 Get, Set 매서드의 반복적 정의에 대한 불편함을 이유로 필드에 접근하는 방식으로 간결하게 미리 처리해둔 것이 프로퍼티 구조인 것임

// 정의
public int Top
{
    set { top = value;}
    get { return top;}
}
// 사용
// pb > 오브젝트
pb.Top = value; // set, 오브젝트명.프로퍼티명 = 값;
pb.var = Top; // get, 오브젝트명.변수 = 프로퍼티명;

정적 멤버

1. 설명

> 클래스와 연관된다(클래스 전체의 하나의 값이 된다.) -> 여러 오브젝트가 정적멤버를 공유한다.

> 다른 멤버들과는 다르게 생성된 오브젝트를 기준으로 사용되는 것이 아니라 클래스를 기준으로 사용된다.

2. 실제 예

using System.Windows.Forms;
using System.Drawing;

class Car
{
    public static int Count = 0; // 정적멤버 필드

    public Car() // 생성자
    {
        Count++; // 오브젝트가 생성될 때마다 1씩 증가한다
    }

    public static string CountCar() // 정적멤버 매서드
    {
        return "자동차는 " + Count + "대 있습니다.";
    }
}

class test
{
    public static void Main(){
        Form fm = new Form();
        fm.Text = "test";
        fm.Width = 250;
        fm.Height = 100;

        Car c1 = new Car(); // 오브젝트 생성1
        Car c2 = new Car(); // 오브젝트 생성2

        Label lb = new Label();
        lb.Width 170;
        lb.Text = Car.CountCar(); // 정적 매서드 호출
        lb.Parent = fm;

        Application.Run(fm);

    }
}

> 생성자가 호출될 때마다 정적멤버필드인 Count가 1씩 증가함.

3. 사용 이유

> 기존의 멤버들을 사용하는 경우에는 오브젝트가 클래스를 통해 초기화 될 때마다 모두 독립적으로 초기화되는 반면 클래스 자체에서 공유하는 멤버를 두는 경우에는 데이터를 전체적으로 관리할 수 있다는 이점이 존재하므로 사용한다.


클래스 라이브러리

1. 클래스 라이브러리 Namespace 모음

https://learn.microsoft.com/ko-kr/dotnet/api/

 

.NET API browser

Explore Microsoft's comprehensive .NET API browser. Your ultimate resource for all .NET-based APIs. Start your search now.

learn.microsoft.com

2. 간소 정리

> System

가장 기본: 문자열(String), 날짜(DateTime), 컬렉션(List<T>, Dictionary<TKey,TValue>), 예외(Exception) 등

C#의 기본

> System.IO

파일/폴더 접근, 스트림

예: File, StreamReader, StreamWriter

> System.Net / System.Net.Sockets

네트워크(TCP/UDP/HTTP)

예: TcpClient, TcpListener, HttpClient

> System.Data

데이터베이스

예: SqlConnection, SqlCommand, DataTable

> System.Threading / Tasks

멀티스레드, 비동기 처리

예: Thread, Task, async/await

'LMS 7 > 개발일지' 카테고리의 다른 글

25.10.01 개발일지 TCP/IP 스택  (0) 2025.11.11
25.09.30 개발일지 / C# 4(1) (Chapter19)  (0) 2025.11.11
25.09.29 개발일지 / C# 3 (Chapter13)  (0) 2025.11.11
25.09.29 개발일지 / C# 2(3) (Chapter11, Chapter12)  (0) 2025.11.11
25.09.28 개발일지 / C# 2(2) (Chapter09, Chapter10)  (0) 2025.11.11
'LMS 7/개발일지' 카테고리의 다른 글
  • 25.10.01 개발일지 TCP/IP 스택
  • 25.09.30 개발일지 / C# 4(1) (Chapter19)
  • 25.09.29 개발일지 / C# 3 (Chapter13)
  • 25.09.29 개발일지 / C# 2(3) (Chapter11, Chapter12)
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
25.09.30 개발일지 / C# 클래스
상단으로

티스토리툴바