Method? static 끼얹기?

niraaah·2023년 4월 9일
2

혼자하는 스터디

목록 보기
3/25
post-thumbnail

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;
    }
}

출처: 점프 투 자바
출처: 망나니개발자

profile
코딩천재

0개의 댓글