본문 바로가기

웹 개발/Java

[Web_JAVA] 11

● 메소드

- 이름 뒤에 소괄호

- 단, 키워드(예약어) 뒤에 소괄호가 있다면 메소드가 아니다.

명칭

 

 

● 메소드 선언

- (1)리턴타입 (2)메소드명(자료형 (3)매개변수명, ...) {

      (4)실행할 문장;

      (5)return 리턴값;

   }

 

(1) 리턴타입

- 리턴 값이 있다면 리턴 값의 자료형을 작성하고, 리턴 값이 없다면 void를 작성한다.

 

(2) 메소드명

- 동사로 작성한다.

(ex) 연필(매개변수)을 쓴다(메소드)

 

(3) 매개변수명

- 외부에서 전달받을 값이 있다면, 자료형과 순서에 맞게 선언해준다.

- 생략이 가능하지만 생략 시, 외부에서 값을 전달받을 수 없다.

 

(4) 실행할 문장

- 생략이 가능하다

- 메소드의 기능을 구현하는 로직을 작성한다.

 

(5) return

- 생략이 가능하다.

 

 

 

● 메소드 주의사항

- 메소드를 선언할 때에는 반드시 메소드 밖에서 선언한다.

- 메소드를 사용할 때에는 반드시 메소드 안에서 선언한다.

 

 {}가 있으면 선언, 없으면 사용이다.

 

 

 

● 메소드 선언 순서

(ex) 두 정수의 덧셈 메소드 선언

 

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

- add, plus, addNum, addInt, sum, deouhagee, ...

→ add( ) { }

 

2. 매개변수를 생각한다.

add(int num1, int num2) {

 

}

 

3. 실행할 문장을 생각한다.

add(int num1, int num2) {

    int result = num1 + num2;

}

 

4. 리턴 값을 생각한다.

add(int num1, int num2) {

    int result = num1 + num2;

    return result;

}

 

5. 리턴 타입을 결정한다.

int add(int num1, int num2) {

    int result = num1 + num2;

    return result;

}

 


 

 

실습(배열)

1. f(x) = 2x + 1(단, x는 정수이다.)

public class MethodTest {
	
	int f(int x) {
		int result = 2 * x + 1;
		return result;
	}
	
	// static : 컴파일 시 가장 먼저 메모리에 할당된다.
	// 1. 같이 static을 붙여서 사용한다.
	// 2. 메소드의 클래스 소속을 앞에 붙여준다.
	
	// main 메소드는 프로그램을 만들어주는 메소드이다.
	public static void main(String[] args) {
		
		MethodTest mt = new MethodTest();
		System.out.println(mt.f(3));
		
	} 
}

 

결과

 

 

 

실습(main() 사용)

1. MainTest.java 파일을 생성한 후 main 메소드 안에 코드 작성

public class MainTest {
	public static void main(String[] args) {
		
		if(args.length == 0) {
			System.out.println("None");

		} else {
			for (int i = 0; i < args.length; i++) {
				System.out.println(args[i]);
			}
		}
		
	} 
}

 

 

 

2. 파일탐색기에서 MainTest.java 파일이 존재하는 경로로 접근하여 경로 출력란에서 cmd 입력 후 Enter

 

 

 

3. cmd 창에서 아래 내용대로 입력

C:\Web_1900_lyr\java\workspace\my_day08\src\my_day08>cd ..

C:\Web_1900_lyr\java\workspace\my_day08\src>java my_day08.MainTest
None

C:\Web_1900_lyr\java\workspace\my_day08\src>java my_day08.MainTest 홍길동 동
홍길동
동

 

 

 

 

실습(메소드)

1. 1~10까지 println()으로 출력하는 메소드

import java.util.Scanner;

public class MethodTask {

	void printFrom1To10() {
		for (int i = 0; i < 10; i++) {
			System.out.println(i + 1);
		}
	}

}

 

 

 

2. "홍길동"을 n번 println()으로 출력하는 메소드

import java.util.Scanner;

public class MethodTask {

	void printHong(int count) {
		for (int i = 0; i < count; i++) {
			System.out.println("홍길동");
		}
	}

}

 

 

 

3. 이름을 n번 println()으로 출력하는 메소드

import java.util.Scanner;

public class MethodTask {

	void printName(String name, int count) {  // name : 출력할 이름, count : 출력 횟수
		for (int i = 0; i < count; i++) {
			System.out.println(name);
		}
	}
 
}

 

 

 

4. 세 정수의 뺄셈을 해주는 메소드(출력이 아니다.)

import java.util.Scanner;

public class MethodTask {

	int sub(int num1, int num2, int num3) {
		int result = num1 - num2 - num3;
		
		return result;
	}
 
}

 

 

 

'웹 개발 > Java' 카테고리의 다른 글

[Web_JAVA] 13  (0) 2022.02.27
[Web_JAVA] 12  (0) 2022.02.26
[Web_JAVA] 10  (0) 2022.02.24
[Web_JAVA] 09  (0) 2022.02.23
[Web_JAVA] 08  (0) 2022.02.22