[Java] 자바 #9 메소드, 메서드(Method)

메소드, 메서드(Method)

main메소드 

특별한 메소드

프로그램이 시작되자 마자 가장 처음으로!!! 자동으로 호출되는 메소드 (JRE,VM에 의해 호출)

프로그램 시작점(Start Point) ~ 프로그램 종착점(End Point)

main: 예약어임. 즉 키워드.


메소드, Method

- 특정 행동을 목적으로 하는 코드의 집합

- 행동(Behavior)

- 반복되는 코드의 집합 -> 코드의 재사용.


메소드를 만들어야하는 경우!!

1. 같은 성격의 코드가 모여있는 경우.                 >> 코드의 가독성 개선

2. 같은 성격의 코드가 2번이상 사용되는 경우.      >> 메소드 재사용

 

요구사항 : "안녕하세요"라는 인삿말을 5번 화면에 출력.


1
2
3
4
5
6
public static void hello(){ //메서드 헤더(==메서드 시그니처), 메서드 형식
        //메서드 바디, 코드의 집합 -> 명령어 집합 -> 구현부        
        System.out.println("안녕하세요."); 
 
}
//메소드 선언하기
cs


main 메소드 -> hello();hello();hello();hello();hello(); -> 실행해보기


하지만 이 메소드는 특정 누구의 이름을 부르며 "안녕하세요" 하지는 않는다.


요구사항 : "홍길동님. 안녕하세요." 라는 인삿말을 5번 화면에 출력


1
2
3
public static void hello(String name){        
        System.out.println(name+"님. 안녕하세요."); 
}
cs


main 메소드 -> hello("홍길동");hello("홍길동");hello("홍길동");hello("홍길동");hello("홍길동"); -> 실행해보기


메소드의 인자(Parameter)

Parameter, Argument, 매개변수, 인자

매개변수는 (선언할 때의 자료형과 갯수) == (호출할 때의 자료형과 갯수)

인자를 활용해서 행동의 범위를 넓힌다.

위의 hello 메소드에서 (String name)이라는 부분을 메소드의 파라미터, 인자라고 부른다.



반환자료형

- 메소드를 호출한 뒤에 돌려받는 값. 결과값.

- return문과 관련이 있다.


1
2
3
4
5
6
7
8
9
10
public void voidMethod(){
    //행동
}
public int intMethod(){
    //행동
    return 10;
}
public String stringMethod(){
    return "String";
}
cs


public 다음에 나오는 키워드를 보면 void, int, String이 있습니다.


- void : return문을 사용하지 않아도 된다. 즉, 반환타입이 없다.

- int : 원시타입(기본타입) 자료형으로 int형 데이터만 return 하라는 키워드이다.

- String : 참조형 자료형으로 String타입으로 선언된 변수나 문자열을 반환하라는 뜻이다.



응용하기


요구사항

2개의 정수값을 넘겨주면 정수값을 교환하여 출력하는 메소드.

2개의 String값을 넘겨주면 String값을 교환하여 출력하는 메소드.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static void swap(int a,int b){
        int temp;
        System.out.printf("a : %d, b : %d\n",a,b);
        temp=a;
        a=b;
        b=temp;
        System.out.printf("a : %d, b : %d\n",a,b);
    }//swap
public static void swap(String a,String b){
        System.out.printf("a : %s, b : %s\n",a,b);
        String temp;
        temp=a;
        a=b;
        b=temp;
        System.out.printf("a : %s, b : %s\n",a,b);
}
cs


추가내용

메소드 오버로딩. Method Overloading(**)

- 같은 이름의 메소드를 여러개 만드는 방법.


메소드 오버로딩 조건

1. 매개변수의 갯수가 달라야 한다.

2. 매개변수의 타입(형)이 달라야 한다.

3. 이름이 다르면 오버로딩이라고 할 수 없다.


예제 코드

- 요구사항 : 두개의 데이터를 전달하면 그 둘을 더해서 출력할 것.


1
2
3
4
5
6
7
8
public static void sum(int a, int b){
        System.out.printf("%d + %d = %d\n",a,b,a+b);
    
}
public static void sum(double a, double b){
    System.out.printf("%.1f + %.1f = %.1f\n",a,b,a+b);
 
}
cs


sum(5,5) : 10 출력

sum(5.5,5.5) : 11.0 출력


sum(5, 5.0) -> 안됨.


댓글

Designed by JB FACTORY