본문 바로가기

언어공통

[C++, java 언어공통]상속을 언제, 왜 쓸까? inheritance, Is-A 상황으로 상속 한번에 이해하기 우리가 메이플스토리 게임을 만들거예요 하주 대충요 일단 메이플스토리의 캐릭터들을 만들어봅시다 마법사, 전사, 도적 이렇게 만들어 볼게요 그러면 대략적으로 class 마법사 { ~ }; class 전사 { ~ }; class 도적 { ~ }; 근데 캐릭터들은 당연히 움직일수 있어야 하니까 관련 기능을 넣어줘야겠죠? 이능을 함수(메소드)로 구현해줍니다 이렇게 마법사에게 움직이고 뛰고 앉을 수 있는 기능들을 추가해줬어요 그런데 이기능들은 마법사에게만 해당하는 것은 아니죠? 전사도 움직이고 점프하고 앉을수 있어야 하고, 도적도 움직이고 점프하고 앉을 수 있어야 해요 즉 세개의 클래스에 똑같이 저 기능을 추가해줘야 하는거예요 벌써부터 노가다 기운이 올라오지 않나요? 지금 예시 캐릭은.. 더보기
C++ , JAVA 등 언어 공통) overriding 재정의, 오버라이딩이란? 오버라이딩은 오버로딩이란 단어도 비슷해서 자주 비교해서 출제되요 그러니깐 오버라이딩 보기전에 오버로딩이 헷갈리시다면 오버로등 게시글을 보고 오시는걸 추천합니다 오버라이딩 들어가기전에 확실하게 잡고있어야할 개념입니다 overriding 오버라이딩이란? 오버라이딩은 상속의 개념에서 자연스럽게 넘어가면 이해하기 편해요 저번 게시글에서 메이플 캐릭터를 예시로 상속에 대해서 얘기했었는데 오버라이딩은 결국 상속을 조금더 편하게 사용하기 위해서 나온거랍니다 자 부모 클래스 캐릭터와 자식 클래스 전사와 도적이 있습니다 그런데 좀 생각해보면 도적은 보통 민첩이 높아서 날라다니거나 걷는 속도가 훨씬 빠르잖아요 지금은 부모인 캐릭터 클래스로부터 물려받아서 전사나 도적이나 둘다 속도가 10이잖아요 자식이라 똑같이 물려받으니깐.. 더보기
( C, C++,JAVA 공통 ) 오버로딩이란? 프로그래밍의 기초를 다지는 시간입니다. 이번에는 OVERLOADING 오버로딩 VS OVERRIDING 오버라이딩 말이 비슷해서 비교대조 문제로 종종 출제되는 오버로딩에 댕해서 알아볼께요 ※ OVERLOADING 이란? 사진에서 볼수 있듯이 "너무 많이 적재하다" 라는 의미를 가지고 있습니다 즉 겹겹히 쌓아올리는 이런느낌을 생각하면 됩니다. 자그러면 C++, JAVA, C#,C등 언어에서 사용되는 함수 오버로딩 또는 메소드 오버로딩은 무엇을 의미할까요?? 일단 '함수/메소드 +오버로딩' 이니 '함수를 겹겹히 덮어쓰는행위' 라는것을 유추해볼수 있어요 (+함수 중첩) 함수오버로딩이니 함수부터 생각해봅시다 함수를 정의할때 그래서 SUM(5,3) 하면 5+3인 결과 값 8을 우리가 얻을수 있어요 하지만 만약 소.. 더보기