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();
	}
}

정적 메서드는 클래스와 관련된 동작을 수행하므로, 인스턴스 변수나 인스턴스 메서드에서 직접접근할 수 없다. 따라서, 정적 메서드 내에서는 정적 변수와 다른 정적 메서드만 사용할 수 있다.

 

 

 

인프런 - 예제로 공부하는 java 100 문제풀이.part.3