카테고리 없음
[JAVA] 212-17
codecodekode
2024. 10. 19. 10:25
이것은 클래스 내에서 객체 생성 없이 사용할 수 있는 메소드이다. 다음의 출력 결과를 보고 괄호안에 알맞은 답안을 작성하시오.
public class Test {
public static void main(String[] args){
system.out.print(Test.check(1));
}
( 괄호 ) String check (int num) {
return (num >= 0) ? "positive" : "negative";
}
}
[출력결과] positive
2. 문제에서 요구하는 부분
- check 메소드는 정적(static) 메소드로 선언되어야 합니다. 정적 메소드는 클래스 이름을 통해 호출할 수 있으며, 객체를 생성하지 않고도 사용할 수 있습니다.
3. 올바른 답안
- 괄호 안에 들어갈 답은 **static**입니다.
4. 출력 결과
- 주어진 입력 **1**이 check 메소드에 전달되면, num은 1로 설정되고, 조건 (num >= 0)이 참이므로 "positive"를 반환합니다.
1. 왜 check 메소드는 정적(static) 메소드로 선언되어야 할까?
- 객체 생성 없이 호출: 코드에서 Test.check(1)과 같이 클래스 이름을 통해 check 메소드를 호출하고 있습니다. 이렇게 메소드를 호출하기 위해서는 해당 메소드가 정적 메소드여야 합니다. 정적 메소드는 클래스의 인스턴스(객체)를 생성하지 않고도 사용할 수 있기 때문입니다.
- 정적 메소드는 클래스와 관련된 기능을 제공 : 일반적으로 정적 메소드는 인스턴스 변수나 메소드에 의존하지 않고, 클래스 수준에서 동작하는 메소드를 정의할 때 사용됩니다. check 메소드가 특정 인스턴스에 의존하지 않고, 단순히 전달받은 매개변수에 따라 결과를 계산하므로 정적 메소드로 적합합니다.