메소드 - method (함수)
자주 사용하는 코드를 메소드로 만들면 귀찮게 반복해서 계속 작성 안해도 됨
예시)
0~10 까지 총 5번 나오게 출력 하고 싶어요
public class zzzz { // 무조건 클래스 파일 안에 입력
//메소드 배우기 전 main만 사용 했지만 메소드를 배웠으니 main 자리에 메소드 명을 입력
public static void numbering() {
for (int i = 0; i < 11; i++) { //for문으로 0~10 까지 입력되게
System.out.println(i); //0~10까지 출력되게
}
}
public static void main(String[] args) { //main메소드에서 무조건 값이 출력되게 약속 되어 있음
numbering(); //메소드를 불러올려면 메소드명();
numbering();
numbering();
numbering();
numbering();
}
}
//0
//1
//...
//10
//총 5번 출력됨
*class 파일 안에 입력
*main 메소드에서만 출력이 가능
입력값 - parameter (매개변수)
public class zzzz {
//numbering 메소드 () 안에 매개변수(parameter) 를 추가 함으로써 인자 값에 맞게 입력 됨
public static void numbering(int num) {
int i = 0;
while (i < num) { //num => 매개변수(parameter)
System.out.println(i);
i++;
}
}
public static void main(String[] args) {
numbering(2); //numbering 메소드 () 안에 값을 인자라고 하고 인자 값에 넣으면 매개변수가 바뀜
}
}
그림으로 설명하자면 아래와 같다
출력값 - return
public class zzzz {
public static String numbering(int num, int limit) {
int i = num;
String Number = ""; //만들어지는 숫자를 Number 변수에 담기 위해 변수에 빈 값을 준다.
while (i < limit) {
Number += i; //i의 값이 Number에 더해진다 ""+i => "i" 이렇게 빈 값 안에 i값이 들어간다.
i++;
} return Number; //Number 변수에 담긴게 필요하니깐 Number를 return 한다.
}
public static void main(String[] args) {
String result = numbering(1, 5);
System.out.println(result);
}
}
위 코드를 좀 더 자세히 알아보자
return 값은 메소드의 타입(String, Integer ...)이랑 같아야 한다.
*String으로 했으면 문자열로 출력 해야하고, Integer로 했으면 정수 값으로 출력 해야 실행된다.
return을 만나면 메소드는 종료 된다.
배열도 사용 가능
public class zzzz {
public static String[] setname() {
String[] setnames = {"김대한", "홍민국", "최만세"};
return setnames;
}
public static void main(String[] args) {
String[] name = setname();
System.out.println(name[0]);
}
}
main 영역 밖에 메소드에 static을 사용하는 이유
저장영역
1. 데이터 영역: 변수, 지역변수 / {}가 끝나면 사라짐
2. static 영역: 정적(고정) 영역 / 프로그램 끝날때 까지 기억
3.힙 영역: 동적 영역 / 예) 배열 / 필요에 따라 저장
main 밖에서 static을 작성 해야 메소드를 찾을 수 있고 만약 static 쓰기 싫으면
main 영역 안(프로그램 동작영역)에서 작성
반응형
'JAVA > 기본' 카테고리의 다른 글
유효범위 - 전역변수, 지역변수 (0) | 2022.11.04 |
---|---|
클래스 멤버와 변수, 인스턴스 멤버와 변수 (0) | 2022.11.03 |
객체, 클래스, 인스턴스 (0) | 2022.11.01 |
this (0) | 2022.11.01 |
기본 문법 / 작동 순서 (0) | 2022.10.26 |