C# 객체 지향 프로그래밍의 특징

2023. 4. 11. 10:38·C#
반응형
C#은 객체 지향 프로그래밍의 모든 특징을 지원합니다. 이에는 캡슐화, 상속, 다형성, 추상화 등이 포함됩니다.

캡슐화

캡슐화는 클래스와 객체를 설계하는 데 중요한 개념 중 하나입니다. 캡슐화는 데이터와 메서드를 하나의 단위로 묶어서 내부 세부 정보를 숨기는 것을 의미합니다. 이를 통해 코드의 가독성과 유지 보수성을 높일 수 있습니다.

상속

상속은 하위 클래스가 상위 클래스의 특성을 물려받는 것을 의미합니다. 상속을 사용하면 코드의 재사용성을 높일 수 있으며, 객체 간의 계층 구조를 더욱 명확하게 표현할 수 있습니다.

다형성

다형성은 객체 지향 프로그래밍의 핵심 개념 중 하나입니다. 다형성은 하나의 변수가 여러 개의 형식을 가질 수 있는 능력을 의미합니다. 이를 통해 코드의 유연성을 높일 수 있으며, 다양한 객체를 대상으로 한 메서드나 함수를 작성할 수 있습니다.

추상화

추상화는 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 추상화는 객체의 공통적인 특성을 추출하여 클래스로 정의하는 것을 의미합니다. 이를 통해 코드의 가독성을 높일 수 있으며, 객체 간의 유사성을 파악하기 쉬워집니다.


C#에서 복사와 참조

C#에서 변수를 복사하거나 참조하는 방법에는 두 가지가 있습니다. 값 형식 변수는 복사되지만, 참조 형식 변수는 참조가 복사됩니다.

값 형식 변수 복사

값 형식 변수는 메모리의 스택 영역에 저장됩니다. 값 형식 변수를 복사하면, 해당 변수의 값이 복사됩니다.

int i = 10;
int j = i; // i의 값이 j에 복사됩니다.

참조 형식 변수 참조

참조 형식 변수는 메모리의 힙 영역에 저장됩니다. 참조 형식 변수를 복사하면, 해당 변수가 참조하는 메모리 영역의 주소가 복사됩니다.

string str1 = "Hello";
string str2 = str1; // str1이 참조하는 메모리 영역의 주소가 str2에 복사됩니다.


C#에서 스택과 힙

C#에서 값 형식 변수는 메모리의 스택 영역에 저장됩니다. 이에 비해 참조 형식 변수는 메모리의 힙 영역에 저장됩니다.

스택

스택은 후입선출(LIFO) 원리를 따르는 자료 구조입니다. 값 형식 변수는 스택 영역에 저장됩니다. 값 형식 변수는 크기가 고정되어 있으므로, 스택에 저장하기 적합합니다.

힙

힙은 동적으로 할당되는 메모리 영역입니다. 참조 형식 변수는 힙 영역에 저장됩니다. 참조 형식 변수는 크기가 가변적이므로, 힙에 저장하기 적합합니다. 힙은 가비지 컬렉션에 의해 관리되므로, 메모리 누수가 발생하지 않도록 주의해야 합니다.


결론

이번 글에서는 C#에서 객체 지향 프로그래밍의 특징, 복사와 참조, 스택과 힙에 대해 알아보았습니다. 이러한 개념을 잘 이해하면, C#을 더욱 효율적으로 사용할 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'C#' 카테고리의 다른 글

C# 상속성과 은닉성  (0) 2023.04.13
C# 생성자와 static  (0) 2023.04.12
C# 인터페이스란?  (0) 2023.04.10
C# 제네릭 메서드  (0) 2023.04.09
C# using 문  (0) 2023.04.08
'C#' 카테고리의 다른 글
  • C# 상속성과 은닉성
  • C# 생성자와 static
  • C# 인터페이스란?
  • C# 제네릭 메서드
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (730)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (19)
      • 일기장 (4)
      • 파이썬 (131)
        • Basic (42)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (5)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    파이썬
    믈레코비타멸균우유
    cv2
    스크립트 실행 순서
    list
    appdevelopment
    리스트
    상품 리뷰 크롤링
    codingtips
    ipcamera
    카페24리뷰
    스크립트 실행
    devlife
    리뷰이관
    셀레니움
    쇼핑몰리뷰
    unity
    learntocode
    codingcommunity
    programmerlife
    유니티
    rtsp
    리뷰관리
    라떼우유
    programming101
    스마트스토어리뷰
    C#
    Python
    긴유통기한우유
    카페24리뷰이관
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
C# 객체 지향 프로그래밍의 특징
상단으로

티스토리툴바