DAY71(2) - 가변길이 인자

은나현·2023년 5월 8일
0

📌 1. 자바 가변길이 인자

  • 자바에서는 파라미터 개수가 다르면 다른 메소드로 인식한다. (오버로드)
  • 오버로드는 파라미터 개수에 맞춰 메소드가 계속 늘어나는 구조이다.
    • 파라미터가 1개인 경우
      public void search(String one){}
    • 파라미터가 2개인 경우
      public void search(String one, String two){}
    • 파라미터가 3개인 경우
      public void search(String one, String two, String three){}
  • Map, List, 배열, 객체 배열 등을 파라미터로 전달하기도 한다.
    • public void search(Map<String, String> param){}
    • public void search(List<String> param){}

📍 1-1. 가변인자

  • 가변인자를 사용하면 동적으로 파라미터를 받을 수 있다.
  • 사용법 :
    • 변수 타입 뒤에 기호(...)를 붙인다.
    • 다른 파라미터와 가변인자를 같이 사용하는 경우 가변인자를 제일 뒤에 위치시켜야 한다.
    • 가변인자만을 파라미터로 둘 경우 입력값 없이도 실행이 가능하다.
  • 사용 예
    • 가변인자만을 파라미터로 갖는 메서드
      	public static void test(String... param) {
      			System.out.println("=== test 호출 ===");
      			String[] array = param;
      			for(String str : param) {
      				System.out.println(str);
      			}
      		}
    • 정수 하나와 가변인자를 파라미터로 갖는 메서드
      	public static void test(int num, String... param) {
      			System.out.println("=== test2 호출 : "+num+" ===");
      			String[] array = param;
      			for(String str : param) {
      				System.out.println(str);
      			}
      		}
    • 출력 예
      // 입력값이 없을 때
      		test();
      // 여러 개의 파라미터 전달
      		test("스트링1","스트링2","스트링3");
      // 파라미터를 배열로 전달
      		test(new String[] {"스트링A","스트링B","스트링C"});
      // 정수와 가변인자 - 정수만
      		test(10);
      // 정수와 가변인자 
      		test(5, "스트링1","스트링2");   

0개의 댓글