πŸ—„οΈ Backend/Java

μžλ°”(Java) - 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° (2) λ©”μ†Œλ“œ (이둠)

kongmi 2023. 1. 10. 19:35

λ©”μ†Œλ“œ(method)

μžλ°”μ—μ„œ ν΄λž˜μŠ€λŠ” λ©€λ²„λ‘œ 속성을 ν‘œν˜„ν•˜λŠ” ν•„λ“œμ™€ κΈ°λŠ₯을 ν‘œν˜„ν•˜λŠ” λ©”μ†Œλ“œλ₯Ό κ°€μ§„λ‹€.

λ©”μ†Œλ“œμ˜ μ‚¬μš© λͺ©μ 

  • μ€‘λ³΅λ˜λŠ” μ½”λ“œμ˜ 반볡적인 ν”„λ‘œκ·Έλž˜λ° λ°©μ§€
  • λͺ¨λ“ˆν™”λ‘œ 인해 μ½”λ“œμ˜ 가독성이 쒋아짐
  • ν”„λ‘œκ·Έλž¨μ˜ 문제점 λ°œκ²¬μ΄λ‚˜ κΈ°λŠ₯을 μΆ”κ°€/변경이 μ‰¬μ›Œμ§
  • (μ€‘μš”) ν•˜λ‚˜μ˜ λ©”μ†Œλ“œκ°€ ν•˜λ‚˜μ˜ κΈ°λŠ₯λ§Œμ„ μˆ˜ν–‰ν•˜λ„λ‘ μž‘μ„±ν•˜λŠ” 게 μ’‹μŒ.
    (1λ©”μ†Œλ“œ 1κΈ°λŠ₯)

λ©”μ†Œλ“œμ˜ μ •μ˜

μ ‘κ·Όμ œν•œμž λ°˜ν™˜νƒ€μž… λ©”μ†Œλ“œμ΄λ¦„(λ§€κ°œλ³€μˆ˜λͺ©λ‘) {
   κ΅¬ν˜„λΆ€
   return
}
  1. μ ‘κ·Όμ œν•œμž : ν•΄λ‹Ή λ©”μ†Œλ“œμ— μ ‘κ·Ό ν•  수 μžˆλŠ” λ²”μœ„ λͺ…μ‹œ(public/protected/private/default)
  2. λ°˜ν™˜νƒ€μž… : λ©”μ†Œλ“œκ°€ μž‘μ—…μ„ 마치고 λ°˜ν™˜ν•˜λŠ” 데이터 νƒ€μž… λͺ…μ‹œ(void/int/String/char λ“±λ“±)
  3. λ©”μ†Œλ“œ 이름 : λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜κΈ° μœ„ν•œ 이름
  4. λ§€κ°œλ³€μˆ˜λͺ©λ‘(parameters) : λ©”μ†Œλ“œ ν˜ΈμΆœμ‹œ μ „λ‹¬λ˜λŠ” 인수의 값을 μ €μž₯ν•  λ³€μˆ˜ λͺ…μ‹œ
  5. κ΅¬ν˜„λΆ€ : λ©”μ†Œλ“œμ˜ 고유 κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λŠ” λͺ…λ Ήλ¬Έμ˜ μ§‘ν•©

λ©”μ†Œλ“œμ˜ μ„ μ–Έ

λ©”μ†Œλ“œ 이름

λ©”μ†Œλ“œ 이름 κ·œμΉ™μ€ λ³€μˆ˜λͺ… κ·œμΉ™κ³Ό λ™μΌν•˜λ‹€.
(λŒ€/μ†Œλ¬Έμž, _, $, 숫자 μ‚¬μš© κ°€λŠ₯ν•˜λ‚˜ λ§¨μ•žμ— 올 수 μ—†μŒ / camel ν‘œκΈ°λ²•)

리턴 νƒ€μž…

λ¦¬ν„΄κ°’μ΄λž€ λ©”μ†Œλ“œλ₯Ό μ‹€ν–‰ν•œ ν›„ 결과값을 말함.
λ©”μ†Œλ“œλŠ” 리턴값이 μžˆμ„ μˆ˜λ„ 있고 없을 μˆ˜λ„ μžˆμœΌλ‚˜ 리턴 νƒ€μž…μ€ 선언뢀에 λͺ…μ‹œ λ˜μ–΄μ•Ό 함.

λ§€κ°œλ³€μˆ˜μ™€ 인수

* 동일 μ΄λ¦„μ˜ ν•¨μˆ˜κ°€ μ—¬λŸ¬κ°œ λ§Œλ“€μ–΄μ§€λ©΄ λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”© 관계가 λ§Œλ“€μ–΄ 짐.
* μ ‘κ·Όμ œν•œμžκ°€ μ—†μœΌλ©΄ default νŠΉμ„±μ„ 가짐(λ™μΌν•œ νŒ¨ν‚€μ§€ λ‚΄μ—μ„œ μ ‘κ·Ό κ°€λŠ₯)
* λ©”μ†Œλ“œμ˜ λ§€κ°œλ³€μˆ˜λŠ” 일반적으둜 κ°―μˆ˜κ°€ μ •ν•΄μ Έ μžˆμœΌλ‚˜ κ²½μš°μ— 따라 갯수λ₯Ό μ•Œ 수 μ—†λŠ” κ²½μš°μ—λŠ” ... 을 μ‚¬μš©ν•˜λ©΄ 됨.
public class Sample {
    int sum(int a, int b) {  // a, b λŠ” λ§€κ°œλ³€μˆ˜
        return a+b; // λ©”μ†Œλ“œ 호좜 μœ„μΉ˜λ‘œ a+b 값을 intν˜•μœΌλ‘œ λ°˜ν™˜ν•˜κ² λ‹€.
    }
    int sum(int ... values) {
        int sum = 0;
        for(int i = 0; i <values.length; i++) {
            sum += values[i];
    }
        return sum;
    }

    public static void main(String[] args) {
        Sample sample = new Sample();
        int c = sample.sum(3, 4);  // 3, 4λŠ” 인수

        System.out.println(c);  // 7 좜λ ₯
    }
}

μž…λ ₯κ°’, 리턴값 μ—†λŠ” λ©”μ†Œλ“œ

void say() {
    System.out.println("Hi");
}