Java 메소드 #1

jjinny_0609·2023년 2월 10일
0

Java

목록 보기
14/31
post-thumbnail

메소드

객체에 동작에 해당하는 중괄호 { } 블록을 말합니다.
중괄호 블록 이름이 메소드 이름이며, 메소드를 호출하면 중괄호 블록에 있는 모든 코드들이 일괄적으로 실행됩니다.

메소드 시그니처(Signature)

메소드 선언부를 메소드 시그니처(Signature)라고 하며, 선언부와 실행 블록에는 다음 요소를 포함합니다.

  • 리턴 타입 : 메소드가 리턴하는 결과의 타입을 표시합니다.
  • 메소드 이름 : 메소드 기능이 드러나도록 식별자 규칙에 맞게 이름을 지어줍니다.
  • 매개 변수 선언 : 메소드를 실행할 때 필요한 데이터를 받기 위한 변수를 선언합니다.
  • 메소드 실행 블록 : 실행할 코드를 작성합니다.

메소드 선언

메소드 선언은 선언부(리턴 타입, 메소드 이름, 매개 변수 선언)와 실행 블록으로 구성됩니다.

리턴 타입

리턴 타입은 리턴값의 타입을 말합니다. 리턴 값이란 메소드르 실행한 후의 결과값을 말합니다.
메소드는 리턴값이 있을 수도 있고 없을 수도 있느나 리턴값이 있을 경우 리턴 타입이 선언부에 명시되어야 합니다.

리턴이 없을땐 메소드 앞에 void를 적어서 리턴이 없다고 표시해야 합니다.

메소드 이름 규칙

  • 숫자로 시작하면 안 되고, $와 _를 제외한 특수 문자를 사용하지 말아야 합니다.
  • 관례적으로 메소드 이름은 소문자로 작성합니다.
  • 서로 다른 단어가 혼합된 이름이라면 뒤이어 오는 단어의 첫 글자는 대문자로 작성합니다.

매개변수 선언

매개 변수는 메소드가 실행할 때 필요한 데이터를 외부로부터 받기 위해 사용됩니다.

메소드 선언과 호출 예제


왼쪽이 선언, 오른쪽이 호출

매개 변수의 개수를 모를 경우

매개 변수를 배열 타입으로 선언하면 됨.
매개 변수의 개수를 모를 경우
int sum2(int... values){ }


return문 예제

선언부

public class Car2 {
	// 필드
	int gas;
	// 생성자
	// 메서드
	// setGas 메서드 선언
	void setGas(int gas) {
		this.gas = gas;
	}
	// isLeftGas 메서드 선언
	boolean isLeftGas(){
		if(gas == 0) {
			System.out.println("gas가 없습니다");
			return false;
		}// 리턴 값이 boolean인 메소드로 gas 필드값이 0이면 false를 , 0이 아니면 true를 리턴
			System.out.println("gas가 있습니다");
			return true;
	}
	// run 메서드 선언	
	void run() {
		while(true) {
			if(gas > 0) {
				System.out.println("달립니다.(gas잔량 : "+ gas + ")");
				gas -= 1;
			}else {
				System.out.println("멈춥니다.(gas잔량 : "+ gas + ")");
				return;	
				// void인데 return이 들어가있음 이게뭐냐? -> 
			}
		}
	}
}
public class Car2Example {
		public static void main(String[] args) {
		Car2 myCar = new Car2();
		// setGas메서드 호출
		myCar.setGas(5);
		// isLeftGas메서드 호출
		boolean gasState = myCar.isLeftGas();		//true가 됨.
		// run메서드 호출		
		
		if(gasState) {
			System.out.println("출발합니다.");
			myCar.run();	//run메서드 호출
		}
		
		if(myCar.isLeftGas()) {	//Car의 isLeftGas() 메소드 호출
			System.out.println("gas를 주입할 필요가 없습니다.");	//가져온 값이 true값이면
		}else {
			System.out.println("gas를 주입하세요."); //가져온 값이 false이면
		}
	}
}


### 메소드 호출 메소드는 클래스 내,외부의 호출에 의해 실행됩니다. 클래스 내부의 다른 메소드에서 호출할 경우에는 단순한 메소드 이름으로 호출하면 되지만, 클래스 외부에서 호출할 경우에는 우선 클래스로부터 객체를 생성한 뒤 참조 변수를 이용해서 메소드를 호출해야합니다.

객체 내부에서 호출

클래스 내부에서 다른 메소드를 호출할 경우 다음과 형태로 작성함
메소드 ( 매개값, ...);


객체 외부에서 호출

클래스 참조 변수 = new 클래스( 매개값, ... );

참조변수.메소드(매개값, ...); // 리턴값이 없거나, 있어도 리턴값을 받지 않을 경우
타입 변수 = 참조변수.메소드( 매개값, ...); // 리턴값이 있고, 리턴값을 받고 싶을 경우


메소드 오버로딩

메소드 오버로딩(method overloading) : 클래스내에 같은 메소드를 여러개 선언하는것
오버로딩의 사전적 의미는 싣는것을 의미하며 하나의 메소드 이름으로 여러 기능을 담는다 하여 붙여진 이름이다.
메소드 오버로딩의 조건 : 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다.

profile
뉴비 개발자 입니다. velog 주소 : https://velog.io/@jjinny_0609 Github 주소 :

0개의 댓글