티스토리 뷰
<함수>
하나의 기능을 수행하는 일련의 코드의 집합(묶음)
구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 실행의 제어가 반환된다.
여러 곳에서 동일한 방식으로 호출되어 사용되므로 코드의 재사용성을 높임.
<메서드(메소드)>
객체의 기능을 구현하기 위한 클래스 내부에 구현되는 함수
멤버 함수라고도 하며, 멤버 변수를 활용하여 기능을 구현함.
메소드 선언: 객체의 동작을 실행 블록으로 정의하는 것 메소드 호출: 실행 블록을 실제로 실행하는 것 객체의 속성: 멤버 변수(초기값 안 넣을 시 기본값으로 초기화됨) 객체의 기능: 메서드로 구현함. |
함수와 메서드의 차이점
|
<함수의 구성>
리턴 타입, 함수명, 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;
}
'Java' 카테고리의 다른 글
Java(접근 제어 지시자/ getter와 setter) (0) | 2024.04.17 |
---|---|
Java(생성자, 객체지향 패러다임) (0) | 2024.04.16 |
Java(객체, 클래스, Scanner 클래스) (0) | 2024.04.15 |
Java(반복문 while, do-while문) (0) | 2024.04.12 |
Java(조건문 if, 반복문 for) (0) | 2024.04.11 |