본문 바로가기
아카이브/생활코딩

JAVA 메소드 20200911

by nineteen 2020. 9. 11.
반응형

연관된 코드를 모아서 그룹핑하고 이름을 붙인 것이 메소드

복잡한 코드를 깔끔하게 만들 수 있음

이미 만들어 놓은 메소드를 사용함으로써 똑같은 코드를 다시 작성하지 않고 재사용가능

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
public class WhyMethod {
    
    public static void printTwoTimesA() {
        System.out.println("-");
        System.out.println("A");
        System.out.println("A");
    }
    
    public static void main(String[] args) {
 
        // 중복되는 코드가 1억줄이라는 가정
        System.out.println("-");
        System.out.println("A");
        System.out.println("A");
        
        // 1억줄의 코드를 그룹핑해서 이름을 붙임
        // 메소드를 보고 코드의 의미를 파악하기 쉬워짐
        printTwoTimesA();
        
    }
 
}
 
cs

 

 

 

A

 

printTwoTimesA()메소드는 A를 출력한다.

 

만약,

B를 출력하고 싶어서 printTwoTimesB()메소드를 만들어 사용하는 것은 효율적일까?

 

 

 

 

 

 

 

메소드 입력

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
public class WhyMethod {
    
    public static void printTwoTimes(String text) {
        System.out.println("-");
        System.out.println(text);
        System.out.println(text);
    }
    
    public static void main(String[] args) {
 
        // 출력하고자 하는 내용들을 printTwoTimesA, printTwoTimesB등의 메소드들을 따로만들어 호출하는 게 아니라
        // 매개변수를 활용해 하나의 메소드로 여러값들을 출력가능
        printTwoTimes("a");
        printTwoTimes("a");
        printTwoTimes("a");
        printTwoTimes("b");
        
    }
 
}
 
cs

 

매개변수를 활용해서, 하나의 메소드로 여러값을 출력하게 할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

메소드 출력

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
public class WhyMethod {
    
    public static void printTwoTimes(String text, String delimiter) {
        System.out.println(delimiter);
        System.out.println(text);
        System.out.println(text);
    }
    
    public static String twoTimes(String text, String delimiter) {
        String out = "";
        out = out + delimiter + "\n";
        out = out + text + "\n";
        out = out + text + "\n";
        return out;
    }
    
    public static void main(String[] args) {
 
        printTwoTimes("a""-");
        
        System.out.println(twoTimes("b""-"));
        
    }
 
}
 
cs

retrun 키워드를 이용해 메소드안에서 수행문 실행 후의 값을 출력할 수 있다.

printTwoTimes()와 twoTimes()메소드는 같은 수행을 하는 메소드

 

twoTimes()메소드의 반환형은 String형이니 String형 변수 out을 반환한다.

 

 

 

 

 

 

 

 

 

 

 

 

메소드를 사용하지 않은 경우

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
public class AccountingApp {
 
    public static void main(String[] args) {
 
        // 공급가액
        double valueOfSupply = 10000.0;
        
        // 부가가치세율
        double vatRate = 0.1;
        
        // 부가세
        double vat = valueOfSupply * vatRate;
        
        // 합계
        double total = valueOfSupply + vat;
        
        System.out.println("valueOfSupply : " + valueOfSupply);
        System.out.println("vat : " + vat);
        System.out.println("Total : " + total);
    }
 
}
 
cs

 

 

만약 코드의 라인 수가 몇백줄이 넘어가는 상황이었다면,

상당히 복잡하고, 코드의 의미가 무엇인지 알기 쉽지 않았을 것이다.

정리정돈 되어있지 않았기 때문이다.

 

 

 

 

 

 

메소드 활용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
public class AccountingApp {
    
    // 공급가액
    public static double valueOfSupply = 10000.0;
            
    // 부가가치세율
    public static double vatRate = 0.1;
 
    // 메소드
    public static double getVAT() {
        return valueOfSupply * vatRate;
    }
    
    public static double getTotal() {
        return valueOfSupply + getVAT();
    }
    
    public static void main(String[] args) {
 
        System.out.println("valueOfSupply : " + valueOfSupply);
        System.out.println("vat : " + getVAT());
        System.out.println("Total : " + getTotal());
    }
 
}
 
cs

메소드를 활용해 정리하고 깔끔하게 만들 수 있고,

재사용이 가능해 코드가 중복되지 않게 할 수 있다.

 

 

 

 

 

 

 

 

 

 

'아카이브 > 생활코딩' 카테고리의 다른 글

JAVA 객체지향 프로그래밍 20200911  (0) 2020.09.11
JAVA 20200910  (0) 2020.09.10
JAVA 20200909  (0) 2020.09.09
JAVA 20200907  (0) 2020.09.07