OOP C# 제대로 정리하기

jiho·2020년 1월 9일
0

C#

목록 보기
1/4

Talking about object-oriented programming

현실 세계의 object는 자동차나 사람같은 것이다. 반면에 programming에서의 object는 현실 세계의 상품이나 은행 계좌와 같은 것을 종종 나타냅니다. 하지만 그것은 더욱 추상적으로 나타날 수 도 있습니다.

C#에서 우리는 object의 타입을 정의하기 위해 주로 class를 또는 가끔씩 struct 키워드를 사용할 것입니다.
struct와 class의 차이점을 무엇일까요?
struct는 stack에 저장되어 더욱 빠르게 작동합니다.(CPU가 직접적으로 관리하기 때문에 더빠르다고합니다. cache효과) 반면에 class는 reference type이기 때문에 heap에 저장되게되고 주소값을 가리키는 변수만 stack에 저장되게됩니다.

OOP의 개념은 간단히 6가지로 나눌 수 있습니다.

  • Encapsulation
    어느 object와 관련된 action이나 data의 조합을 나타냅니다.
  • Composition
    Composition(포함)은 어떤 object들로 만들어졌느냐입니다. 예를들어 차는 여러가지의 부품의 조합으로 만들어집니다.
  • Aggregation
    object가 무엇과 결합될 수 있는지에 대한 것입니다. 예를들어 사람은 차의 일부는 아니지만 좌석에 앉을 수 있고 차의 운전자가 될 수 있습니다.
  • Inheritance
    base or super class를 통해서 subclass를 가짐으로써 코드를 재사용하는 특징입니다.
  • Abstraction
    구체적이고 상세한것을 무시하고 객체의 중심 개념만 가지는 것을 추상화라고 합니다.
  • Polymorphism
    상속받은 클래스에게 상속된 action을 custom하게 override를 제공하는 것입니다.

Building class libraries

Class library assemblies는 types을 모두모아 쉽게 배포하기 쉬운 단위로 그룹화시킨다.(DLL files)
dotnet cli를 설치했다고 가정하겠습니다.

dotnet new classlib

Understandin members

Members는 fields, methods or specialized versions of both이 될 수 있습니다.

Fields

Fields는 데이터를 저장하기 위해 사용된다. 세가지의 특별한 fields의 카테고리가 있습니다.

  • Constant
  • Read-only
  • Event
    Constant는 결코 변하지 않는 데이터 입니다. 컴파일러는 데이터를 그대로 어느 코드로 복사한다. 그것을 읽기위해.(그냥 상수 값 그대로 실행코드에 박아버립니다.)
    Read-only는 class가 instance화된 후 변화되지 않는 데이터입니다.그리고 Read-only 데이터는 인스턴스화했을 때 외부소스에서 loaded되거나 calculated될 수 있습니다.
    Event는 clicking이나 button 또는 다른 코드의 요청에 반응했을 때 우리가 실행되길 원하는 1개이상의 methods를 참조하는 data입니다.

Methods

  • Constructor
    class를 메모리에 할당하고 인스턴스화하기 위해 우리가 new keyword를 사용할 때 실행됩니다.
  • Property
    우리가 데이터를 get or set할 때 실행됩니다. 이 데이터는 흔히 field에 저장됩니다. 하지만 외부적으로 저장되거나 런타임에 계산될 수 있습니다. 만약 field의 메모리주소가 노출될 필요가 없으면 캡슐화하는 것을 선호합니다.
  • Indexer
    array syntax[]를 사용해서 데이터를 get or set 할 때 실행됩니다.
  • Operator
    +, -, *, /
profile
Scratch, Under the hood, Initial version analysis

0개의 댓글