Search
Duplicate

클래스메소드

Created time
2023/07/07 05:07
Last edited time
2024/04/17 06:26
Status
Done
tag

들어가기에 앞서

참고한 자료를 바탕으로 비전문가가 정리한 글이므로 오류가 있을 수 있습니다.
오류에 대한 지적 사항은 언제든지 환영합니다. 부디 댓글로 알려주시길 바랍니다. 감사합니다.

클래스 메소드(Static Method)

일반적으로 클래스에 선언된 메소드나 객체 변수(클래스에 선언된 변수)를 호출할 때는 그 클래스의 객체 생성이 선행되어야지만 가능하다.
하지만, 사칙연산, 날짜 구하기, 숫자에 달러기호 표시하기 등 단순한 유틸리티성 메소드를 사용할 때는 굳이 인스턴스를 매번 생성하여 해당 인스턴스에 그 값을 저장할 이유가 없다.
따라서, 유틸리티성 메소드는 스태틱 메소드로 많이 작성하며 메소드 앞에 static 키워드를 붙이면 간단하게 스태틱 메소드를 선언할 수 있다.
import java.text.SimpleDateFormat; import java.util.Date; class Util { public static String getCurrentDate(String fmt) { SimpleDateFormat sdf = new SimpleDateFormat(fmt); return sdf.format(new Date()); } } public class Sample { public static void main(String[] args) { System.out.println(Util.getCurrentDate("yyyyMMdd")); // 오늘 날짜 출력 } }
SQL
복사
이 때, 스태틱 메서드 안에서는 객체변수 접근이 불가능 하다는 것을 유의해야 한다.
스태틱 메소드는 인스턴스가 생성되기 전에 만들어지기 때문에, 생성되지 않은(존재하지 않는) 인스턴스 변수에 접근하는 것과 마찬가지이기 때문이다.

요약

클래스(static)메소드,인스턴스 메소드
둘의 차이는 객체 생성(인스턴스)를 하는지 여부로 갈림
클래스 메소드는 객체 생성을 안 하는 static 메소드 → 인스턴스 멤버 접근 불가능
인스턴스 메소드는 객체 생성 → 인스턴스 멤버 접근 가능

참고