객체지향
프로그램 내에서 개별적으로 존재하는 각 객체들이 서로 상호작용 하며 하나의 프로그램을 구동시킨다.
게임에 자동차를 하나 넣기 위해 현실의 모든것들을 담을 필요는 없다.
프로그램에 필요한 내용만 잘 추려서 담는걸 "추상화"라고 한다.
프로그램에 필요한 요소와 기능을 묶어서 설계도를 만들면 "클래스"라고 한다.
그 자료형을 통해 만들어진 결과물을 "객체"라고 한다.
이 객체들의 상호작용이 현재 가장 많이 사용되는 프로그래밍 패러다임이다.
- 추상화 : 복잡한 현실의 모든 세부 사항 생략 후 , 문제 해결에 필요한 요소와 기능만을 담음
- 클래스 : 객체를 만들기 위한 설계도
( struct 나 enum 설계도를 생성, 그 자체는 동작 x , 변수 생성해야 작동 )
- 객체 : 클래스를 기반으로 만들어진 실제 데이터의 동작 결합체
객체는 클래스라는 설계도를 바탕으로 생성된 실체이다.
struct 와 class 차이구조체는 크기가 작고 간단한 객체 정의용 ( 16바이트 이하, 변수 4개 정도 )구조체는 값 타입
클래스는 다소 복잡한 객체를 표현할 때 사용클래스는 참조 타입



// C# 에서는 멤버 변수 Get , Set 을 도와주는 "프로퍼티"
// - 멤버 변수 + 세팅과 반환을 합쳐놓은 것
private int posX;
// 프로퍼티 생성
// 프로퍼티는 외부에 노출될 필요가 없는 멤버번수를 정보은닉 시켜주는 동시에
// 외부와 소통할 일이 있을 때 Get, Set을 통해 직접적인 접근을 제공하는 대신 필터도 해준다.
public int PosX
{
get
{
return posX; // 내가 가진 멤버 변수 중, posX 를 찾아다가 반환
}
set
{
if(value > 1920)
{
posX = 1920;
}
else
{
posX = value;
}
posX = value; // 내가 가진 필드 중, posX 를 찾아서 value 값 대입, value : 외부서 넘어옴
}
}
}
static void Main(string[] args)
{
Car myCar = new Car();
myCar.PosX = 10;
Console.WriteLine(myCar.PosX);
}
}
'📖TIL' 카테고리의 다른 글
| 250916 예습 (0) | 2025.09.16 |
|---|---|
| 250915 복습 (0) | 2025.09.15 |
| 맨날 헷갈리는 배열 (0) | 2025.09.12 |
| 맨날 헷갈리는 구조체 (0) | 2025.09.11 |
| 맨날 헷갈리는 Enum (0) | 2025.09.11 |