//자바의 함수는 클래스 안에서만 존재 가능 -> 메소드(클래스 내부의 함수)
//메소드 사용 이유 : 똑같은 내용 반복해서 적을 때, "어떤 입력값을 주었을 때, 어떤 리턴값을 돌려준다"라는 메소드를 작성하여 대신한다.
//출력 = 리턴값
//cf.파이썬은 함수/메소드 별개로 존재
public class Test {
public int sum(int a, int b) { //sum이라는 메소드는 두 개의 값(int 자료형 a, int 자료형 b)을 입력값으로 //받으며
return a+b; //리턴값은 두 개의 입력값을 더한 값(int 자료형)이다.
} //return은 메소드의 결과 값을 돌려주는 명령어이다.
public static void main(String[] args){
int a = 3;
int b = 4;
Test
myTest = new Test();
int c = myTest.sum(a, b); //sum메소드에 3, 4라는 입력값을 전달하여 7이라는 값을 돌려받는다.
System.out.print(c);
}
}
메소드 구조
public 리턴자료형 메소드명(입력자료형1 입력변수1, 입력자료형2 입력변수2, ...){
...
return 리턴값;
}
*리턴자료형이 void면 리턴값 없음
*리턴자료형 public, private, void, static 등
*입력자료형1 입력변수1, 입력자료형2 입력변수2 의 (예시) String name, int a
입력 O 출력 O
public int sum(int a, int b){
return a+b;
}
public static void main(String[] args) {
Test
myTest = new Test();
int c = myTest.sum(10, 20);
System.out.print(c);
}
리턴값받을변수 = 객체.메소드명(입력인수1, 입력인수2, ...)
리턴값이 int로 되어있으므로 c의 자료형은 반드시 int로 해야한다.
입력 X 출력 O
public class Test {
public String say() {
return "Hi";
}
public static void main(String[] args) {
Test
myTest = new Test();
String
a = myTest.say();
System.out.print(a);
}
}
리턴값받을변수 = 객체.메소드명()
입력 O 출력 X
public class Test {
public void sum(int a, int b) {
System.out.println(a+"과 "+b+"의 합은"+(a+b)+"입니다"); //리턴값 아님
}
public static void main(String[] args) {
Test
myTest = new Test();
myTest.sum(3, 4);
}
}
객체.메소드명(입력인수1, 입력인수2, ...)
리턴값은 return으로만 돌려줘야 함.
입력 X 출력 X
public class Test {
public void say() {
System.out.println("Hi");
}
public static void main(String[] args) {
Test
myTest = new Test();
myTest.say();
}
}
객체.메소드명()
출처 : https://wikidocs.net/225