>Java >Java시작하기 >Java 정적 메소드란 무엇입니까?

Java 정적 메소드란 무엇입니까?

青灯夜游
青灯夜游원래의
2021-07-26 11:49:1727970검색

자바에서 정적 메서드는 정적 메서드로 수정된 멤버 메서드를 말합니다. 정적 메서드는 자신이 속한 클래스의 인스턴스 없이 호출할 수 있으므로 정적 메서드에서는 this 키워드를 사용할 수 없으며, 해당 클래스의 인스턴스 변수 및 인스턴스 메서드에 직접 액세스할 수 없습니다. , 자신이 속한 클래스의 정적 변수 및 정적 메서드에 직접 액세스할 수 있습니다.

Java 정적 메소드란 무엇입니까?

이 튜토리얼의 운영 환경: windows7 시스템, java8 버전, DELL G3 컴퓨터.

정적 메서드(또는 클래스 메서드)는 정적으로 수정된 멤버 메서드를 말합니다.

정적 메서드와 인스턴스 메서드의 차이점:

  • 정적 메서드는 자신이 속한 클래스의 인스턴스 없이 호출할 수 있으므로 this 키워드는 정적 메서드에서 사용할 수 없으며 직접 액세스할 수도 없습니다. 인스턴스 변수 및 인스턴스 메서드가 속해 있지만 정적 변수 및 해당 클래스의 정적 메서드에 직접 액세스할 수 있습니다. 또한 this 키워드와 마찬가지로 super 키워드도 클래스의 특정 인스턴스와 관련되어 있으므로 정적 메서드에서는 super 키워드를 사용할 수 없습니다.

  • 인스턴스 메소드에서는 정적 변수, 정적 메소드, 인스턴스 변수 및 이들이 속한 클래스의 인스턴스 메소드에 직접 액세스할 수 있습니다.

예:

정적 변수가 포함된 클래스를 생성하고 여러 정적 메서드를 추가하여 정적 변수의 값을 수정한 후 main() 메서드에서 정적 메서드를 호출하여 결과를 출력합니다.

public class StaticMethod {
    public static int count = 1;    // 定义静态变量count
    public int method1() {    
        // 实例方法method1
        count++;    // 访问静态变量count并赋值
        System.out.println("在静态方法 method1()中的 count="+count);    // 打印count
        return count;
    }
    public static int method2() {    
        // 静态方法method2
        count += count;    // 访问静态变量count并赋值
        System.out.println("在静态方法 method2()中的 count="+count);    // 打印count
        return count;
    }
    public static void PrintCount() {    
        // 静态方法PrintCount
        count += 2;
        System.out.println("在静态方法 PrintCount()中的 count="+count);    // 打印count
    }
    public static void main(String[] args) {
        StaticMethod sft = new StaticMethod();
        // 通过实例对象调用实例方法
        System.out.println("method1() 方法返回值 intro1="+sft.method1());
        // 直接调用静态方法
        System.out.println("method2() 方法返回值 intro1="+method2());
        // 通过类名调用静态方法,打印 count
        StaticMethod.PrintCount();
    }
}

이 프로그램을 실행한 후의 결과는 다음과 같습니다.

在静态方法 method1()中的 count=2
method1() 方法返回值 intro1=2
在静态方法 method2()中的 count=4
method2() 方法返回值 intro1=4
在静态方法 PrintCount()中的 count=6

이 프로그램에서는 정적 변수 count가 인스턴스 간 공유 데이터로 사용되므로 count를 다른 메소드로 호출하면 값이 달라집니다. 이 프로그램에서 볼 수 있듯이 정적 메서드인 method1() 및 PrintCount()에서는 비정적 메서드인 method1()을 호출할 수 없지만, 정적 메서드인 method2() 및 PrintCount()는 method1()에서 호출할 수 있습니다. 방법.

비정적 메서드에 액세스할 때는 인스턴스 개체를 통해 액세스해야 합니다. 정적 메서드에 액세스할 때는 클래스 이름을 통해 또는 인스턴스화된 개체를 통해 직접 액세스할 수 있습니다.

추천 관련 비디오 튜토리얼: Java 비디오 튜토리얼

위 내용은 Java 정적 메소드란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.