최근 개발을 진행하면서 static이 정확히 언제 사용하는지 헷갈리는 경우가 많았다.
해당 내용을 정리해보자.
아래에 정적메소드로 예를 들겠다.
//이 코드는 인프런_김영한 자바 기본 강의를 참고하여 작성하였습니다.
//공통 유틸클래스의 공통함수
public class CommonUtil {
public static String deco(String str) {
String result = "*" + str + "*";
return result;
}
}
public class CommonMain {
//데코함수를 정적 메서드로 선언
public static void main(String[] args) {
String s = "hello java";
String deco = CommonUtil.deco(s);
System.out.println("before: " + s);
System.out.println("after: " + deco);
}
}
/*실행결과*/
before: hello java
after: *hello java*
이처럼 정적 메서드는 별도의 인스턴스 호출없이 호출할 수 있다.
메서드 영역은 프로그램의 공통데이터를 관리하고, 이 영역의 정보들은 모두 공유된다.
지금은 static의 사용 이유에 대해 알아보는것이기에
해당 자바 메모리 구조에 대한내용은 다음 포스트에 다루도록 하겠다.