본문 바로가기

Javascript 0과 "" 체크 var x = Number("0");var z = ""; if (x == "") {alert("값을 입력해 주세요");} if (x == 0) {alert("값을 입력해 주세요");} if (z == "") {alert("값을 입력해 주세요");} if (z == 0) {alert("값을 입력해 주세요");} 아무생각 없이 Number로 변환 해놓고 값 입력 체크를 저렇게 하고 있었다. 잘못 체크는 하고 있었지만 그래도 숫자가 아무거나 입력이 되면 체크를 통과 할 줄 알았는데 0이 입력되면 체크에 걸린다. 아마도 javascript에서 "", 0 은 동일하게 보는듯 하다. 결과는 모두 얼럿이 발생 한다. 추가로 자바스크립트 자료형에서 false로 반환되는 값은 "", null, undefined, 0, .. 더보기
객체의 가시성 수정자는 어떻게 작동하는가? - 가시성 수정자(visibility modifier) 는 클래스의 캡슐화된 상태와 인스턴스 행동을 조정하는 메서드의 접근을 제어하는 역할. - 가시성 수정자 범위 Least private 같은 클래스의 모든 인스턴스 접근가능 하위 클래스 접근 불가능 같은 패키지의 모든 클래스에서 접근 가능 protected 모든 하위 클래스에서 접근 가능 Most public 어디서든 접근가능 - pirvate의 일반적이 ㄴ오해는 private으로 선언한 변수는 해당 인스턴스에만 접근할 수 있다고 생각하는 것. - 실제로 같은 타입의 다른 모든 인스턴스가 private 멤버 변수에 접근할 수 있다. - 책 8-7 코드는 같은 타입이지만 다른 인스턴스에서 private 멤버 변수에 접근하는 두 가지 경우를 보여주는 예다. 더보기
final 키워드는 객체 참조에 어떤 영향을 미치는가? - 객체의 선언하는 final 키워드는 원시 타입에 선언하는 final 키워드와 동일한 역할을 한다. - 변수 정의에서 지정된 값처럼 일단 할당이 되고 나면 메모리 위치가 변경되지 않는다. - 객체 참조는 변경할 수 없어도 객체 내부의 값들은 개별 값들은 개별 값들이 final 이 아니라면 변경 가능하다. @Test public void finalReferenceChanges() { final int i = 42; //i= 43; 주석 해제시 컴파일 에러 final List list = new ArrayList(20); //list = new ArrayList(50); 주석 해제 시 컴파일 에러 assertEquals(0, list.size()); list.add("adding a new value in.. 더보기