절차 지향 - 객체 지향
절차 지향이란?
절차(procedure) : 여기서 절차란 절차를 걸친다는 것이 아닌, 함수를 기반으로 만들겠다는 의미이다.
작은 프로젝트를 진행할때 큰 문제는 없지만 규모가 큰 프로젝트가 진행될때 유지보수가 어렵다는 단점이 있다.
함수 기반으로 만들어졌을 경우 진행 중 일부를 수정하기 위해선 함수 자체의 일부를 바꿔야 하기 때문에
제작한 함수를 복기하고 개선해야 하는 등의 번거로움이 있다.
객체 지향이란
OOP(Object Oriented Programming) : 프로젝트 내의 모든 객체(플레이어, 몬스터, NPC, 무기 등)
객체는 크게 "속성"과 "기능"으로 구분이 가능하다.
1. 속성 : HP, 공격력, 좌표(position)
2. 기능 : 이동(Move), 공격(Attack) 등
객체를 묘사하고 싶을 때 사용하는 문법은 'class'이다.
=>
class Player // class와 함꼐 이름을 선언한 경우에는 설계도를 작성한 것과 같다 ex) 붕어빵 틀 제작
{
public int hp; // public을 사용하지 않을 시 해당 class에서는 사용 가능하지만 외부 class에서는 접근이 불가능하다.
public int attack; // 속성
public void Move() {} // 기능
public void Attack() {}
}
class Game
{
static void Main(String[] args)
{
Player player = new Player(); //제작한 설계도(Player)를 따라 'player' 이름의
새로운 객체(new Player())를 만든다.
player.hp = 10;
player.attack = 10;
player.Move();
player.Attack();
}
}
'C#' 카테고리의 다른 글
| 추상클래스, 인터페이스 (0) | 2021.05.14 |
|---|---|
| Generic(일반화) (0) | 2021.05.14 |
| Dictionary (0) | 2021.05.13 |
| 다차원 배열 (0) | 2021.05.13 |
| 배열 (0) | 2021.05.12 |