TIL
스태틱 메소드
오랜만에 자바를 다시 공부한다. static method 안에서 인스턴스 변수에 (static 이 아닌 변수에) 접근할 수 없다는 것을 다시 배웠다… 즉, this 에 접근 할 수 없음. 근데 클래스 자신은 가리킬 수 있음… 뭐여
class Singleton {
private Singleton() {
}
class Foo extends Singleton {
}
public static Singleton getInstance() {
return new Singleton(); // 가능!
return new Foo(); // 불가능!
}
}
https://wikidocs.net/228
자바의 상속
- private 멤버는 상속되지 않는다.
- final class 는 상속할 수 없다.
- public 혹은 protected 생성자만 있다면 상속할 수 없다. (단! inner class 는 상속 가능.)
Junit 다루기
- 모든 Junit 메소드는 void 여야 한다
- 테스트 메소드는 딱 테스트만 하고… 공유되는 로직은 다른 메소드로 빼야 하나 보다.
제네릭
- type argument 는 primitive 타입일 수 없다…
- 컴파일러 구현상의 문제라고…
- https://www.quora.com/Why-is-it-impossible-to-use-primitive-types-as-a-type-parameter-in-Java
- 그래서 int 대신에 Integer 를 쓴댄다. 맙소사 ㅋㅋㅋㅋㅋ
반복
- java 의 전통적인 for 반복문에서 첨자 변수 (혹은 이터레이터) (i) 는 for 문이 종료됨과 함께 유효범위가 끝난다. (파이썬은 남아 있음.)
for i in range(1, 4): print(i) # 1, 2, 3 출력! print(i) # 3 출력!
java 는 for 문 종료와 함께 i가 증발한다.
for (Iterator<Element> i = c.iterator(); i.hasNext();) { Element e = i.next(); } System.out.println(i); // 에러!
Comments