>  기사  >  Java  >  정적 정적 코드 블록에 대한 Java 심층 학습

정적 정적 코드 블록에 대한 Java 심층 학습

王林
王林앞으로
2019-11-27 14:00:002599검색

정적 정적 코드 블록에 대한 Java 심층 학습

정적 코드 블록

static은 속성, 메서드, 내부 클래스 및 코드 블록을 수정할 수 있습니다.

정적 코드 블록은 클래스가 로드될 때 호출되고 한 번만 실행되며 다양한 코드 블록 및 생성자보다 우선합니다.

정적 코드가 한 곳에서 사용되면 모든 정적 코드 블록이 호출됩니다.

추천 관련 동영상 튜토리얼: java 무료 동영상 튜토리얼

예는 다음과 같습니다:

Parent class

public class Human {
    static {
        System.out.println("2.父类中的静态代码块");
    }
    public String name;
    public Human() {
        System.out.println("1.父类中的构造方法");
    }

    public static void test() {
        System.out.println("6.父类中的静态方法");
    }
}

Subclass

public class Man extends Human {
    static {
        System.out.println("4.子类中的静态代码块");
    }
    public Man() {
        System.out.println("3.子类中的构造方法");
    }
    public static void doo() {
        System.out.println("5.子类中的静态方法");
    }
}

Main class

public class Main {
    public static void main(String[] args) {
        // Human human = new Man(); 输出2 4 1 3
        
        //父类的类名调用父类的方法
		//Human.test();      
		//输出2 6   在调用静态代码时,怕需要上面的静态代码块的内容,所以将其链接到内存    与子类无关
        
        //子类的类名调用子类的方法
        //Man.doo();       
       // 输出2  4  5  在调用子类的静态方法时,父类的静态代码块执行,与父类的静态代码块有关
         
         //子类的类名调用父类的方法
         //Man.test();   
        // 输出  2 6  注意这个能调test不是因为继承,test声明在了human里,子类可以调用父类的方法,
        //但是父类不能调用子类的方法  所以在Main中不可直达Man中的的方法

        //子类调用了父类的方法,在父类的方法里又引用了子类里的静态方法
        //Man.test();    输出  2 6 4 5
    }
}

정적 코드 블록의 내용이 먼저 실행됩니다( 단 한 번만) 상위 클래스 생성자를 실행한 다음 하위 클래스 생성자를 실행합니다.

이 글은 java 입문 프로그램 칼럼에서 나온 글입니다. 누구나 함께 소통하고 배울 수 있습니다!

위 내용은 정적 정적 코드 블록에 대한 Java 심층 학습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제