본문 바로가기

프로그래밍/Java

19.12.17) Java - Calendar 프로젝트2

목차

  • static
  • %d
  • String.equals(), '==' 차이

Static

  • 정확한 개념은 아니지만 하나의 클래스에서 모두 사용할 수 있게 선언하는 도구? 라 느껴진다. 아래 개념 수정
  • 정확한 개념) static 키워드가 있으면 클래스가 실행될 때 JVM이 가장 먼저 메모리에 저장한다. 그렇기 때문에 따로 객체 생성을 하지 않더라도 언제든지 static를 호출할 수 있다. -2019.12.25 수정-
  • static을 붙이면 따로 참조 안 해도 언제든 사용해!라는 느낌.

%d

  • %3d는 입력받는 정수를 세 자릿수로 만들어준다.
for(int i=1; i <= maxDays; i++) {
    System.out.printf("%3d", i);
    if( i % 7 == 0) {
        System.out.println();
    }
}

코드설명

월의 일수에 따라 캘린더를 출력하는 코드인데 나는 직접 하나씩 하드코딩을 생각했는데, 반복문을 이렇게 사용하니 감탄..!

==equals() 차이

문자열끼리 비교하려고 ==연산자 사용했는데 계속 false를 리턴했다.
원인을 파악해보니 ==는 두 대상의 주소 값을 비교한다고 한다. 그러니 문자열의 내용이 같더라도 주소 값이 다르면 false를 리턴한다.
반면 equals()는 두 대상의 내용을 비교한다.