예지의 개발 로그포스 (Yeji's Log Force)

static 메서드 호출 시 주의점 본문

Java

static 메서드 호출 시 주의점

Yeji Heo 2024. 1. 19. 10:22

별찍기 메서드다.

상태를 변화시키지 않는 단순function이므로, static으로 선언하였다.

 

이 메서드는 편의상 main()과 같은 클래스에 담긴 상태다. 

같은 클래스에 있는 static메서드끼리는 호출 시 Class명을 써주지 않아도 바로 접근해 호출이 가능하다.

 

printInvertTriangle()을 바로 호출한 모습

 


그런데 현업에서는 main()과 Bean을 철저히 구분한다고 한다.

그래서 이러한 메서드가 main()과 같은 클래스에 담길 가능성이 거의 없다.

그럼 서로 다른 클래스에 담긴 static메서드들이 되므로, 위와 같은 코드는 에러가 발생할 것이다.

 

 

그러므로 이렇게 클래스명(static 메서드니까)을 통해 접근해주는 것이 건강에 좋다.

 

+ 물론 클래스명.메서드()이렇게 한다고 전부 문제가 없는 것은 아닐 것이다.

나는 ClassPath를 현재 디렉토리인 .으로 설정했기 때문에 컴퓨터가 위치를 잘 찾지만

어떤 상황에서는 ClassPath가 다를 수도 있고, 그럼 당연히 실행 안 될 것이다.


 

한편, 그냥 위와 같이 메서드를 바로 호출하는 게 합리적인 경우도 존재하긴 한다.

바로 해당 메서드가 private인 경우이다.

 

private 메서드는어차피 해당 클래스 내부에서만 사용하겠다는 의미이고,

그럼 클래스가 달라서 static메서드를 호출하지 못하는 경우는 없을테니까

논리가 타당한 것이다.

Comments