[자바] 상수

Gammi·2022년 10월 31일
0

JAVA

목록 보기
22/35
post-thumbnail

📓 상수(Constant)


  • 변하지 않는 데이터

    = 변하지 않는 데이터를 저장한 변하지 않는 변수

  • 보통 데이터 내에서 상수 선언 시 public static final 형태로 선언

    • public : 누구나 접근 가능
    • static : 클래스명만으로도 접근 가능
    • final : 데이터 변경 불가 = 상수

🔗 참고1

특정 클래스 내에서 사용되는 데이터를 상수로 제공하면 문자열의 오타나 정수형 파라미터를 사용하는 경우 등 다양한 어려움에서 오는 문제점 해결 가능!

-> 주로 상수는 public static final 키워드를 사용하기 때문에 상수의 이름을 명확하게 지정함으로써 복잡한 데이터도 이름만으로 단순히 사용이 가능하게 됨!


🔗 참고2

상수 활용의 예)

  • Calendar 클래스를 사용하여 날짜 정보를 관리할 때 Calendar 클래스의 get() 메서드를 통해 연도, 월, 일 등의 정보를 가져와야 하는데 항목을 지정할 때 Calendar 클래스에서 제공하는 상수를 통해 지정 가능
Calendar cal = Calender.getInstance();
System.out.println("올해는 몇 년도? " + cal.get(Calender.YEAR));

public static void main(String[] args) {
  CarInfo c = new CarInfo();
  
  c.setCompany(CarInfo.COMPANY_HYUNDAI);
  c.setCarModelName(CarInfo.CAR_MODEL_NAME_SONATA);
  c.setColor(CarInfo.COLOR_BLACK);
  // Setter 호출해서 값을 저장할 때
  // 직접 입력하는 것이 아니라 클래스명.상수명으로
  // 자동 완성하기 때문에 오류 발생 확률 줄어듦
  
  if(c.getCompany() == CarInfo.COMPANY_HYUNDAI) {
    System.out.println("현대자동차입니다");
  } else {
    System.out.println("현대자동차가 아닙니다");
  }
  // [현대자동차입니다] 출력됨
  // 비교할 때도 직접 입력하는 게 아니라
  // 상수명 바로 불러와서 비교하기 때문에
  // 오류 발생 확률이 줄어든다

class CarInfo {
  private String company;
  private Strng carModelName;
  private int color;
  
  // 제조사 정보를 저장하는 상수 선언
  public static final String COMPANY_HYUNDAI = "HYUNDAI";
  public static final String COMPANY_KIA = "KIA";
  
  // 모델 이름을 저장하는 상수 선언
  public static final String CAR_MODEL_NAME_SONATA = "SONATA";
  public static final String CAR_MODEL_NAME_K5 = "K5";
  
  // 색상 정보를 저장하는 상수 선언
  public static final int COLOR_BLACK = 0x000001;
  public static final int COLOR_WHITE = 0xFFFFCC;
  
  public String getCompany() {
    return company;
  }
  public String setCompany(String company) {
    this.company = company;
  }
  // private으로 멤버변수를 선언했기 때문에
  // Getter와 Setter 필요함!
  
  public String getCarModelName() {
    return carModelName;
  }
  public String setCarModelName(String carModelName) {
    this.carModelName = carModelName;
  }
  
  public int getColor() {
    return color;
  }
  public int setColor(int color) {
    this.color = color;
  }
}
profile
개발자가 되었어요⭐️

0개의 댓글