티스토리 뷰

Java

Java(함수/메서드)

yoooon1212 2024. 4. 15. 17:47

<함수>

하나의 기능을 수행하는 일련의 코드의 집합(묶음)

구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 실행의 제어가 반환된다.

여러 곳에서 동일한 방식으로 호출되어 사용되므로 코드의 재사용성을 높임.

<메서드(메소드)>

객체의 기능을 구현하기 위한 클래스 내부에 구현되는 함수

멤버 함수라고도 하며, 멤버 변수를 활용하여 기능을 구현함.

메소드 선언: 객체의 동작을 실행 블록으로 정의하는 것
메소드 호출: 실행 블록을 실제로 실행하는 것

객체의 속성: 멤버 변수(초기값 안 넣을 시 기본값으로 초기화됨)
객체의 기능: 메서드로 구현함.

 

함수와 메서드의 차이점

함수: 어디에 속해있지 않고 단독 모듈이라 함수를 그냥 호출하여 사용이 가능
메서드: 함수의 일종이긴 하지만 클래스 안에 속해 있고, 클래스의 멤버 변수들을 이용해서 구현된 것(객체와 관련된 기능)



<함수의 구성>

리턴 타입, 함수명, parameter(매개 변수), 반환 값, 함수 몸체(body)로 구성됨. 

예시)

int add(int num1, int num2){
int result; 
result = num1 + num2;
return result;
}

리턴 타입: int

함수 이름: add

parameter(매개변수): int num1, int num2

반환 값: result

함수 몸체(실행 블록): { } 내용 전체

리턴 타입: 함수가 실행한 후 호출한 곳으로 전달하는 결과값의 타입 ex) int, double, boolean
(리턴값이 없는 메서드는 void로 작성)
함수명: 첫문자는 대문자, 캐멀 스타일

 

 

예시2)

public static void main(String args[] args) {
add(5, 10);
int resultAdd = add(100, 200); // 메서드 호출
}

void -> 리턴값 없음.

add(5, 10); -> 매개변수는 정수값만 받을 수 있음.(전달할 매개값이 없다면 생략 가능) 

ex) add(5.0, 10)(x)

타입 변수 = 메서드(); -> 메서드 호출함.

함수는 여러번 호출이 가능, 재사용 가능, 리턴타입이 있다면 결과값을 받을 수 있음. (int면 int, double 이면 double)

 

 

 

 

 

 

변수에는 함수안에 쓰는 지역변수와 클래스 안에 쓰는 멤버변수로 나뉜다.

 

 

지역변수 예시)

public class Function1 {
static int add(int n1, int n2) {
int result; // 변수 ->> 지역변수 
result = n1 + n2;
return result; 
}// end of add(함수) - 함수 안에 선언하는 변수: 지역변수
}

 

멤버변수 예시)

* 객체의 속성은 멤버변수, 객체의 기능은 메서드로 구현함.

public class Student {
	
	// 멤버 변수 
	// 특징 - 초기화 값을 넣지 않는다면 기본 값으로 초기화 된다. 
	// new .. 생성자(); --> heap 메모리에 올라 갔을 시 값이 없다면 기본값으로 초기화 된다.
	int studentID;
	String studentName; 
	String address;
	
	// 메서드 설계 하기 
	public void study() {
		System.out.println("학생이 공부를 합니다.");
	} 
	
	public void breakTime() {
		System.out.println("학생이 휴식을 합니다.");
	}
	
	public void showInfo() {
		System.out.println("-----------상태창----------------");
		System.out.println("학생 ID : "  + studentID);
		System.out.println("학생 이름 : "  + studentName);
		System.out.println("학생 주소 : "  + address);
	}
	
	
} // end of class

 

기본값 : int a 는 0으로, boolean은 false로, String은 null로 초기화되지만 지역변수는 자동으로 초기화되지 않는다. 

 

.name 은 변수에 접근하는 방법이고, () 는 함수나 메서드를 호출하는 방법이다. 

 

 

<return문>

메서드의 실행을 강제 종료하고 호출한 곳으로 돌아간다는 의미

 

 

예시)  세 개의 정수값을 받아서 덧셈하는 기능 만들기

public static void main(String[] args) {
int result = addNum(10, 10, 10);
System.out.println(result);
}
static int addNum(int n1, int n2, int n3) {
int result = 0;
result = n1 + n2 + n3;
return result;
}
}

result 는 리턴값임.

이 리턴값은 main 함수 내의 int result = addNum(10, 10, 10); 코드의  result로 반환되고, addNum(10, 10, 10)의 인수들은  static int addNum(int n1, int n2, int n3) {} 의 매개변수로 인수가 전달된다.

 

 

 

예시2) 1~ 100의 합

public static void main(String[] args) {
System.out.println(calcSum());
}
static int calcSum() {
int sum = 0;
int i;
for(i = 1; i <= 100; i++){
sum += i;
}
return sum;
}

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함