티스토리 뷰

Java

[JAVA] 메서드(method)

TreeBomb 2023. 12. 14. 13:27

변수의 생명주기

메서드를 자세히 보기 전에 변수의 생명주기에 대한 이해가 필요하다.

변수 종류 생명주기
지역변수 지역변수를 선안한 중괄호 내에서만 유효하다.
매개변수(파라미터) 메서드가 호출될 때 만들어지고 메서드가 끝나면 사라진다.
객체변수 객체가 생성될 때 만들어지고, 그 객체를 참조하고 있는 변수가 없으면 사라진다.
클래스변수 클래스가 처음 호출될 때 생명이 시작되고, 프로그램이 끝날 때 사라진다.

 

메서드

    - 메서드란 클래스 안에서 특정 기능을 수행하기 위해 코드들을 따로 하나의 블록으로 묶어놓은 집합이다.

    - 필요에 따라 이 집합을 호출해서 사용할 수 있다.

    - 우리는 메서드를 구현함으로써, 같은 내용의 코드를 반복적으로 작성해야 하는 상황을 피할 수 있다.

    - 메서드의 작성은 메서드 밖에서 써야 한다.

 

메서드의 선언

- 메서드는 크게 머리(header)와 몸체(body)로 구성되어 있다.

접근제한자 반환형 메서드명(파라미터) {	
    작업할 내용;
    return 반환값;
}

 

접근제한자, 반환형, 메서드명, 파라미터 이 3가지 단어는 익숙하지 않을 것이다.

 

접근제한자

- 이 메서드/필드/클래스에 대해 접근을 어디 범위까지 제한하느냐에 대한 지시어

접근제한자 범위
public 같은 프로젝트 내의 모든 객체들이 사용할 수 있도록 허용
private 현재 클래스 내에서만 사용을 허가
protected 상속관계의 객체들에게만 사용을 허가
default 같은 패키지내의 객체에서만 사용을 허가(기본값)

 

반환형

- 메서드가 처음부터 끝까지 실행을 마친 후 반환해야 할 값이 있을 경우 기입

-  int, char, boolean 등 기본자료형을 포함하여 String이나 사용자가 직접 만든 객체로도 반환이 가능

- 아무것도 반환하지 않을 경우 void를 기입.

 

메서드명

- 호출할 때 사용하기 위한 함수의 이름

- 첫 글자는 소문자로 시작한다.

 

파라미터(매개변수, 인자)

- 외부에서 해당 메서드를 통해 특정 값을 전달하고자 할 때,

  그 값을 받아서 메서드(함수) 내부에서 처리할 수 있도록 하는 역할을 하는 변수

 

return

- 함수에서 모든 작업을 마치고 경우에 따라 실행한 결과를 호출한 곳으로 다시 돌려줘야 한다.

- 이건을 반환이라고 한다.

- 반환하는 결과값을 '반환값'이라고 부르기도 한다.

- 반환값이 있는 경우에는 반환할 데이터의 타입이 무엇인지 반환형을 기재해줘야 한다.

- 리턴값이 없는 경우 메서드를 종료하는 기능으로서 return을 작성할 수 있다.

 

메서드 예제

버스 교통카드 예제를 살펴보자

public class Bus {
	public void take(int m) {
		while(true) {
			if (m < 3000) {
				System.out.println("교통카드를 충전하러 갑니다.");
				return;
			}
			System.out.println("버스를 탑니다.");
			m -= 1500;
		}
	}
}

접근제한자 : public

반환형 : void

메서드명 : take

파라미터 : int m

public class BusMain {
	public static void main(String[] args) {
		Bus bus = new Bus();
		int money = 10000;
		bus.take(money);	// 메서드(함수)의 호출
		//함수의 호출은 반드시 함수 안에서 해야한다.
	}
}

메서드의 호출은 객체명.메서드명(파라미터)이다.

우선 Bus객체를 생성을 해주고 생성용 클래스에서 만든 take메서드를 호출해 보자.

버스를 탑니다.	//10000 -> 8500
버스를 탑니다.	//8500 -> 7000
버스를 탑니다.	//7000 -> 5500
버스를 탑니다.	//5500 -> 4000
버스를 탑니다.	//4000 -> 2500
교통카드를 충전하러 갑니다.

매개변수(파라미터)에 들어간 10000원이 버스를 타면서 1500원씩 빠져나가다가 3000원 미만으로 떨어지면 충전을 하러 가는 것을 볼 수 있다.

 

반환형이 있는 메서드

public class MethodTest {
	//f(x) = 2x + 1
	public int f(int x) {
		return 2*x + 1;
	}
}

 

반환값이 있는 경우 반환형 자리에 자료형을 써줘야 한다.

계산한 수의 결과를 반환할 것이니 정수형(int)을 반환형에 작성을 해준 뒤 return으로 반환을 해주자.

public class MethodMain {
	public static void main(String[] args) {
		MethodTest t = new MethodTest();
		System.out.println(t.f(5));
		//데이터를 반환해주는 것이기 때문에 출력문이나 변수안에다가 대입을 해줘야 한다.
	}
}

 

 

 

 

[JAVA]setter&getter

setter & getter 란? - 객체 지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는다. - 예를 들어 자동차의 속도가 음수가 될 수 없는데, 외부에서 음수로 설정하면 무

treebomb-code.tistory.com

 

'Java' 카테고리의 다른 글

[JAVA] 생성자(Constructor)  (0) 2023.12.19
[JAVA]setter&getter  (0) 2023.12.15
[JAVA]클래스(Class)  (0) 2023.12.13
[JAVA]배열2(Arrays)  (0) 2023.12.01
[JAVA] 배열(Array)  (2) 2023.11.30