//자바의 함수는 클래스 안에서만 존재 가능 -> 메소드(클래스 내부의 함수)

//메소드 사용 이유 : 똑같은 내용 반복해서 적을 , "어떤 입력값을 주었을 , 어떤 리턴값을 돌려준다"라는 메소드를 작성하여 대신한다.

//출력 = 리턴값

//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

+ Recent posts