public static void main(String[] args) 

 

main 메소드

public static void number() {
    int i = 0;
    while(i<10) {
        System.out.println(i);
        i++;
    }
}
public static void main(String[] args) {
    number();
}

 

number() 메소드 안에 있는 코드가 main이라는 메소드안에 호출하면 number() 로직이 실행된다.

 

public static void main(String[] args) 

여기서 main 메소드가 무엇일까?

 

자바를 실행할때 자바가 처음으로 찾아가는 곳이다. 

즉 프로그램이 시작할때 무조건 실행되는 함수이며

main 메소드 안에 내가 실행되기를 기대하는 로직을 위치시켜야 프로그램이 시작할때 main 메소드를 호출 및 실행하여 프로그램이 구동하게 되는것이다. 

 

 

 

public static String  number (int init,int limit)

메소드가 리턴할 때 값

문자열을 리턴한다 라는 의미다.

 

 

public static void main(String[] args) 

만약 반환값이 없으면 void 로 써준다

 

 

public static void main(String[] args)

프로그램 시작할때 main 메소드가 실행되고 매개변수인 String[] args 는 입력값의 파라미터로 동작

 

String[] 는 문자열을 담고 있는 배열과 args.length 는 배열의 길이

 

 

 

매개변수와 인자

메소드의 입력 값은 매개변수 (parameter) 을 통해 들어온다. 

 

예를들어

메소드에 여러개의 입력값을 전달하고 복수의 인자를 출력하기 

public class DemoApplication {
    public static void number(int init,int limit) {
        int i = init;
        while(i<limit) {
            System.out.println(i);
            i++;
        }
    }
    public static void main(String[] args) {
        number(1,5);
    }
}

main 메소드에서 number() 라는 메소드를 호출할 때 값을 넣어 주면 init, limit 변수는 number() 로직들에게 1, 5라는 값을 전달한다. 

public static void number(int init, int limit) { }

호출에서 입력한 값을 로직에 매개한다(*둘 사이에서 양쪽의 관계를 맺어 주다.) 라는 의미에서 '매개변수' = parameter 라고도 한다 

여기서 메소드 호출할때 넣은 값은 number(1,5) '인자' = argument 라고 한다

근데 매개변수와 인자 구분없이 부르는 경우가 많다.

 

 

 

return 

같은 출력이지만 좀 더 활용도 높은 방법으로 return 으로 출력해보자

output 변수에 빈 값을 주어 만들어지는 숫자들을 담아줬다

public static String number(int lnit, int limit) {
    int i = lnit;
    String output = "";
    while(i<limit) {
        output += i;
        i++;
    }
    return output;
}
public static void main(String[] args) {
    String result = number(1, 5);
    System.out.println(result);
}

 

 

  • return의 역할

return 은 값을 반환하는 동작이다 그럼 코드는 컴파일이 된다. 

메소드를 중단시키는 역할도 한다.

 

위처럼 메소드는 여러개의 입력값을 받을 수 있다 

이번엔 메소드가 여러개의 출력값을 받는다면? 하지만 자바는 문법적으로 불가능하다 

 

하나의 메소드에 하나의 값만 반환할 수 있기 때문에 

만약 멤버를 반환하는 메소드를 만들었다면

아래처럼 1 메소드마다 1 값만 반환하여 println 해버리면 비효율적이다

public class DemoApplication {
	public static String member1() {
		return "김민지";
	}
	
	public static String member2() {
		return "민선화";
	}
	
	public static String member3() {
		return "최준미";
	}

	public static void main(String[] args) {
		System.out.println(member1());
		System.out.println(member2());
		System.out.println(member3());
	}
}

 

 

그래서 배열을 사용해보자 

public class DemoApplication {
	public static String[] getMembers() {
		String[] members = {"김민지","민선화","최준미"};
		return members;
	}

	public static void main(String[] args) {
		String[] members = getMembers();
		System.out.println(members); // 출력이 안된다 
	}
}

하지만 출력했을때 [Ljava.lang.String;@3d012ddd 의 결과값이 나온다.

 

배열을 출력하는 방법은??

import java.util.Arrays 의 toString 메서드를 이용해서 배열을 출력하게 한다

System.out.println(Arrays.toString(members));

 

결과값

[김민지, 민선화, 최준미]

 

 

 

반응형
LIST

'공부' 카테고리의 다른 글

생성자  (0) 2023.06.20
메소드화 | 객체화 | 인스턴스  (0) 2023.06.16
[백준] 4단계 | 10807, 10871, 10818, 2562, 5597, 3052, 1546  (0) 2023.03.04
[백준] 3단계 | 반복문 8~12  (0) 2023.02.17
[백준] 3단계 | 반복문 1~7  (0) 2023.02.14

+ Recent posts