main과 형식이 유사함.
메소드는 반드시 클래스 안에서 선언해야 함.
메소드 안에는 개발자가 실행해야 할 기능들을 선언해야 함.
JDK(Java Development Kit)
돌려줄 값의 자료형 : String, int (돌려줄 값이 있다면 return 문을 작성하고 위의 형식을 반환해야함.)
돌려줄 값이 없다면 void로 작성
// 선언
[접근제어자] [기타제어자] 리턴타입 메소드명([매게변수자료형 매개변수명, ...]){
실행문들;
...
[return 리턴할 값;]
}
// 예시(메소드 선언 형식)
[public static] int sum(int a, int b){
int result = a + b;
System.out.println(result);
}
메소드명([매개값 ...]);
// 예시
int r = sum(10, 11); // 값을 저장하는 저장공간도 된다.
System.out.println(r);
// 출력값
21
자바의 패키지는 소문자로 만든다.
메소드 예시
public class Ex01 {
// static void hello_func() {
// System.out.println("Hello World!");
//
//
// }
// static String hello_func() {
// return "Hello World!" ;
// }
//
static String hello_func() {
String str = "Hello World!";
return str;
}
public static void main(String[] args) {
// hello_func(); // 메인 메소드 안에서 코드를 확인!
System.out.println("main메소드 실행");
System.out.println(hello_func());
}
}
public class Ex02 {
static void sum(int a, int b) { // 매개변수 a,b
int c;
c = a + b;
System.out.println("a + b = " + c);
}
public static void main(String[] args) {
int a = 10, b = 20; // 지역변수 a,b
sum(a, b);
// int x = 10, y = 20;
// sum(x, y);
sum(4,5); // 9
/* 메소드 호출시 지켜야할 사항
* 메소드의 이름
* 메소드의 매개변수 갯수
* 메소드의 매개변수 자료형
* 메소드의 매개변수 나열순서(선언된 자료형순서대로, 자료형 갯수만큼)
*
* */
}
}
메소드의 선언 위치는 상관없음.
// 예시
public class Ex03 {
public static void main(String[] args) {
System.out.println(abs(-5)); // System.out의 println은 다른 클래스 소속임.
}
static int abs(int x) { // 꼭 매인 메소드 전에 생성하지 않아도 괜찮음.
int y;
if (x<0)
y = -x;
else
y = x;
return y; // 값을 return 문으로 반환
}
}
: 동일한(같은) 이름의 메소드를 한 클래스에 여러개 만들어 주는 것(여러개 쌓아두는 것)
로딩 : 차곡차곡 쌓는다.
1.반드시 매개변수의 갯수가 달라야 함.
ex)
void sum(int a) { };
void sum(int a, int b) { };
2.반드시 매개변수의 자료형이 달라야 함.
ex)
void sum(int a) { };
void sumd(double a) { };
반드시 매개변수의 갯수와 자료형이 일치하면 나열순서가 달라야 한다.
ex)
void sum(int a, String b) { };
void sum(String b, int a) { };
메소드의 이름이 동일해야 함.
// 예시
public class Ex04 {
static void prn(int x, int y, int z) { // 메소드 선언문
// void와 return을 통해 반환값을 예측할 수 있음.
System.out.println("매개변수 3개");
System.out.println((x + "\t" + y + "\t" + z));
}
static void prn(int x, int y) {
System.out.println("매개변수 2개");
System.out.println(x + "\t" + y);
}
static void prn(int x) {
System.out.println("매개변수 1개");
System.out.println(x);
}
public static void main(String[] args) { // 자바는 메인이라는 메소드만 읽는다.
prn(10,20,30); // 메소드 호출문
prn(40,50);
prn(60);
}
}
public class ex05 {
static void printstr(String str) {
System.out.println(str);
}
static void printstr(char ch, int cnt) {
for(int i = 0; i < cnt; i++)
System.out.print(ch);
System.out.println();
}
public static void main(String[] args) {
printstr("하늘은 파랗다.");
printstr('A',10);
}
}