728x90
객체 지향 프로그래밍이란?
컴퓨터 프로그램을 명령어 목록으로 보는 시각에서 벗어나 여러 개의 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것.
1. 캡슐화
서로 연관된 속성과 기능을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것.
데이터 보호: 외부로부터 클래스에 정의된 속성과 기능을 보호
데이터 은닉: 내부의 동작을 감추고 외부에는 필요한 부분만 노출
2. 상속
기존의 클래스를 상속받은 파생 클래사가 기존 클래스의 속성과 매서드를 재사용하고 확장할 수 있게 하는 것.
재사용성: 한 번만 정의하고, 간단하게 재사용 가능
3. 다형성
어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 것.
다른 형식들은 동열한 형식처럼 다룰 수 있다.
다운 캐스팅과 업 캐스팅 같은 변환 기능들의 다형성을 구현할 수 있다.
코드의 유연성과 재사용성, 확장성을 높인다.
4. 추상화 (Abstraction)
객체들의 공통적인 특징(속성, 기능)을 뽑아 이름을 붙히는 것.
인터페이스, 추상클래스 등으로 구현 가능.
추상 클래스, 인터페이스는 강제성을 띠기 때문에 더욱 안전한 코드를 작성 가능
코드의 유연성과 재사용성, 확장성을 높힘
728x90
'프로그래밍 언어 > C#' 카테고리의 다른 글
[C#] 메모리의 구조 (0) | 2024.08.26 |
---|---|
[C#] 가비지 컬렉션 (Garbage Collection, GC) (0) | 2024.08.22 |
댓글