음악쪽을 전공하다가 전부터 흥미가 있었던
게임 개발을 하고 싶어서 유니티와 C# 으로
프로그래밍 언어와 처음 조우하게 된 프린이입니다.
오늘로 입문한지 3일 정도 되었는데
문법을 머리에 때려넣다가 객체지향 개념을 먼저
숙지해야 할 것 같아서 쭉 찾아보다 왔는데
뭔가 확인 없이 넘어가기 찝찝해서 글 남겨봅니다!

--------------------------------------------------------------------------


클래스 = 객체를 생성하기 위한 틀? 설계도?
혹은 객체를 정의해 놓은 것. (추상적인 개념인 것 같아서 이거다! 라고 설명하기가 힘드네요)


객체 (오브젝트) = 실존하는 유형적 사물 또는 무형적 논리나 개념. 프로그래밍적으로는 다수의 속성(멤버변수)과 다수의 기능(메소드)의 집합.


멤버변수 = 객체의 속성. 핸드폰을 예로 들면 크기, 길이, 색상 등


메소드 = 객체의 기능. 핸드폰을 예로 들면 전원 켜기, 끄기, 볼륨 높이기, 볼륨 낮추기 등


인스턴스 = 객체와 같은 의미지만 문맥에 따라 구별되는 용어
(객체는 인스턴스의 포괄적 의미, 인스턴스는 클래스 출처를 강조)
ex) A클래스로부터 생성된 객체는 A클래스의 인스턴스이다


--------------------------------------------------------------------------

위 개념들을 토대로 객체지향이 코딩에 적용되는 원리를

제가 이해한 바로는, 클래스 안에 멤버변수,

메소드를 작성하여 하나의 클래스를 완성 시킨 후,

필요할 때마다 해당 클래스 타입의 참조변수를 선언, 인스턴스를 생성하여

해당 클래스의 멤버변수를 사용하거나 메소드를 호출할 수 있다! 라는 건데요,

(상속이나 다형성이라는 개념에 대해선 아직 자세히 공부하지 못했습니다)

절차지향 언어는 아예 접해보질 않아서

둘의 차이점이나 각각 장단점은 모르겠지만

객체지향 언어는 조립식 컴퓨터와 비슷하다고 생각이 됩니다.

근데 지금 제가 이해하고 있는게 맞는건지,

객체지향에 대한 개념 정리를 어느 정도 선까지 해야

언어를 공부할 때 좀 더 이해가 편할지 고민되어 질문 드리게 되었습니다.

쓰다보니 글이 많이 길어진 것 같네요 ㅜㅜ

긴 글 읽어주셔서 감사드리고, 편의를 위해 세줄요약 하겠습니당



1. 제가 객체지향을 제대로 이해하고 있는건가요?

2. 이 정도까지만 알면 C# 문법 공부를 시작해도 괜찮을까요?

3. 객체지향 언어를 먼저 공부한 이후에 절차지향 언어를 공부해도 개념 이해에 문제가 없을까요?