요즘들어 개발을 할 때 뭔가 기계적으로 하고 있다는 느낌이 강하게 든다.
물론, 개발은 그렇게 하는게 맞다라고 생각하지만 뭔가 의문점이 들기 시작한다.
내가 기본기를 갖추고 개발을 하고 있는게 맞나?
그래서 초, 중, 고등학교 시절 컴퓨터 언어를 공부했던 내용들을 다시 살펴보면서 다시 정리를 해보려한다.
변수
- 변할 수 있는 데이터를 ‘임시’로 저장할 수 있는 공간.
- Ex) 데이터타입 변수명;dis
조건문
- 어떠한 요인 또는 상황이 변할 때 달라질 수 있는 문장.
- 조건이나 상황에 따라 프로그램이 동작을 수행하기 위해 조건문을 사용함.
반복문
- 어떠한 명령을 반복하여 수행하는 명령문.
- 같은 문장을 여러 번 반복할 때 편리하게 사용하기 위해 사용함.
배열
- 인덱스와 인덱스에 대한 데이터로 이루어진 자료구조.
- 처음 배열에 대해 공부를 했을 떄(초6 13살) 인덱스와 자료구조라는 말의 뜻을 이해하기 쉽지 않았다. 하지만 계속 찾아보고 공부를 한 결과 중학생일 때 인덱스와 자료구조라는 말의 뜻을 어느정도 이해할 수 있었다.
- 인덱스란? 배열의 데이터가 저장되어 있는 상대적 위치
- 자료구조란? 데이터를 구조적, 효율적으로 표현하고 구현하는 데 필요한 알고리즘을 정의한 것.
객체
- 실체하는 개체 (객체는 속성, 메소드로 이루어져있고 이를 객체의 멤버라고 함)
- Java를 공부했을 때(중학생) 메소드 = 함수로 이해를 하고 넘어갔었다. 이 개념 또한 고등학생이 되고 어느정도 제대로 이해할 수 있었는데 메소드는 ‘객체에 속한’ 함수로 클래스나 객체에 의해 호출되고 객체의 동작을 나타내는데 반해, 함수는 독립적으로 정의, 호출되며 특정한 객체에 종속되지 않는다.
클래스
- 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀.
생성자
- 객체를 생성할 때 생정자를 호출 해 개체의 상태를 초기화 함.
상속
- 부모 클래스의 변수와 메소드를 상속받아 자식 클래스를 만드는 행위.
- Java에서 상속은 자식 클래스가 부모 클래스에게 상속을 요청하고, 부모 클래스가 자식 클래스에게 속성과 메소드를 상속해준다. 쉽게 예를 들면, 우리가 현실세계에서 상속이라하면 부모님의 재산을 물려받게 되는 것을 생각하지만 이 경우 부모님의 재산이 나에게 상속되는 즉, 부모님의 재산이 0이 되는 상태가 된다. 하지만 컴퓨터언어에서의 상속은 이런 경우가 아니고 부모의 직업이 나에게 상속되는 것으로 비유하는 것이 적절하다. 부모가 자식에게 상속을 해주어도 부모 클래스의 속성과 메소드는 그대로 남아있기 떄문이다.
오버로딩
- 같은 이름의 메소드를 매개변수에 따라 중복 정의를 해두고, 메소드를 호출할 때 매개변수의 형식에 따라 자동매칭 해줌.
- 여기서 매개변수라는 용어가 등장하는데, 공부했을 당시(중학생) 인수, 인자, 매개변수의 차이점이 이해가 되지 않아서 힘들었던 기억이 있다. 이것 또한 고등학생때 어느정도 이해를 하기 시작했다. 인수(Argument)는 함수나 메소드 호출 시 전달되는 값, 인자(Parameter)는 함수 정의에서 전달된 값에 대한 이름, 매개변수(Parameter)는 함수 내부에서 사용되는 전달된 값에 대한 변수임.
오버라이딩
- 부모 클래스에서 계승받은 메소드를 다시 재정의하는 행위.