자바 의 static 키워드 상세 설명

개요
static 키 워드 는 구성원 변수 와 구성원 방법 을 수식 하 는 데 사 용 됩 니 다. 수 정 된 구성원 은 특정한 대상 에 만 속 하 는 것 이 아 닙 니 다.
2 가지 변수: static 에 의 해 수 식 된 구성원 변수
클래스 의 모든 대상 은 같은 클래스 변 수 를 공유 하고 클래스 를 통 해 이 대상 을 조작 할 수 있 으 며, 이 클래스 의 모든 대상 도 이 클래스 변 수 를 조작 할 수 있다.
형식:
    static         ;

클래스 이름 을 사용 하여 클래스 변 수 를 직접 조작 하 는 것 을 권장 합 니 다.
사례 (학 번 배정): 새 학기 에 개학 하고 학생 들 이 도착 신 고 를 하려 면 새로 온 학생 들 에 게 학 번 (sid) 을 배정 해 야 합 니 다.학 번 이 유일 하고 연속 적 이 며 반 의 인원 과 일치 하여 다음 새 학우 에 게 배정 해 야 할 학 번 이 얼마 인지 알 수 있 도록 한다.따라서 우 리 는 하나의 변수 가 필요 하 다. 단독 학생 대상 과 상 관 없 이 전체 반 학생 의 수량 과 관계 가 있다.
public class Student {
    private String name;
    private int age;
    //    id
    private int sid;
    //    ,      ,    
    public static int numberOfStudent = 0;

    public Student(String name, int age){
        this.name = name;
        this.age = age;
        //   numberOfStudent       
        this.sid = ++numberOfStudent;
    }

    //      
    public void show(){
        System.out.println("Student : name=" + name + ",age=" + age + ", sid=" + sid);
    }
}
public class StuDemo {
    public static void main(String[] args) {

        Student s1 = new Student("  ",23);
        Student.numberOfStudent = 38;
        Student s2 = new Student("  ",24);
        Student s3 = new Student("  ",25);
        Student s4 = new Student("  ",26);


        s1.show();//Student : name=  ,age=23, sid=1
        s2.show();//Student : name=  ,age=24, sid=2
        s3.show();//Student : name=  ,age=25, sid=39
        s4.show();//Student : name=  ,age=26, sid=40
    }
}

3 가지 방법: static 에 의 해 수 식 된 멤버 방법
클래스 의 모든 대상 이 같은 클래스 방법 을 공유 하고 클래스 를 통 해 이 방법 을 사용 할 수 있 으 며, 이 클래스 의 모든 대상 도 이 방법 을 사용 할 수 있다.
형식:
    static          (    ){
		//    
}

클래스 이름 을 통 해 클래스 방법 을 직접 사용 하 는 것 을 권장 합 니 다.
사례: 다음 예 를 들 어 Student 클래스 에서 정적 방법 을 정의 합 니 다.
//       
public static void showNum() {
    System.out.println("num:" + numberOfStudent);
}
public class StuDemo {
    public static void main(String[] args) {

        Student s1 = new Student("  ",23);
        Student s2 = new Student("  ",24);
        Student.numberOfStudent = 38;
        Student s39 = new Student("  ",25);
        Student s40 = new Student("  ",26);

        Student.showNum();//num:40
        s1.numberOfStudent = 50;
        s1.showNum();//num:50
    }
}

클래스 방법 주의사항:
4. 567917. 클래스 방법 은 클래스 변수 와 클래스 방법 만 직접 방문 할 수 있 고 일반 구성원 변수 나 일반 구성원 방법 에 직접 방문 할 수 없습니다
4. 567917. 일반 구성원 방법 은 클래스 변수 와 클래스 방법 을 직접 방문 할 수 있다
4. 567917. 클래스 방법 중 this 키 워드 를 사용 할 수 없습니다
4 정적 코드 블록: static {}
역할: 클래스 변 수 를 초기 화 합 니 다.
위치: 클래스 방법 외
형식: static {}
클래스 의 로드 에 따라 실행 되 고 한 번 만 실행 되 며 main 방법 과 구조 방법 보다 우선 합 니 다.
public class Game {
    public static int number;
    public static ArrayList list;
    
    static {
        number = 2;
        list = new ArrayList<>();
        list.add("  ");
        list.add("  ");
    }
}

총화
static 키 워드 는 변수, 방법, 코드 블록 을 수식 할 수 있 습 니 다. 주요 목적 은 대상 을 만 들 지 않 고 호출 하 는 것 입 니 다.

좋은 웹페이지 즐겨찾기