>  기사  >  Java  >  Java의 정적 객체와 메소드는 무엇입니까?

Java의 정적 객체와 메소드는 무엇입니까?

王林
王林원래의
2019-11-20 11:34:093297검색

Java의 정적 객체와 메소드는 무엇입니까?

정적 변수란 무엇인가요?

Java에서 static으로 수정되는 멤버를 정적 멤버 또는 클래스 멤버라고 합니다. 이는 객체가 아닌 전체 클래스에 속합니다. 즉, 클래스의 모든 객체가 공유합니다. 정적 멤버는 클래스 이름을 사용하여 직접 액세스하거나 개체 이름을 사용하여 액세스할 수 있습니다.

정적을 사용하여 변수, 메소드 및 코드 블록을 수정하세요.

public class Test1 {
    // static修饰的变量为静态变量,所有类的对象共享hobby
    static String hobby = "Tedu";
    
    public static void main(String[] args) {
        // 静态变量可以直接使用类名来访问,无需创建对象
        System.out.println("通过类名访问hobby:" + Test1.hobby);
        // 创建类的对象
        Test1 t1 = new Test1();
        // 使用对象名访问静态变量
        System.out.println("使用对象名访hobby:" + t1.hobby);
        // 使用对象名的形式修改静态变量的值
        t1.hobby = "cjj";
        // 再次使用类名访问静态白变量,值已经被修改
        System.out.println("通过类名访问hobby:" + Test1.hobby);
    }
}

실행 결과:

通过类名访问hobby:Tedu
使用对象名访hobby:Tedu
通过类名访问hobby:cjj

참고: 정적 멤버는 클래스 전체에 속합니다. 시스템이 처음으로 클래스를 사용할 때 메모리 공간을 할당하고 클래스가 언로드될 때까지 리소스를 재활용하지 않습니다.

정적 메서드란 무엇입니까

정적 변수와 마찬가지로 정적 메서드 또는 클래스 메서드라고 하는 수정된 정적 메서드를 사용할 수도 있습니다. 사실, 우리가 이전에 작성해왔던 주요 메소드는 정적 메소드입니다.

public class Test01 {
    //使用static关键字声明静态方法
    public static void print() {
        System.out.println("欢迎你:Cjj!");
    }
    public static void main(String[] args) {
        //直接使用类名调用静态方法
        Test01.print();
        //也可以通过对象名调用,当然更推荐使用类名调用
        Test01 t1 = new Test01();
        t1.print();
    }
}

실행 결과:

欢迎你:Cjj!
欢迎你:Cjj!

참고:

1. 정적 메서드는 동일한 클래스의 정적 멤버를 직접 호출할 수 있지만 정적이 아닌 멤버는 직접 호출할 수 없습니다. 예:

Java의 정적 객체와 메소드는 무엇입니까?

정적 메서드에서 비정적 변수를 호출하려는 경우 클래스의 개체를 만든 다음 개체를 통해 비정적 변수에 액세스할 수 있습니다.

Java의 정적 객체와 메소드는 무엇입니까?

2. 일반 멤버 메서드에서는 다음과 같이 비정적 변수와 동일한 유형의 정적 변수에 직접 액세스할 수 있습니다.

Java의 정적 객체와 메소드는 무엇입니까?

3 비정적 메서드는 직접 호출할 수 없습니다. 정적 메서드이며, 비정적 메서드에 액세스하려면 개체를 통해 전달되어야 합니다. 예:

public class Test01 {
    String name = "Cjj"; //静态成员变量
    static String hobby = "study"; //非静态成员变量
    
    //普通成员方法
    public void print1() {
        System.out.println("普通成员方法~~~"); 
    }
    
    //静态成员方法
    public static void print2() {
        System.out.println("静态成员方法~~~");
    }
    
    public static void main(String[] args) {
        //普通成员方法必须通过对象来调用
        Test01 t1 = new Test01();
        t1.print1();
        //可以直接调用静态方法
        print2();
    }
}

추천 튜토리얼: Java 입문 튜토리얼

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

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