오늘 특강에선 객체지향에 대해 다루었습니다. 객체 지향에 대해 TIL에 생각을 조금 정리해보려합니다.
객체: 객체 오브젝트 여러가지 이름으로 부릅니다. 이 객체라는 것은 정의되어 있는 요소들을 통들어 말한다고 저는 생각합니다. 어떤 것을 정의한다는 것은 그 대상에 의미를 부여한다는 것입니다.
예를 들어 수박이라는 것이 과일이라는 분류가 되는 것도 누군가가 정의하였기에 우리가 그렇게 생각하는 것이고
여기서 객체라는 것도 우리가 의미를 부여한 모든 물체나 개념을 의미한다고 저는 생각합니다.
클래스: 클래스는 저희가 붕어빵 틀이라고도 많이 불렀습니다. 인스턴스와 묶어서 붕어빵 틀과 붕어빵이라고 많이 표현하시는데 그 이유는 클래스는 기능적으로 구현을 하도록 미리 만들어두고 인스턴스로 그 기능을 다하기 때문인 것 같습니다.
클래스에 기능을 담아두기에 이것을 설계도와 같은 개념으로 이해해도 좋을 것 같습니다.
인스턴스: 인스턴스는 클래스가 실체화 되어 기능하는 것을 의미합니다. 그 자체로 객체라고 생각하기도 하며
클래스가 기능을 정의한다면 인스턴스는 그 기능을 실제로 다하는 쪽이라고 생각합니다.
추상화 : 객체지향에서 추상이라 한다면 기능적으로 비슷한 것을 분류하는 것을 말하는 것 같습니다. 물론 현실의 사물이 기능이 비슷하다 해서 같은 것이 되는 것은 아니겠지만 비슷하다고 생각할 수 있기에 그것을 클래스로 구현해볼수 있겠습니다.
캡슐화 : 기능별로 메소드와 변수들을 한곳에 묶어놓고 보호하는 것을 말합니다. 대부분 private 나 protected로 하는 이유도 이것의 장점을 활용하기 위해서입니다. 기능의 정보에 대해선 숨기면서 사용할 때 그 기능을 활용할 수 있다는 것은 장점 중 하나인 것 같습니다.
상속 : 상속이라는 것은 큰 틀 아래에서 조건에 해당하는 것을 묶어놓은 것을 말합니다.
현실에서 자동차들이 기능적으로 비슷하겠지만 만든 회사나 기술적인 부분에서 많이 차이가 난다면
코딩에서는 차라는 클래스를 만들어놓고 차의 기능을 하는 것들을 묶어놓을 수 있습니다.
다형화 : 한 객체가 맥락에 따라 다른 기능을 할 수 있는 것을 말합니다. C#에서 메소드 오버라이딩 이나 오버로딩 처럼 이름이 같더라도 다른 역할을 할 수 있는 것을 떠올릴 수 있었습니다.
이번주 발제로 새로운 팀과제를 부여받았습니다. 이번 주제는 고전 게임 장르 3가지 중 하나를 정해 재해석해보는 것을 목표로 프로젝트의 중점은 충돌부여에 있습니다.
하루동안 팀원들과 이야기를 나누어 와이어 프레임과 역할 분담을 하였고
저는 이번에 투사체 및 공격 구현을 담당해보려 합니다. (충돌효과에 대한 공부와 오브젝트 생성 로직에 대한 학습을 위해)
투사체를 구현하고 투사체가 이동하는 로직 투사체를 따로 모아둘 방법 투사체를 삭제하는 로직 등을 미리 생각해두고 내일부터 진행해보려합니다. (오전에 UML로 정리해볼 예정)
이번에 하나 새로 알게 된 내용:
캔버스는 내부 내용이 수정되면 요소 전체가 갱신되므로 자잘하게 나눠놓는 것이 좋다. (나중에 염두해볼것)
'TIL' 카테고리의 다른 글
2024 10 17 TIL (0) | 2024.10.17 |
---|---|
2024 10 16 TIL (1) | 2024.10.16 |
2024 10 14 TIL (1) | 2024.10.14 |
2024 10 11 TIL (5) | 2024.10.11 |
2024 10 10 TIL (0) | 2024.10.10 |