JAVA | 실습 - 생활코딩 제어문, 메소드

여경·2021년 5월 24일
0

학교수업-Java

목록 보기
3/5
post-thumbnail

2021/5/24

자바 생활코딩 제어문, 메소드

자바에 대한 문턱이 높다고 생각했었는지 겁을 많이 먹었다. 씨언어를 완벽하게 끝내지 못한 것에 대한 불안감도 컸고... 근데 신기하게도 오히려 자바를 공부하면서 씨언어에서 매번 헷갈렸던 개념과 내용이 정리되었다. 인자를 넘겨주는 것, 함수에서 (자바에선 메소드에서) 호출하는 것과 같은 편리한 사용... 등 일반적이지만 공부를 놓고있다면 매번 새롭게 느껴졌던 것들이 존재했는데 그런 것들이 조금 정돈된 기분이다!

public class WhyMethod {
    public static void main(String[] args) {
                        //인자, argument
        printTwoTimes("a","-");
        printTwoTimes("a","*");
        printTwoTimes("b","&");
    }
                                        //매개변수, Parameter
    public static void printTwoTimes(String text, String delimiter) {
        System.out.println(delimiter);
        System.out.println(text);
        System.out.println(text);
    }
}

메소드 입력과 출력

import java.io.FileWriter;
import java.io.IOException;

public class WhyMethod {
    public static void main(String[] args) throws IOException {
                        //인자, argument
        printTwoTimes("a","-");
        System.out.println(twoTimes("a", "-"));
       
        writeFileTwoTimes("a","*");
        FileWriter fw = new FileWriter("out.txt");
        fw.write(twoTimes("a", "*"));
        fw.close();
        //fw라는 instance에 write 하는 값이 twotimes
        //Email.send("egoing@a.com", "two times a", twoTimes("a", "&")); - email 발송 부분 코드
    }
    public static String twoTimes(String text, String delimiter) {
        String out = "";
        out = out + delimiter + "\n";
        out = out + text + "\n";
        return out;
    }
    //매개변수, Parameter
    public static void printTwoTimes(String text, String delimiter) {
        System.out.println(delimiter);
        System.out.println(text);
        System.out.println(text);
    }
        public static void writeFileTwoTimes(String text, String delimiter) throws IOException {
        FileWriter fw = new FileWriter("output.txt");
            fw.write(delimiter+"\n");
            fw.write(text + "\n");
            fw.write(text + "\n");
            fw.close();
        }
    }
  • prinTwoTimes 메소드는 출력까지 포함하고 있다보니 우리가 만약 실행 결과를 파일에 쓰게 하고 싶다면 이걸 그대로 사용할 수 없다.
  • 첫번째 해결책은 새로운 이름의 메소드를 만들고 이 안에 파일을 저장하는 기능을 추가한다. 하지만 이러한 형태는 연산 결과를 어떻게 사용하느냐에 따라 메소드를 계속 만들어야 한다.
  • 두번째 해결책으로 새로운 메소드를 만들어 리턴값이 그 output이 값이 되게 하여 여기저기에서 재사용할 수 있도록 할 것이다.
	- printTwoTimes("a","-");
  	- System.out.println(twoTimes("a", "-"));
  • 위의 두 코드는 똑같은 코드이다. 하지만 밑의 코드는 예시로, 이메일로 전송하거나 파일로 저장한다고 할 때 리턴 값을 가지고 있기 때문에 사용이 가능하다.

정리: 메소드는 입력값이 있고 그것을 처리해서 출력해준다. 어떤 데이터 타입을 리턴할 것인지 적어줘야 한다.

reference

커밋을 잊고 있었구만...
깃 - InteliJ 연동
https://goddaehee.tistory.com/249

0개의 댓글