• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

안녕하세요 자바를 시작한지 별로 안된 사람입니다.

22.02.27 20:53 작성 조회수 143

0

 이 강의에서의 질문은 아니지만 자바 입문자를 대상으로 하는 강의 처럼 보여서 질문을 드립니다. 자바에서는 함수 대신 메서드라고 표현하더라구요. 그리고 자료형을 제시해야하는 정적 타이핑 언이이기도 하고요. 이 정적 타이핑에 대한 것이 질문의 핵심입니다. 만약 조건에 따라 다른 자료형을 리턴한다고 가정해보겠습니다.

public static returnTwoType() {
    if (true) {
        return '1';
    } else {
        return 1;
    }
}

실제로 이런 메서드는 존재하지 않겠죠 리턴값은 있지만 메서드 선언문에 자료형이 제시가 안되어 있으니까요. 만약 이런식으로 어떠한 조건때문에 리턴값의 타입이 두 가지 혹은 그 이상으로 나뉘게 된다면 어떤 자료형으로 메서드를 선언해야 할까요? 

답변 1

답변을 작성해보세요.

0

그냥 웬간한 랭귀지에서 사용하는 컨벤션(관습, 관례)인데, 객체 안에서 사용되는 함수를 메서드라고 부릅니다.
이렇게 암묵적 약속이 되면 서로 얘기하기도 편하고 이해하기도 편하니까요...

그리고 자바, C, C++ 등은 변수 선언에 엄격한 이유로 변수 사용시 데이터 타입을 오해하여 발생하는 에러가 발생하지 않습니다.
반면 JS 등은 선언은 편하지만 사용할 때 변수의 타입을 의심해봐야 하는 불편한 점이 생깁니다.
하나가 편하면 하나는 불편해 지는 겁니다.

어쨌든 자바에서는 말씀하신 것처럼 사용할 수 있는 자료형은 없습니다. 
굳이 필요하다면 객체를 리턴하고 그 객체에 알맞게 데이터를 저장하고 꺼내는 로직을 구현하여 사용할 수는 있겠지만 자바에서 사용할 만한 방법은 아닙니다.

이승훈님의 프로필

이승훈

질문자

2022.03.01

답변 감사드립니다!