Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java의 정적 메소드와 비정적 메소드의 차이점

<시간/>

Java 메소드는 작업을 수행하기 위해 함께 그룹화되는 명령문의 모음입니다. 예를 들어 System.out.println() 메서드를 호출하면 시스템은 콘솔에 메시지를 표시하기 위해 실제로 여러 명령문을 실행합니다.

정적 방법

정적 메서드는 클래스 메서드라고도 하며 클래스의 개체 전체에서 공통적으로 사용되며 이 메서드는 클래스 이름을 사용하여 액세스할 수도 있습니다.

비정적 방법

정적이 아닌 클래스의 모든 메서드를 비정적 메서드 또는 인스턴스 메서드라고 합니다.

다음은 정적 메서드와 비 정적 메서드의 중요한 차이점입니다.

Sr. 아니요. 정적 비정적
1 액세스 정적 메서드는 정적 멤버에만 액세스할 수 있으며 비정적 멤버에는 액세스할 수 없습니다. 비정적 방법은 정적 및 비정적 멤버 모두에 액세스할 수 있습니다.
2 제본 정적 방법은 시간 바인딩 또는 초기 바인딩을 사용합니다. 비정적 방식은 런타임 바인딩 또는 동적 바인딩을 사용합니다.
3 재정의 정적 메서드는 컴파일 타임 바인딩으로 재정의할 수 없습니다. 비정적 메서드는 동적 바인딩으로 재정의될 수 있습니다.
4 메모리 할당 정적 방법은 공간을 덜 차지하며 메모리 할당은 한 번 발생합니다. 비정적 방법은 더 많은 공간을 차지할 수 있습니다. 메모리 할당은 메서드가 호출될 때 발생하고 메서드가 완전히 실행되면 메모리가 할당 해제됩니다.
5 키워드 정적 메소드는 static 키워드를 사용하여 선언됩니다. 특수 키워드가 있는 일반 메소드는 필요하지 않습니다.

정적 방법과 비정적 방법의 예

JavaTester.java

public class JavaTester {
   public static void main(String args[]) {
      Tiger.roar();
      Tiger tiger = new Tiger();
      tiger.eat();
   }
}
class Tiger {
   public void eat(){
      System.out.println("Tiger eats");
   }
   public static void roar(){
      System.out.println("Tiger roars");
   }
}

출력

Tiger roars
Tiger eats