본문 바로가기
[Developer]/Java

조금은 헷갈릴 수 있는 static과 final에 관한 진실

by 반가운 해피빈이 2009. 11. 12.

Yes or No로.. 답은 긁으면 나오게.ㅋ


1. Math 클래스를 쓸 때 가장 먼저 할 일은 인스턴스를 만드는 것이다.
No : Math클래스는 사용하는 메소드가 static으로 선언되어 있어서 바로 사용해야 한다.

2. constructor에도 static 키워드를 붙일 수 있다.
No : 생성자에는 불가능하다.(어차피 의미가 없다.)

3. static 메소드는 그 객체의 인스턴스 변수를 사용할 수 없다.
Yes

4. static 메소드를 호출할 때는 레퍼런스 변수를 사용하는 것이 좋다.
No : reference를 사용할 경우 어느 시점에서는 어떤 것을 가르켜야 할지 혼돈이 생길 수 있다.

5. static 변수를 써서 클래스의 인스턴스의 갯수를 셀 수 있다.
Yes : 호출될 때마다 카운트가 되도록 생성자에 정적변수를 박아두면 되니까.ㅎ

6. static 변수가 초기화되기 전에 생성자가 호출 된다.
No : 정적변수와 메소드가 우선이다.

7. MAX_SIZE는 static final 변수의 이름으로 쓰기에 적당한 이름이다.
Yes

8. static 초기화 블록은 클래스의 생성자가 실행되기 전에 실행이 된다.
Yes

9. 클래스를 final로 지정하면 그 클래스에 있는 모든 메소드도 final로 지정해야만 한다.
No : 클래스가 final이면 그 안에 있는 variable이나 method는 자동으로 final이 된다.

10. final 메소드는 클래스가 확장되었을 때만 override할 수 있다.
No : final은 확장 불가!

11. boolean 원시 형식에 대해서는 wrapper class가 없다.
No : 있다~(전부 있다~~)

12. 원시 형식을 객체인 것처럼 다룰 때에는 wrapper를 사용하면 된다.
Yes : 각 원시 형식에 대칭되는 객체들이 존재하니까 활용 가능!(예를들면 Integer i = new Integer(10);)

13. parseXxx 메소드에서는 항상 String을 리턴한다.
No : 인자로는 String을 받겠지만, return은 Xxx가 되겠지~

14. formatting 클래스(입출력과 분리된 클래스)는 java.format 패키지에 들어있다.
No : String에 들어있다구~ㅎ


문제출처는 Headfirst Java에서..
반응형

태그

,

댓글0