티스토리 뷰

카테고리 없음

자바(JAVA) Void 뜻

justgodoit 2024. 7. 2. 17:18

목차

     

    void 는 진공, 공허라는 뜻, 무(無)의 타입을 의미, 함수가 무언가 리턴을 한다면 그 무언가는 타입이 있어야 되기 때문에 이 void 함수가 가능한 형태는 아무것도 리턴하지 않는 함수 가 됩니다.  리턴을 할 필요가 없는 함수에 사용한다.


    메소드의 생김새는 대략 이렇습니다.

    반환형 메소드명(전달값) {
        ... 어떤 동작 ...
        return 반환값;
    }

    1) 반환값이 있는 메소드

    메소드 내부에서 어떤 동작을 수행하고 나서 뭔가를 반환한다면, 반환형 위치에는 반환하려는 자료형 (int, float, String 등) 을 적어주면 됩니다.

    그리고 return 뒤에는 반환하려는 값을 넣어주면 되구요.

     

    2) 반환값이 없는 메소드

    메소드 내부에서 어떤 동작을 수행하고 나서 아무것도 반환하지 않는다면, 반환형 위치에는 '비어 있다' 는 의미의 void 를 적어주면 됩니다.

    그리고 이 경우 return 구문은 적지 않아도 되죠.

     

    호텔에 전화를 걸어서 "주소가 어떻게 되나요?" 라고 물어본다면 우리는 당연히 직원으로부터 주소 정보를 안내받기를 기대할 것입니다.

     

    이게 메소드에서는 반환값이며

    String getAddress() {
        return "서울시 어딘가";
    }

     

    라는 코드 중 return 에 의해 "서울시 어딘가" 라는 주소를 알 수 있게 됩니다.

     

    즉 메소드를 호출한 곳에서 주소값을 반환받아서 사용할 수 있게 되는 거죠.

     

    만약 호텔 전화번호를 잘못 눌러서 없는 전화번호라면 "잘못된 전화번호입니다.

     

    확인 후 다시 걸어주세요" 라고 한 뒤전화는 자동으로 끊어질 것입니다.

     

    이때는 수화기 너머로 어떤 정보를 기대할 수 있는 상황은 아니죠.

    void wrongNumber() {
        System.out.println("잘못된 전화번호입니다. 확인 후 다시 걸어주세요.");
    }

    이 경우에는 이렇게 일방적인 통보식의 동작만 하고 별다른 반환값은 없습니다. 그래서 return 도 필요 없으며 더불어 반환형에는 void 로만 적어주면 되는 것이죠.

     

    반환값이 있는 메소드는 main( ) 영역에서 이 메소드를 호출하여 특정 동작 수행 및 반환값을 받아서 main( ) 영역에서 계속 사용할 수 있도록 합니다.

     

    그래서 아래와 같이 getAddress() 메소드로부터 받은 주소 정보를 address 변수에 담고 있다가 System.out.println( ) 문에서 사용할 수 있는 것입니다.

    String address = getAddress();
    System.out.println("호텔 주소 : " + address);

    마치 햄버거 가게에서 햄버거를 주문하면 직원이 햄버거를 만들어서 주는 것과 같습니다.

     

    햄버거를 주문(메소드 호출)하게 되면 주방(메소드 내부)에서 햄버거를 만들고(메소드 동작 수행) 만들어진 햄버거를 받게 되는 것(반환값)이죠.

     

    학습에 도움되시길 바라겠습니다 😊

     

    출처 :https://www.inflearn.com/questions/758491/void%EC%9D%98-%EC%A0%95%ED%99%95%ED%95%9C-%EC%9D%98%EB%AF%B8%EB%A5%BC-%EB%AA%A8%EB%A5%B4%EA%B2%A0%EC%96%B4%EC%9A%94