Java

Java, Method (메소드)의 정의

greenyellow-s 2024. 7. 12. 13:59

Method

명령어들의 집합을 메소드 라고 한다.

 

호출한 메소드는 반드시 호출한 곳으로 되돌아오며

return(결과값, 반환값)은 반드시 1개뿐이여야 한다.
또한, 반환(return)되는게 없으면 void로 선언해야 된다.

 

[형식]
returnType 메소드명(인수형 인수, 인수형 인수 ... ){
        메소드body
}

 

호출 방식

 

객체명.메소드명(값1, 값2 ... )

메소드가 static 일 경우 : 클래스명.메소드명(값1, 값2 ... )

 

 

메소드에서 static이 있는 경우에 클래스명을 함께 메소드명을 호출한다.

Method01.display();

만약 불러야 하는 메서드의 클래스가 main의 클래스와 같은 경우 클래스명을 생략해도 무관하다.

display();

 

하지만 static이 없는 경우는 new를 사용해서 호출해야된다.

Method01 m = new Method01();
m.output();

 

생성자(Constructor) 메소드

 

객체를 초기화하는 것이 생성자의 목적이다.

 

1. 생성자명은 반드시 클래스명과 동일해야한다.
2. 클래스를 메모리에 생성 시 (new 할 때) 생성자를 자동 호출한다.
3. returnType(결과형)이 없다.

결과형 메소드명(매개변수형 이름, 매개변수형 이름...){  // 구현
returnType
  } ==> 쓰지 말라는 뜻

 

변수형이 같아도 통합해서 사용할 수 없다.


int sub(int a, b){  } // error!
int sub(int a, int b){  }
void sub(int a, int b) {  }

 

static

 

static은 실행하고 함수가 끝나면 바로 사라지는 일반 메소드와는 달리

메모리에 저장이 되기 때문에 한번 저장되면 쉽게 사라지지 않는다.

 

package class__;

public class Method01 {

	public static void main(String[] args) { // 구현
		// static 메소드 호출 - 클래스명.메소드명
		Method01.display();
		display(); // 내 구역 안에서는 클래스명 빼도 가능
		
		Method01 m = new Method01();
		m.output();
		// static으로 되어 있지 않은 메소드이기 때문에
		// new로 생성해줘야 된다.
		
		m.display();		

	}
	
	public static void display() { // 구현
		System.out.println("static method");
		// 출력 후 복귀
		// 함수의 문이 닫히면 전부 reset, 사라진다.
	}
	
	public void output() { // 구현
		System.out.println("non-static method");
	}

}

 

2024-7-12