코딩 기록들

[Java Programming] 3.2 메소드 본문

Java

[Java Programming] 3.2 메소드

코딩펭귄 2024. 1. 19. 16:46

객체지향의 함수 = 메소드 라고 부른다

메소드

하나의 기능을 하는 코드의 묶음 단위

- 함수를 만드는 이유 ) 내가만들어서 누군가가 호출할 때 함수가 필요하므로! (여러번 반복해서 사용 = 재사용성이 높다)

- 메소드가 하는일에 따라 파라미터(인자)가 필요할 수도 있음

- 처리결과를 반활수도, 반환하지 않을수도 있음

- 동일한 기능의 코드가 여러번 중복되어있을경우, 해당코드를 수행하는 기능을 만들어두면(=메소드) 편함

- 메소드를 정의하고나서, 반드시 '호출'을 해야만 실행이 된다!

- 보통의 메소드 => 한가지 일만 한다

- 메소드에서 기능의 범위를 정하는 방법 : 관련된 코드로 지정!

1) 어디까지가 기능인지, 2) 분리했다면 재사용 될 수 있는지? -> 둘다 해당 안된다면 메소드 분리시키지 X

public static void 메소드이름(){}
(메소드이름 : 보통 동사로 시작, 반드시 소문자로 시작)

 

메소드 형태 **암기하기**

public class Hello {

//	sayHello라는 메소드 만들기
//	public static void 메소드이름(보통 동사로 시작, 이름은 반드시 소문자로 시작)
	/**
	 * "안녕하세요?" 를 출력하는 메소드 (정의하는 부분)
	 */
	public static void sayHello() {
		System.out.println("안녕하세요?");
		
	}
	
	/**
	 * 클래스 파일을 실행시키는 메소드
	 * @param args (파라미터)
	 */
	public static void main(String[] args) {
		// Ctrl + Alt + 방향키 위/아래 -> 위/아래로 라인이 복사가 됨
		sayHello(); // 메소드 호출하는 문법 (메소드 호출하기위해서는 메소드 이름으로 호출!!)
		System.out.println("반갑습니다.");
		sayHello();
		sayHello();
		sayHello();
		sayHello();
		sayHello();
	}
}

 

이클립스 디버깅 단축키
  • F11 = 디버깅 시작
  • F 6 = 디버깅 다음라인으로 이동
  • F5 = 메소드 호출라인에서 누르면 해당 메소드(정의부분) 안으로 디버깅시작
  • F7 = 클래스 상위로 디버깅 이동
그 외 알아두면 유용한 단축키
  • print + Ctrl + space  : 코드 도움말 알려줌
  • Ctrl + Alt + 위/아래 방향키 : 해당 라인 코드 전체를 위/아래로 복사
  • Ctrl + X : 잘라내기

 

F11눌러서 디버깅 -> F5눌러서 해당 메소드로 들어가면 좌측 콜스택 부분 확인해볼수 있음

 

 

 

메소드를 어떤식으로 활용할 수 있을까?

- 메소드 실행에 필요한 데이터(파라미터)가 있을경우, 메소드 호출(실행)시 데이터(파라미터값)를 반드시 전달해야함

 이름을 전달받아 "이름씨, 안녕하세요?" 라고 출력하는 메소드
// 메소드 정의
	/**
	 * 이름을 파라미터로 전달하면, "이름씨, 안녕하세요"를 출력한다.
	 * @param name 출력하고싶은 이름
	 */
public static void printHello(String name) { //String타입의 name을 받겠다
    System.out.println(name + "씨, 안녕하세요?");
}
    
// 메소드 호출
public static void main(String[] args) {
    printHello("스타크"); // String name에 "스타크" 할당
    printHello("헐크"); // String name에 "헐크" 할당
    printHello("그루트"); // String name에 "그루트" 할당
    }
}

 

파라미터가 여러개 있다면 컴마(,)로 구분하여 메소드를 정의 -> 메소드 호출시  파라미터 값 맞춰주기

 

앞선 for문에서 했던 예제를 메소드와 함께 사용하는 예제
public class methodExample {

	// for반복문 연습문제 : 메소드 만들어서 풀어보기
	
	// 1. 1부터 100까지 합 구해서 출력
	public static void one2HundredSum() {
		int one2Hundred = 0;
		for (int i=1; i<101; i++) {
			one2Hundred += i;
		}
		System.out.println(one2Hundred);
	}
	
	// 2. 1부터 100중 홀수의 합 구해서 출력
	public static void oddSum() {
		int oddNum = 0;
		for (int i = 1; i<101; i++) {
			if (i % 2 == 1) {
				oddNum += i;
			}
		}
		System.out.println(oddNum);

	}
	
	// 3. 1부터 100중 3,5,6의 배수만 출력
	public static void tripleNum() {
		for (int i = 1; i < 101; i++) {
			if (i % 3 == 0 && i % 5 == 0 && i % 6 == 0) {
				System.out.println(i);
			}
		}
	}
	
	// 4. 별탑쌓기
	public static void stars() {
		for (int i = 1; i < 6; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print("*");
			}
		System.out.println();
		}
	}
	
	
	
	public static void main(String[] args) {
		one2HundredSum();
		oddSum();
		tripleNum();
		stars();
	}