250325 클래스와 static

램해·2025년 3월 25일

머리가 터질 것같다! 과제에만 2시간 넘게 투자했는데 가망이 보이지 않아서 먼저 TIL을 쓰려고 한다. 아직 능이버섯은 될 수 없다..

금일은 Static 와 부모자식간의 상속에 관하여 강의를 들었다. 자주 보이는 Static와 앞으로 자주 쓰게 될 상속은 매우 중요한 위치에 놓여있는데 그 의미를 한번 더 되짚어 보도록 하겠다.

Static

  • 고정적인 위치에서 프로그램 시작부터 끝까지 남아있는 메모리
    처음에는 public 와 햇갈려 간단하게만 차이를 적어놓겠다.

public
클래스, 메서드, 변수 등에 사용되며, 어디서든 접근 가능하다는 의미이다. 예를 들어, public 메서드는 다른 클래스에서도 호출할 수 있다.

static
정적(Static) 멤버를 의미한다.인스턴스(객체)를 생성하지 않고도 클래스 자체에서 접근할 수 있다. static 변수는 클래스 로딩 시점에 메모리에 올라가며, 모든 인스턴스가 공유한다.

상속

부모클래스의 모든 기능을 가지는 자식클래스를 설계하는 방법
부모클래스를 상속하는 자식클래스에게 부모클래스의 모든 기능을 부여
상속하는 방법

> class 자식클래스 : 부모클래스

is-a 관계
부모클래스가 자식클래스를 포함하는 상위개념일경우 상속관계가 적합함

protected
자식간의 공유가 가능한 public

base
부모의 함수를 가져다가 쓸 수 있다.
this
자식의 함수를 가져다가 쓸 수 있다.

업캐스팅

  • 자식 클래스 객체는 자동으로 부모 클래스 타입으로 변환될 수 있다.
  • 명시적 형변환이 필요 없고, 자연스럽게 적용된다.
  • 부모 클래스의 멤버만 접근 가능
  • 오버라이딩된 메서드는 자식 클래스의 메서드가 호출됨

다운캐스팅

  • 명시적인 형변환이 필요하다
  • 실제 객체가 자식 클래스의 인스턴스여야 한다.

업캐스팅 : 자식 → 부모
다운캐스팅 : 부모 → 자식

오버로딩
같은 class 이름이 있을때 적합한 함수로 적용이 된다.
같은 이름의 함수가 있을 때 오류가 생길 수 있으므로 string, int 등 각자 객체에 맞는 변수를 넣어서 다른 결과값이 나오도록 하는 함수이다.

다형성

객체의 속성이나 기능이 상황에 따라 여러가지 형태를 가질 수 있는 성질 즉, 같은 메서드나 객체가 다양한 방식으로 동작할 수 있는 것을 말한다. 메서드 오버로딩 & 오버라이딩을 통해 구현 가능하다.

다형성의 장점

  • 유지보수 : 여러 객체를 하나의 타입으로 관리할 수 있어 유지보수가 용이하다.
  • 재사용성 : 객체의 재사용이 쉬워 재사용성이 높아진다.
  • 느슨한 결합 : 클래스 간의 의존성을 줄여 확장성은 높아지고 결합도는 낮아진다.

추상화
복잡한 내부 구현을 숨기고, 필요한 부분만 외부에 제공하는 개념이며
abstract 키워드를 사용하여 일부 메서드만 구현하고, 나머지는 자식 클래스가 구현하도록 강제하는 클래스이다.

추상화는 혼자가 아닌 다인에서 코드를 만들 때 유용하게 쓰인다.

0개의 댓글