static vs final vs static final

개발새발·2023년 5월 7일
0

spring

목록 보기
24/26
post-custom-banner

개발을 하다가 문득 static, final, static final의 사용방법을 애매하게 알고 있다는 생각에 이번 글을 작성하게 되었다.

🌏 static

  • 클래스의 모든 인스턴스가 액세스할 수 있는 전역변수
  • 객체를 생성하지 않고 사용할 수 있는 필드와 메서드
  • 상수가 아니기에 언제나 변경이 가능함.
public class Calculator {
  String mutableStr;
  static int num = 3;

  void setMutableStr(String str){
      this.mutableStr = str;
  }

  String getMutableStr(){
      return this.mutableStr;
  }

  static int plus(int x, int y){
      return x+y;
  }
}

int initNum = Calculator.num; // 가능
int res = Calculator.plus(1,2); // 가능
String str = Calculator.getMutableStr(); // 불가능

🏁 final

  • 상수
  • 선언과 초기화를 동시에 함
  • 객체를 선언하여 해당 인스턴스로 접근해야함
  • 인스턴스 변수라면 생성자에서 초기화 가능
  • 각 개별 인스턴스는 고유한 값을 가질 수 있음
public class Shop{

  final int closeTime = 21; // 고정
  final int openTime; 

  public Shop(int openTime){
    this.openTime = openTime; // shop인스턴스마다 다르게 설정이 가능
  }
}

🏀 static final

  • 모든 인스턴스에 대해 동일한 값을 설정할 때 사용
  • 절대 변경할 수 없음
  • JAVA에서 클래스 변수의 상수값을 만드는 방법
static final double PI = 3.141592;


cc. https://hororolol.tistory.com/553 , https://gobae.tistory.com/3 , https://devstep.tistory.com/81

profile
발새발개
post-custom-banner

0개의 댓글