정적 방법은 무엇입니까?

클래스에서 선언되었지만 해당 클래스의 특정 인스턴스화에 의존하지 않는 객체 지향 컴퓨터 프로그래밍 방법을 정적 메소드라고합니다. 대부분의 프로그래밍 언어에는 메소드를 정적으로 만들기위한 메소드 선언에 키워드 static 가 포함됩니다. 이 방법은 그들이 포함 된 클래스에 엄격하게 속하며 해당 클래스에서 인스틱 한 객체가 아닙니다. 그것들은 종종 클래스 메소드라고합니다. Java에서는 이러한 방법을 언급하기 위해 객체 이름을 사용하는 것이 허용되지만 강력하게 낙담합니다. 객체 이름을 사용하는 경우 코드를 읽는 사람은 이러한 메소드 중 하나를 인스턴스 메소드와 혼동 할 수 있습니다.

정적 메소드는 종종 특정 클래스의 인스턴스 변수에 의존하지 않는 유틸리티 클래스에서 사용됩니다. 그들은 또한 프로그래머가 필요할 때 사용됩니다방법에 액세스하지만 포함 된 클래스를 인스턴스화 할 필요는 없습니다. 유틸리티 클래스는 일반적으로 객체에 인스턴스화되지 않습니다. 유틸리티 방법이 객체 정보를 수정 해야하는 것은 드문 일입니다. pow ()와 같은 java.lang.math 클래스의 메소드는 유틸리티 클래스 에서이 유형의 메소드가 어떻게 사용되는지에 대한 예입니다.

인스턴스 메소드는 인스턴스 변수, 정적 변수, 인스턴스 메소드 및 정적 메소드에 직접 액세스 할 수 있습니다. 정적 메소드는 인스턴스 변수 및 인스턴스 메소드에 직접 액세스 할 수 없습니다. 정적 메소드보다 클래스 멤버에 더 잘 액세스하는 인스턴스 방법의 특성으로 인해 인스턴스 방법은 일반 클래스에서 일반적으로 사용되는 방법의 유형입니다.

정적 방법의 한 가지 주요 단점은 다형성을 사용하는 경우 상속 중에 발생합니다. 부모의 정적 방법이 최종적으로 선언되지 않는 한, 같은 아이정적 메소드는 마치 아동 클래스에서 마치 재정의되는 것처럼 코딩 할 수 있습니다. 정적 메소드를 재정의 할 수 없기 때문에 기술적으로 은신처라고합니다.

숨어를 사용하면 클래스 이름을 사용하여 상위 정적 메소드에 액세스하면 부모 메소드가 사용됩니다. 객체 이름을 사용하여 재정의 하위 정적 메소드에 액세스하면 재정의 하위 메소드가 사용됩니다. 문제는 자식 물체가 부모로 상승 할 때 발생합니다. 이 경우 Upcast Child STATIC 메소드를 호출하면 예상 자식 방법 대신 부모 메소드를 사용합니다. 진정한 다형성으로, 아동 방법은 상승 후 활성화 된 방법이 될 것입니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?