method : 기능 (명령문들의 집합)

  • 클래스 안에 있어야 합니다.
  • Java에서는 메소드 안에 메소드 생성할 수 없습니다.

 

접근제한자 메모리영역 리턴타입 메소드이름 (파라미터) {

        명령문;

}

 

접근제한자 : 접근을 제한해주는 것

  • public (+) : 어디서나 접근, 참조 가능
  • protected (#)
    • 상속일 경우 : 상속된 곳에서만
    • 상속이 아닐 경우 : 같은 패키지 내에서만
  • default (~) : 같은 패키지 내에서만
  • private (-) : 같은 클래스 내에서만

 

메모리영역

  • static인 경우 : application이 실행되면 모두 메모리에 할당되고, 종료되면 삭제됩니다.
    • 객체를 생성하지 않습니다.
    • class.method() 형태로 호출합니다.
  • non-static인 경우 : 클래스의 인스턴스를 생성할 때 만들어집니다.
    • class 변수 = new class();
    • 변수.method() 형태로 호출합니다.

 

리턴타입 : 메소드를 실행했을 때 리턴된 값의 타입

  • void : 리턴 값이 없는 것
  • int, double, String, boolean ...

 

파라미터 (=매개변수)

  • method 외부에서 전달된 값을 받아서, 내부에서 사용하기 위한 변수
static int getSum(int i, int j) { // 파라미터 i, j
	
    int sum = i + j;
    return sum;
}

아규먼트

  • method 외부에서 전달해주는 값
getSum(10, 20); // 파라미터 값으로 아규먼트 10과 20을 대입하였다.

 

 

 

 

코드로 이해하기

 

프로젝트 구조

com.test01 패키지의 MethodTest01 클래스

package com.test01;

public class MethodTest01 {

	public static void main(String[] args) {
		
		// class.method() 형태로 호출합니다.
		MethodTest01.publicMethod();
		MethodTest01.protectedMethod();
		defaultMethod();	// 같은 class안이면 class 이름 생략 가능합니다.
		privateMethod();
	}
	
	// 접근제한자
	// public : 어디서나 접근, 참조 가능 (기호 : +)
	public static void publicMethod() {
		System.out.print("접근제한자 1. ");
		System.out.println("public");
	}
	
	// protected (#)
	// 1. 상속일 경우 : 상속된 곳에서
	// 2. 상속이 아닐 경우 : 같은 패키지 내에서만
	protected static void protectedMethod() {
		System.out.println("접근제한자 2. protected");
	}
	
	// (default) (~) : 같은 패키지 내에서만
	static void defaultMethod() {
		String str = "default";
		System.out.printf("접근제한자 3. %s \n", str);
	}
	
	// private (-) : 현재 클래스 내에서만
	private static void privateMethod() {
		System.out.println("접근제한자 4. private");
	}
	
	public void nonStaticMethod() {
		System.out.println("non static method!");
	}
}

출력 결과

 

com.test01 패키지의 MethodTest02 클래스

package com.test01;

public class MethodTest02 {

	public static void main(String[] args) {
		
		// static인 경우
		// class.method() 형태로 호출
		MethodTest01.publicMethod();
		MethodTest01.protectedMethod();
		MethodTest01.defaultMethod();
		
        
		// non-static인 경우
		// class 변수 = new class();
		// 변수.method() 형태로 호출
		MethodTest01 method01 = new MethodTest01();
		method01.nonStaticMethod();
	}
}

출력 결과

 

com.test02 패키지의 MethodTest03 클래스

package com.test02;	// 다른 패키지!

import com.test01.MethodTest01;	// 다른 패키지면 import해야 합니다.

public class MethodTest03 {

	public static void main(String[] args) {
		
		MethodTest01.publicMethod();
		//MethodTest01.protectedMethod();	// 상속(extends)을 하지 않았기 때문에 에러납니다.
		
		MethodTest01 method01 = new MethodTest01();
		method01.nonStaticMethod();
	}
}

출력 결과

 

*** 참고 ) method 이름 규칙

  • is~ : 인지 아닌지
  • has~ : ~를 가지고 있는지
  • to~ : ~하자
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기