'java 메소드'에 해당되는 글 1건

  1. 2016.12.05 자바 메소드에 대해서 알아보기
2016. 12. 5. 23:37

자바 메소드에 대해서 알아보도록 하겠습니다.

자바의 메소드라고 하면 C언어의 함수라고 생각히시면 될 것 같습니다.


예를 들어 System.out.println() 이라는 메소드는 자바에서 정의된 출력 메소드 입니다.

자바에서 정의한 메소드를 사용할 수도 있지만, 사용자가 직접 메소드를 구현해서 사용할 수도 있습니다.


오늘은 사용자가 구현한 메소드에 대해서 알아보도록 하겠습니다.


사직 연산을 하는 프로그램을 만든다고 생각하고 설명하겠습니다.

기본적으로 아래와 같이 코딩을 할 것입니다.

>> Test1 java

package com;

 

public class Test1 {

 

        public static void main(String[] args) {

               int i =0;

               int j = 0;

               int k = 0;

               int m = 0;

              

               i = 1 + 1 ;

               j = 1 - 1;

               k = 1/1 ;

               m = 1*1;

              

               System.out.println("더하기결과 : " + i);

               System.out.println("빼기결과 : " + j);

               System.out.println("나누기결과: " + k);

               System.out.println("곱하기결과 : " + m);

 

        }

 

}

 


이런 식으로 코딩할 경우 사직연산이 일어날 때마다 계속해서 더하기 빼기를 해야 할 것입니다.

계속해서 사용할 필요성이 있는 코딩에 대해서는 메소드로 구현하면 불필요한 코딩을 줄일 수 있습니다.

사직연산 하는 메소드를 만들어 보겠습니다.


>> Test1 java

package com;

 

public class Test1 {

 

        public static void main(String[] args) {

               System.out.println("더하기결과 : " + add(1,1));

               System.out.println("빼기결과 : " + subtract(1,1));

               System.out.println("나누기결과: " + division(1,1));

               System.out.println("곱하기결과 : " + multiply(1,1));

        }

 

        public static int add(int num1 , int num2){

               int a = 0;            

               a = num1 + num2;             

               return a;

        }

       

        public static int subtract(int num1 , int num2){

               int a = 0;            

               a = num1 - num2;             

               return a;             

        }

       

        public static int division(int num1 , int num2){

               int a = 0;            

               a = num1 / num2;             

               return a;             

        }

       

        public static int multiply(int num1 , int num2){

               int a = 0;            

               a = num1 * num2;             

               return a;             

        }

}

 


사직 연산하는 메소드를 구현하여 해당 메소드를 호출하여 사직연산을 수행해 보았습니다.

코딩을 작성해 놓고 나니 그래도 중복되는 코딩이 존재하는걸 볼 수 있습니다.

구현한 메소드를 보면 입력하는 파라메터도 숫자 type 변수 2개이고, 리턴되는 값 또한 동일 했습니다.

그럼 여기서 파라메터에 구분자를 받아 하나의 메소드로 만들어 보겠습니다.


>> Test1 java

package com;

 

public class Test1 {

 

           public static void main(String[] args) {                

                     System.out.println("더하기결과 : " + Calculation("+",1,1));

                     System.out.println("빼기결과 : " + Calculation("-",1,1));

                     System.out.println("나누기결과: " + Calculation("/",1,1));

                     System.out.println("곱하기결과 : " + Calculation("*",1,1));

           }

           public static int Calculation(String gubun , int num1 , int num2){

                     int a =0;

                    

                     if("+".equals(gubun)){

                                a = num1 + num2;

                     }else if("-".equals(gubun)){

                                a = num1 - num2;

                     }else if("/".equals(gubun)){

                                a = num1 / num2;

                     }else if("*".equals(gubun)){

                                a = num1 * num2;

                     }

                     return a;

           }

}

 

 

구분자를 받아 사직 연산하는 코딩을 해보았습니다.

테스트해본 결과 3개의 코딩 모두 같은 결과가 나옵니다.

이처럼 자주 사용하는 코딩을 하나에 메소드로 만들어 놓으면 쉽고, 깔금한 코딩이 될 것 같습니다.


간단한 예제를 작성하면서 메소드를 사용하면 어떤 점이 편한지에 대해서 설명 했습니다.


추가로 설명들일 부분은. 파라메터에는 모든 java의 type을 선언할 수 있습니다.

또한, 리턴값도 모든 type의 값을 선언 할 수 있습니다.


리턴값을 정의 할 때는 메소드명 앞부분에 선언 합니다.

리턴값을 선언할 경우 해당 메소드에서는 int형을 무조건 리턴해야 됩니다.

리턴값이 없을경우 void로 선언 합니다.(리턴값이 void일경우 return 문이 있으면 오류가 발생됩니다.)

>> Test1 java

        public static int division(int num1 , int num2){

               int a = 0;                   

               return a;             

        }

        public static void division1(int num1 , int num2){                 

               System.out.println("나누기결과:" + (num1/num2));            

        }


메소드에 대해서 알아보았는데요, 쉽다고 생각하면 쉽고 어렵다고 생각하면 어려운 메소드 인 것 같습니다.

보다 쉽게 접근 할려고 생각하면 더 간단하고 좋은 코딩 하실 수 있을거라 생각됩니다.



Posted by dlfma1985