Java/JAVA 100 문제 풀이
자바 part.3 문제풀이 - 메서드, 정의, 메서드구현
진이최고다
2023. 6. 26. 21:38
메서드 구현
// 아래의 메서드 구현코드에서 틀린곳을 찾아 올바르게 수정하시오.
// 이 문제는 자바의 메서드 구현시 기본적인 주의점에 대해서 아는지를 묻는 문제이다.
public class method_ExamStatic1 {
public void hellWorld() {
System.out.println("Hello World");
}
public static void main(String[] args) {
// [1] : 메서드 호출
hellWorld();
}
}
풀이 1
`helloWorld()` 메서드는 인스턴스 메서드이므로, 해당 메서드를 호출하기 위해서는 클래스의 인스턴스를 생성해야한다. 따라서, 'main' 메서드에서는 `method_ExamStatic1`클래스의 인스턴스를 생성한 후에 해당 인스터스를 사용하여, `helloWorld()` 메서드를 호출해야 한다.
수정된 코드
public class method_ExamStatic1 {
public void helloWorld() {
System.out.println("Hello World");
}
public static void main(String[] args) {
// [1] : 메서드 호출
method_ExamStatic1 obj = new method_ExamStatic1();
obj.helloWorld();
}
}
풀이 2
정적(static) 메서드는 클래스 수준에서 호출되는 메서드로서, 클래스의 인스턴스를 생성하지않고도 직접호출할 수 있다. 주어진 코드에서 `main` 메서드에서 직접 호출하려면 `helloWorld()` 메서드를 정적으로 선언해야 한다.
수정된 코드
public class method_ExamStatic1 {
public static void helloWorld() {
System.out.println("Hello World");
}
public static void main(String[] args) {
// [1] : 메서드 호출
helloWorld();
}
}
정적 메서드는 클래스와 관련된 동작을 수행하므로, 인스턴스 변수나 인스턴스 메서드에서 직접접근할 수 없다. 따라서, 정적 메서드 내에서는 정적 변수와 다른 정적 메서드만 사용할 수 있다.