인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

자바공부중님의 프로필 이미지

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

메소드

BlackBox 파일 내에서 메소드 정의

작성

·

52

0

 BlackBox 내에서 메소드 정의 할때

public static 생략하고 void 나 int만 쓴 이유나 차이점이 있나요?

 

답변 1

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?

public 은 접근 제어자 중 하나로 각 접근 제어자의 의미는 다음과 같습니다. 아무것도 붙이지 않은 경우 default 로 해당 메소드는 같은 패키지 내에서만 접근 가능합니다.

private : 해당 클래스 내에서만 접근 가능
public : 모든 클래스에서 접근 가능
default : (아무것도 적지 않았을 때) 같은 패키지 내에서만 접근 가능
protected : 같은 패키지 내에서, 다른 패키지인 경우 자식 클래스에서 접근 가능

static 은 객체를 생성하지 않고도 사용(호출)할 수 있도록 하기 위해 사용합니다. (= 클래스 메소드)

static void callServiceCenter() {
    System.out.println("서비스 센터(1588-oooo) 로 연결합니다.");
}

static 이 붙지 않으면 반드시 객체를 생성한 후에만 해당 메소드를 사용할 수 있지요.


void 와 int 는 반환형을 의미하며 메소드 내부의 동작을 수행하고 나서 어떤 형태의 데이터를 반환할지를 결정짓습니다. int 는 정수값을 반환하게 되며, String 은 문자열을 반환하게 됩니다.

// 정수 값 반환
int getPrice() {
    return price;
}

// 문자열 반환
String getResolution() {
    if (resolution == null || resolution.isEmpty()) {
        return "판매자에게 문의하세요.";
    }
    return resolution;
}

단, void 라고 적게 되면 해당 메소드는 아무 값을 반환하지 않겠다는 의미가 됩니다.

void setModelName(String modelName) {
    this.modelName = modelName;
}

그래서 void 라고 작성하게 되면 반환값이 없는 메소드, 그 외에는 입력한 반환형에 해당하는 데이터를 반환하는 메소드가 됩니다. 데이터를 반환하는 메소드는 이 메소드를 호출하는 쪽에서 반환값을 받아서 사용할 수 있게 되지요 😊

감사합니다.