ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자바] 메소드
    자바 2022. 8. 4. 11:12
    728x90

    메소드

    결함이 없고, 유지보수가 쉬운 애플리케이션을 만들기 위한 기법 중 하나 이다.

     

    메소드의 형식

    // main 이라는 메소드이다.
    public static void main(String[] args) { return; }
    main메소드는 자바가 실행될때 가장 먼저 이 메소드를 호출되게끔 약속이 되어 있다.
    - 약속은 여기서 그냥 기억해야하는 부분이다.

     

    메소드의 정의(define) 와 호출(call)

    public class methodDemo {
        // 메소드의 정의
        public static void numbering() {
            int i = 0;
            while (i<10) {
                System.out.println(i);
                i++;
            }   
        }
        
        public static void main(String[] args) {
            // 호출하는 파트
            numbering();
        }
    }

     

    메소드가 없다면?

    메소드안에 있는 내용들을 필요한 만큼 반복해서 중복적인 코드를 적어야 한다. ( 재활용성이 적어서, 코드량이 너무 많아지고, 유지보수가 힘들다. ) 따라서, 메소드가 있다면, 재활용을 통해 코드량잉 줄어들고 유지보수가 쉽다.

     

    입력과 출력

    입력

    입력
    - 매개변수(parameter)와 인자(argument)를 통해 입력이 된다
    // 매개변수 limit, 인자 5를 통해 메소드에 입력값을 준다 ( 인자 5의 값이 매개변수에 대입되어서 결과가 나타난다. )
    public class methodDemo {
        public static void numbering(int limit) {
        //  int limit = 5; 매개변수가 없을때 기존의 방법과 같은 방법이다
            int i = 0;
            while (i<limit) {
                System.out.println(i);
                i++;
            }   
        }
        
        public static void main(String[] args) {
            numbering(5);
            // numbering();
        }
    }
    
    // 시작과 끝을 지정해주는 코드 -> 여러개의 인자와 여러개의 매개변수를 지정하는 방법
    public class methodDemo {
        public static void numbering(int init, int limit) {
            int i = init;
            while (i<limit) {
                System.out.println(i);
                i++;
            }   
        }
        
        public static void main(String[] args) {
            numbering(3,5); // 3부터 4까지
        }
    }

     

    출력

    출력
    - return과 관련, 메소드 밖으로 결과값을 돌려준다. 
    - return이 실행이 되면 메서드는 멈춘다 ( 다음 코드를 수행하지 않는다. ) 하지만, return 자체는 여러번 사용할 수 있다.
    - return 배열; 이렇게 배열도 리턴을 할 수 있다.
    특정 메소드가 프린트를 하는 등 특정 하나의 일만 할 수 있다면, 부품으로써 가치가 떨어지기에 메소드안에서 값을 끝내버리는게 아니라,  return을 통해 밖으로 결과 값을 보내주고 다른 부분에서 메서드 호출을 통해 인자를 통한 결과값을 변경하는 등의 다른 일들을 할 수 있다면, 부품으로써 가치가 높아진다. ( 아래 코드를 보기 )
    public class methodDemo {
        // String이 반환타입이기에 return되는 값은 문자열이여야 한다.
        public static String numbering(int init, int limit) {
            int i = init;
            String output = "";  // 빈 문자열 cuz 반환타입을 생각해야하므로 string 해줘야한다.
            while (i<limit) {
                output += i; // 변수에 i 값이 뒤에 붙는다.
                i++;
            }   
            return output; // 이 부분이 출력 하는 부분 -> 1234 가 출력값이다
            // return을 numbering 밖으로 출력을 해준다.
            
        // return이 아니라 println(i); 이런식으로 했으면 numbering이라는 메소드는 print의 기능만 구현하므로 가치가 낮다
        }
        
        // void는 return이 필요 없다.
        public static void main(String[] args) {
            String res = numbering(1,5); // 1부터 4까지
            System.out.println(res);
        }
    }
    
    // 배열을 리턴하는 예시 코드
    public class methodDemo2 {
        public static String[] getMembers() {
            String[] members = { "aa", "bb", "cc" );
            return members 
        }
        
        public static void main(String[] args) {
             String[] members = getMembers();
        }
    }

    '자바' 카테고리의 다른 글

    [자바] 유효범위  (0) 2022.08.04
    [자바] 클래스 멤버와 인스턴스 멤버  (0) 2022.08.04
    [자바] 입출력  (0) 2022.07.26
    [자바] 스트림  (0) 2022.07.25
    [자바] 람다  (0) 2022.07.25
Designed by Tistory.