본문 바로가기

JAVA

[WEB]DAY7_메소드

메소드

: 메소드는 중괄호 안에 작성한 코드들의 주소값을 저장하는 저장공간이다.

 

이름()
단, 키워드()는 메소드가 아니다!!

(검은색글씨면 메소드, 다른 색이면 키워드)

    f (x)      =    2x     +     1
 메소드명      매개변수   리턴값

 

메소드 선언
(1)리턴타입 (2)메소드명(자료형 (3)매개변수, ...){
    (4)실행할 문장;
    (5)return 리턴값;
}

 

*내부 : 선언부
*외부 : 사용부
(1) 리턴값의 타입을 작성한다. 만약 리턴이 없다면 비워놓지 않고 
     void를 작성한다.
(2) 동사로 작석한다(연필(매개변수)을 쓴다(메소드)).
(3) 생략이 가능하고 필요에 따라 여러 개 작성할 수 있다.
     만약 매개변수가 없다면 외부에서 값을 전달 받을 수 없다.
(4) 생략이 가능하다.
(5) 생략이 가능하다.

 

메소드 선언 순서
문제) 두 정수의 덧셈 메소드 만들기

1. 메소드 이름을 생각한다.
    add, plus, ...

    add(){}

2. 매개변수를 생각한다.
    add(int num1, int num2){}

 
3. 실행할 문장을 생각한다.
    add(int num1, int num2){
        System.out.println("두 정수의 뎃셈 메소드");
    } 


4. 리턴 값을 생각한다.
    add(int num1, int num2){
        System.out.println("두 정수의 뎃셈 메소드");
        return num1+num2;
    } 

5. 리턴타입을 결정한다.
    int add(int num1, int num2){
        System.out.println("두 정수의 뎃셈 메소드");
        return num1+num2;
    } 



메소드 사용
메소드명(값,....);    * 매개변수가 있을 때
메소드명()           * 매개변수가 없을 때


메소드 주의사항
선언은 메소드 밖에서 사용은 메소드 안에서
리턴이 있다면 사용하는 부분 통채로 리턴값으로 봐야한다.

 

static
컴파일시 가장 먼저 메모리에 올리는 명령어

main메소드
1. 컴파일시 자동으로 실행된다.
2. main메소드 안에 작성된 코드만 실행프로그램으로 만들어진다.

디버그 오류 : 문법 오류(빨간줄), 실행조차 안됨
빌드 오류    : 사용자 오류(문법은 정상), 실행은 됨


메소드를 사용하는 이유
1. 재사용의 목적, (특정성을 부여하면 안된다.)
2. 소스코드 간결화

리턴을 사용할 때
1. 메소드 내에서 모든 작업이 끝나지 않았을 때.
2. 사용하는 부분에 작업결과를 알려주어야 할 때.
3. 특정성을 부여하지 않을 때


리턴을 사용하지 않을 때
1. 메소드 내에서 모든 작업이 끝날 수 있을 때.
2. 사용하는 부분에 작업결과를 전달할 필요가 없을 때.

3. 특정성이 부여되어도 될 때