Java03 Method (메서드)

차차·2021년 7월 17일
0

Java

목록 보기
3/11

Method 란?
자판기에 돈을 넣으면 커피가 나온다.
마찬가지로 자바에서 어떤 작업을 할 작업장같이 어떤 일을 수행할 코드를 정의해 놓은 것이 바로 메소드라고 한다
만들어진 메소드를 사용하려고 부르는 것이 바로 호출
메소드를 사용하려면 반드시 메소드가 정의되어 있어야 한다

Main
프로그램의 시작점 역할을 하는 JAVA의 약속.
즉 반드시 public static void main(String[] args)가 이끄는 중괄호 안에 실행되기를 기대하는 로직을 위치시켜야 한다. 그렇게 코드를 작성하면 자바를 실행할 때 자바는 여러분이 작성한 main 메소드를 실행하게 되는 것이다. 여러분은 main 메소드를 작성하고, 자바는 main 메소드를 실행하는 관계라고 할 수 있다

메소드의 구조는 크게 4가지

  1. 파라미터도 없고, 리턴값도 없는 구조
  2. 파라미터는 없지만 리턴값은 있는 구조
  3. 파라미터는 있지만 리턴값은 없는 구조
  4. 파라미터도 있고 리턴값도 있는 구조

메소드선언방법

public static 리턴타입 메소드명(){
	  실행할 코드 작성;
		return; // 리턴타입이 void 일 경우 returen 없음
}

return
메소드 내에서 동작하고 얻은 결과를 반환해주는 역할을 한다.
return문 뒤에는 어떠한 구문도 올 수 없다. 다르게 말하면 리턴문을 사용하면 값을 반환해 주고 해당 메소드는 실행이 종료된다.

메소드 호출 : 메소드명();

메소드 예시 기본형

public class MethodEx01{
public static void sum(){ // 메소드 정의
		int sum=0;
		for (int i = 0; i < 10; i++) {
			sum += i;
		}
		System.out.println(sum);
	}
	
	public static void main(String[] args) { // main 메소드
		sum(); // 메소드 호출
		sum(); // 메소드 호출
		sum(); // 메소드 호출
	}
}

메소드 예시 자료형

public class MethodEx02 {
	public static int div() { //int형의 메소드 정의
		int a = 10, b = 5;
		int result = a / b;
		int result2 = a * b;
		return result;	// 호출한 곳으로 값 반환
//		return result2; // 컴파일 에러
	}

	public static void main(String[] args) {
		System.out.println(div()); // 메소드 호출 후 리턴값 출력
	}
}

메소드 매개변수

메소드의 매개변수(파라미터)란 외부로부터 입력값을 받기 위해 메소드의 괄호 안에 선언하는 변수라고 생각하면 된다. main 메소드에서 다른 메소드를 호출할 때 값(아규먼트)을 전달하여 전달된 값에 따라 처리될 수 있도록 하는 기능이다. 매개변수를 정의하는 방법은 아래와 같다.

메소드 파라미터와 아규먼트

public class MethodEx03 {
	public static void sum(int a) { // int a 매개변수
		int sum = 0;
		for (int i = 0; i <= a; i++) { // a = 15
			sum += i;
		}
		System.out.println(sum);
	}

	public static void sum(int a, int b) { // int a, b 매개변수 / 메소드 오버로딩
		int sum = 0;
		for (int i = a; i <= b; i++) { // a = 5, b = 20
			sum += i;
		}
		System.out.println(sum);
	}

	public static void main(String[] args) {
		sum(15); // sum(int a) < 아규먼트; 호출 및 값 전달
		sum(5, 20); // sum(int a, b);      호출 및 값 전달
	}
}

접근제한자

1) public : 어디서나 접근, 참조 가능 (+) 
	public static void publicMethod() {
		System.out.println("public method 호출!");
		
		}
2) protected : 상속일 경우 상속된 곳에서, 상속이 아닌 경우 같은 패키지 내에서 (#) 
	protected static void protectedMethod() {
		System.out.println("protected method 호출!");
	}
	
3) (default) : 같은 패키지 내에서만 (~)
	
	static void defaultMethod() {
		System.out.println("default mehod 호출!");
   }
4) private: 현재 클래스 내에서만 (-)
	private static void privateMethod() {
		System.out.println("private method 호출!");
	
	}
5) non-static method : 객체 필요 
	public void nonStaticMethod() {
		System.out.println("MethodTest01의 non-static method 호출!");
	}
    ```
profile
개발하는 돌멩이🙄🙄👻

0개의 댓글