오버로딩과 오버라이딩 차이는?

오버로딩

  • 반환타입 관계없음
  • 메소드명 같음
  • 매개변수 다름(자료형 또는 순서)
  • 생성자가 여러 개 필요한 경우 유용함

오버라이딩

  • 반환타입, 메소드명, 매개변수 모드 같음
  • 부모 클래스로부터 상속받은 메소드를 재정의하는 것.
  • 결합도를 낮추기 위한 방법 중 하나로 interface 사용이 있으며, 이 과정에서 오버라이딩이 적극 사용됨.

Call by Value vs Call by Reference

값에 의한 호출 : 값을 복사해서 새로운 함수로 넘기는 호출 방식. 원본 값 변경X

참조에 의한 호출 : 주소 값을 인자로 전달하는 호출 방식. 원본 값 변경O

메모리, 성능을 개선하기 위해 생각나는 방법?

static을 사용해 선언함.

  • 인스턴스 변수에 접근할 일이 없으면, static 메소드를 선언하여 호출하자
  • 모든 객체가 서로 공유할 수 있기 때문에 메모리가 절약되고, 연속적으로 그 값의 흐름을 이어갈 수 있는 장점이 존재.

클래스 vs 구조체

  • 구조체는 하나의 구조로 묶일 수 있는 변수들의 집합
  • 클래스는 변수 뿐만 아니라, 메소드도 포함시킬 수 있음.
  • 물론 함수 포인터를 이용해 구조체도 클래스처럼 만들 수 있음.

포인터 쉽게 설명

  • 포인터는 메모리 주소를 저장하는 변수
  • 포인터를 사용할 때 주의할 점은, 어떤 주소를 가리키고 있어야만 사용 가능.