static 키워드와final 키워드

2057 단어

static


클래스에서 static로 성명된 구성원 변수는 정적 구성원 변수이고 클래스 변수라고도 부른다.클래스 변수의 생명 주기는 클래스와 같아서 전체 응용 프로그램이 실행되는 동안 유효합니다.다음과 같은 특징이 있습니다.
1. 이 클래스의 공용 변수는 클래스에 속하고 이 클래스의 모든 실례에 공유되며 클래스가 불러올 때 현식으로 초기화됩니다.
2. 이 클래스의 모든 대상에게 static 구성원 변수는 하나뿐입니다.클래스의 모든 객체에 공유
3. 일반적으로'클래스 이름. 클래스 속성/방법'으로 호출한다.(대상이 인용하거나 클래스 이름을 통해 정적 구성원에 접근할 수도 있다)
4.static 방법에서 비static 구성원에 직접 접근할 수 없습니다.
/**
 *
 * static 
 * */
public class User {
    int id;
    String name;
    String pwd;

    static String company = "learn java by youself";

    public User(int id, String name){
        this.id = id;
        this.name = name;
    }

    public static void printCompany() {
        System.out.println(company);
    }

    public void login(){
        printCompany();
        System.out.println("login: "+name);
    }

    public static void main(String[] args) {
        User u1 = new User(1, "zhangsan");
        u1.login();

        u1.company = "test";
        u1.login();
    }

}


정적 코드 블록


구조 방법은 대상의 초기화에 사용됩니다!정적 초기화 블록, 클래스의 초기화 작업에 사용!정적 초기화 블록에서 비static 구성원에 직접 접근할 수 없습니다.
주의 사항: 정적 초기화 블록 실행 순서
4
  • Object 클래스로 거슬러 올라가서 Object의 정적 초기화 블록을 먼저 실행한 다음에 하위 클래스의 정적 초기화 블록을 아래로 실행합니다. 우리의 클래스의 정적 초기화 블록이 도착할 때까지

  • 4
  • 구조 방법의 집행 순서는 위의 순서와 같다!!
  • package classandobject;
    
    //  
    public class User1 {
        int id;
        String name;
        static String company;
    
        static {
            System.out.println(" ");
            company = " ";
            show();
        }
    
        public static void show() {
            System.out.println("company: " + company);
        }
    
        public static void main(String[] args) {
            User1 u = new User1();
        }
    }
    
    

    final 키워드의 역할


    4
  • 수식 변수: 그에 의해 수식된 변수는 바꿀 수 없다.일단 초치를 부여하면 다시 부여될 수 없다.final int MAX_SPEED = 120;

  • 4
  • 수식 방법: 이 방법은 이불류로 다시 쓸 수 없다.근데 다시 태울 수 있어!final void study(){}

  • 4
  • 수식류: 수식류는 계승할 수 없다.예를 들면 Math, String 등입니다
  • 좋은 웹페이지 즐겨찾기