Method
: 클래스 내의 함수
>> 자바는 클래스를 떠나 존재하는 것은 있을 수 없기 때문에 함수를 따로 둘 수 없음. 파이썬은 함수와 메서드가 공존함.)
즉, 입력을 가지고 어떤 일을 수행한 다음에 결과물을 내어놓는 것.
형식:
리턴자료형 메서드명(입력자료형1 매개변수1, 입력자료형2 매개변수2, ...){ ... return 리턴값; // 리턴 자료형이 void인경우에는 return문이 필요없다. }
Static 변수 (정적 변수)
: 메모리에 고정적으로 할당되어 프로그램이 종료될 때 해제되는 변수. 메모리에 한번 할당되므로 여러 객체가 해당 메모리를 공유해 메모리 효율을 높임.
예시:
public final class AppConstants {
public static final String APP_NAME = "MyApp";
public static final String PREF_NAME = "MyPref";
}
Static Method
: 객체의 생성 없이 호출 가능. (static method에서 접근하기 위한 변수는 반드시 static 변수로 선언되어야함.) 속도가 빨라지고 공유(반복적인 사용)에 효율적!
예시:
public class LottoNumberFactory {
private static final int MIN_LOTTO_NUMBER = 1;
private static final int MAX_LOTTO_NUMBER = 45;
private static final int LOTTO_LENGTH = 6;
private static List<LottoNumber> lottoNumbers = new ArrayList<>();
//45개의 로또 숫자 초기화
static {
for (int i = MIN_LOTTO_NUMBER; i <= MAX_LOTTO_NUMBER; i++) {
lottoNumbers.add(new LottoNumber(i));
}
}
public static List<LottoNumber> createLottoNumbers() {
List<LottoNumber> lotto = new ArrayList<>();
Collections.shuffle(lottoNumbers);
for (int i = 0; i < LOTTO_LENGTH; i++) {
lotto.add(lottoNumbers.get(i));
}
return lotto;
}
}