Question 9 : 클래스 관계

Which Man class properly represents the relationship “Man has a best friend who is a Dog”?

A. class Man extends Dog { }
B. class Man implements Dog { }
C. class Man { private BestFriend dog; }
D. class Man { private Dog bestFriend; }
E. class Man { private Dog<bestFriend> }
F. class Man { private BestFriend<dog> }

[Head First Java - p.258]
# 인터페이스의 정의와 구현
     public interface Pet {...} // 정의
     public class Dog extends Canine implements Pet {...} // 구현

Answer: D
반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q011. 문법 오류  (0) 2008.04.01
Q010. HashSet  (0) 2008.03.30
Q008. 접근제어자  (0) 2008.03.29
Q007. 접근제어자  (0) 2008.03.25
Q006. Format 클래스  (0) 2008.03.24
Question 8 : 접근제어자

Assume that country is set for each class.

Given:
10. public class Money {
11.      private String country, name;
12.      public String getCountry() { return country; }
13. }

and:
24. class Yen extends Money {
25.      public String getCountry() { return super.country; }
26. }
27.
28. class Euro extends Money {
29.      public String getCountry(String timeZone) {
30.           return super.getCountry();
31.      }
32. }

Which two are correct? (Choose two.)

A. Yen returns correct values.
B. Euro returns correct values.
C. An exception is thrown at runtime.
D. Yen and Euro both return correct values.
E. Compilation fails because of an error at line 25.
F. Compilation fails because of an error at line 30.


[Head First Java - p.262]
# 어떤 구상 클래스를 만들어서 메소드를 오버라이드해야 하는데 그 메소드의 상위클래스 버전에 있는 행동이 필요하다면, 즉 오버라이드 할 때 기존의 메소드를 완전히 버리지 않고 상위클래스의 행동에 좀더 구체적인 기능을 추가하기만 할 때는 super를 사용하면 된다.

[Head First Java - p.701]
# public - 어디에 있는 어떤 코드에서도 접근할 수 있다.
# protected - 같은 패키지에 있는 코드에서 접근할 수 있고 다른 패키지에 속하는 하위클래스에서도 상속할 수 있다.
# default - 같은 패키지에서만 접근할 수 있다.
# private - 같은 클래스에 있는 코드에서만 접근할 수 있다.

Answer: BE
반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q010. HashSet  (0) 2008.03.30
Q009. 클래스 관계  (0) 2008.03.30
Q007. 접근제어자  (0) 2008.03.25
Q006. Format 클래스  (0) 2008.03.24
Q005. 클래스의 형변환  (0) 2008.03.23
Question 7 : 접근제어자

Given:
20. public class CreditCard {
21.
22.      private String cardlD;
23.      private Integer limit;
24.      public String ownerName;
25.
26.      public void setCardlnformation(String cardlD,
27.                                                 String ownerName,
28.                                                 Integer limit) {
29.           this.cardlD = cardlD;
30.           this.ownerName = ownerName;
31.           this.limit = limit;
32.      }
33. }

Which is true?

A. The class is fully encapsulated.
B. The code demonstrates polymorphism.
C. The ownerName variable breaks encapsulation.
D. The cardlD and limit variables break polymorphism.
E. The setCardlnformation method breaks encapsulation.


[Head First Java - p.114]
# public, private이라는 접근 지시자를 이용하여 접근성을 제어한다.
# 캡슐화(encapsulation)를 하려면 인스턴스 변수를 private로 지정하고 접근 제어를 위해 public으로 지정된 게터와 세터를 만들면 됩니다.

Answer: C
반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q009. 클래스 관계  (0) 2008.03.30
Q008. 접근제어자  (0) 2008.03.29
Q006. Format 클래스  (0) 2008.03.24
Q005. 클래스의 형변환  (0) 2008.03.23
Q004. 예외처리  (0) 2008.03.23

Question 6 : Format 클래스

Given:
• d is a valid, non-null Date object
• df is a valid, non-null DateFormat object set to the current locale

What outputs the current locales country name and the appropriate version of d’s date?

A. Locale loc = Locale.getLocale();
    System.out.println(loc.getDisplayCountry() + “ “ + df.format(d));
B. Locale loc = Locale.getDefault();
    System.out.println(loc.getDisplayCountry() + “ “ + df.format(d));
C. Locale bc = Locale.getLocale();
    System.out.println(loc.getDisplayCountry() + “ “ + df.setDateFormat(d));
D. Locale loc = Locale.getDefault();
    System.out.println(loc.getDispbayCountry() + “ “ + df.setDateFormat(d));


[Head First Java - p.335]

# 날짜와 시간을 전부 표시할 때
    : String.format("%tc", new Date());
    > Sun Nov 28 14:52:41 MST 2004
# 시간만 표시할 때
    : String.format("%tr", new Date());
    > 03:01:47 PM
# 요일, 월, 일
    : Date today = new Date();
    : String.format("%tA, %tB %td", today, today, today);
    > Sunday, November 28
# '<' 인자 사용하기 (이전 인자를 사용하기)
    : Date today = new Date();
    : String.format("%tA, %<tB %<td", today);
    > Sunday, November 28
# 'java.util.Date'는 구식. 'java.util.Calendar'를 사용하자.
    : Calendar cal = Calendar.getInstance();


[Internet]

Java API (java.util.Locale)
http://pllab.kw.ac.kr/j2seAPI/api/java/util/Locale.html

static Locale  getDefault ()
    - Java 가상 머신의 이 인스턴스에 대해서, 디폴트 로케일의 현재의 값을 취득합니다.
String  getDisplayCountry ()
    - 유저에게로의 표시에 적절한, 로케일의 나라의 이름을 돌려줍니다.
String  getDisplayCountry (Locale  inLocale)
    - 유저에게로의 표시에 적절한, 로케일의 나라의 이름을 돌려줍니다.


Answer: B

반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q008. 접근제어자  (0) 2008.03.29
Q007. 접근제어자  (0) 2008.03.25
Q005. 클래스의 형변환  (0) 2008.03.23
Q004. 예외처리  (0) 2008.03.23
Q003. 실행문  (0) 2008.03.23

Question 5 : 클래스의 형변환

Given:
10. interface Foo {}
11. class Alpha implements Foo { }
12. class Beta extends Alpha {}
13. class Delta extends Beta {
14.      public static void main( String[] args) {
15.           Beta x = new Beta();
16.           // insert code here
17.      }
18. }

Which code, inserted at line 16, will cause a java.lang.ClassCastException?

A. Alpha a = x;
B. Foo f= (Delta)x;
C. Foo f= (Alpha)x;
D. Beta b = (Beta)(Alpha)x;

[Head First Java - p.263]
# 클래스를 만들 때 인스턴스를 만들 수 없게 하고 싶다면(즉, 그 클래스 유형의 객체를 만들 수 없게 하고 싶다면) abstract 키워드를 사용하면 됩니다.
# 추상 클래스에는 추상 메소드와 추상 메소드가 아닌 메소드를 모두 집어넣을 수 있습니다.
# 클래스에 추상 메소드가 하나라도 있으면 그 클래스는 추상 클래스로 지정해야 합니다.
# 추상 메소드에는 본체가 없으며 선언 부분은 세미콜론으로 끝납니다(중괄호를 쓰지 않습니다).
# 상속 트리에서 처음으로 나오는 구상 클래스에서는 반드시 모든 추상 메소드를 구현해야 합니다.
# 자바에 들어있는 모든 클래스는 직접 또는 간접적으로 Object(java.lang.Object)의 하위클래스입니다.
# 메소드를 선언할 때 인자, 리턴 유형을 Object로 지정해도 됩니다.
# 어떤 객체에 대해서 메소드를 호출하려면 그 객체를 참조하는 레퍼런스 변수 유형의 클래스(또는 인터페이스)에 그 메소드가 있어야만 합니다. 객체의 실제 유형하고는 무관합니다. 따라서 Object 유형의 레퍼런스 변수로는 Object 클래스에 정의되어 있는 메소드만 호출할 수 있습니다. (레퍼런스가 참조하는 객체의 유형과는 무관합니다.)
# Object 유형의 레퍼런스 변수는 캐스팅을 하지 않고는 다른 유형의 레페런스에 대입할 수 없습니다. 한 유형의 레퍼런스 변수를 하위 유형의 레퍼런스 변수에 대입하고 싶다면 캐스팅을 이용할 수 있습니다. 하지만 힙에 들어있는 객체가 캐스팅 호환 가능한 유형이 아니라면 실행 중에 캐스팅에 실패할 수도 있습니다.

[Internet]
http://blog.naver.com/sjmpropose?Redirect=Log&logNo=44466628
객체 형변환, 상속 관계에서의 생성자

http://raoo.tistory.com/entry/추상클래스와-클래스-형변환에-대한-간단한-예제
추상클래스와 클래스 형변환에 대한 예제

Answer: B
반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q007. 접근제어자  (0) 2008.03.25
Q006. Format 클래스  (0) 2008.03.24
Q004. 예외처리  (0) 2008.03.23
Q003. 실행문  (0) 2008.03.23
Q002. 실행문  (0) 2008.03.23

Question 4 : 예외처리

Given:
31. // some code here
32. try {
33.      // some code here
34. } catch (SomeException se) {
35.      // some code here
36. } finally {
37.      // some code here
38. }

Under which three circumstances will the code on line 37 be executed? (Choose three.)

A. The instance gets garbage collected.
B. The code on line 33 throws an exception.
C. The code on line 35 throws an exception.
D. The code on line 31 throws an exception.
E. The code on line 33 executes successfully.

[Head First Java - p.355]
# try/catch 블록은 호출할 메소드에서 예외와 관련된 일이 일어날 수 있다는 것을 알고 있음을, 그리고 그런 예외를 처리할 준비가 되어있음을 컴파일러에게 알려주는 역할을 합니다. 컴파일러에서는 프로그래머가 그 예외를 처리하는 구체적인 방법에 대해서는 신경쓰지 않습니다. 그냥 그런 예외를 처리할 것이라는 것만 밝혀주면 불평을 늘어놓지 않습니다.
# try {
      some code...
   } catch (xxException ex) {
      some code...
   } fially {
      some code...
   }
# try 블록이 실패하면, 즉 예외가 발생하면 흐름 제어가 바로 catch 블록으로 넘어갑니다. catch 블록이 종료되면 finally 블록이 실행된다. finally 블록이 종료되면 그 메소드의 나머지 부분이 실행됩니다.
# try 블록이 성공하면, 즉 예외가 발생하지 않으면 catch 블록은 건너뛰고 finally 블록으로 넘어갑니다. finally 블록이 종료되면 그 메소드의 나머지 부분이 실행됩니다.


Answer: BCE
반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q006. Format 클래스  (0) 2008.03.24
Q005. 클래스의 형변환  (0) 2008.03.23
Q003. 실행문  (0) 2008.03.23
Q002. 실행문  (0) 2008.03.23
Q001. 인터페이스의 상수선언  (0) 2008.03.23

Question 3 : 실행문

Given:
11. public class Test {
12.      public static void main(String [] args) {
13.           int x =5;
14.           boolean b1 = true;
15.           boolean b2 = false;
16.
17.           if((x==4) && !b2)
18.                System.out.print(”1 “);
19.           System.out.print(”2 “);
20.           if ((b2 = true) && b1)
21.                System.out.print(”3 “);
22.      }
23. }

What is the result?

A. 2
B. 3
C. 1 2
D. 2 3
E. 1 2 3
F. Compilation fails.
G. Au exceptional is thrown at runtime.

[Head First Java - p.44]
#Java에서는 부울과 정수가 호환되지 않는다. 조건 테스트 결과는 반드시 부울이어야 한다.

Answer: D
반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q005. 클래스의 형변환  (0) 2008.03.23
Q004. 예외처리  (0) 2008.03.23
Q002. 실행문  (0) 2008.03.23
Q001. 인터페이스의 상수선언  (0) 2008.03.23
SCJP 취득하자  (0) 2008.03.23

Question 2 : 실행문

Given:
10. public class Bar {
11.      static void foo(int...x) {
12.      // insert code here
13.      }
14. }

Which two code fragments, inserted independently at line 12,
will allow the class to compile? (Choose two.)

A. foreach(x) System.out.println(z);
B. for(int z : x) System.out.println(z);
C. while(x.hasNext()) System.out.println(x.next());
D. for(int i=0; i< x.length; i++) System.out.println(x[i]);


[Head First Java - p.44]
#순환문 : Java는 다음 3가지 반복문이 있다. (for,while, do-while)

[Internet]
http://blog.naver.com/thtlsgkrtod?Redirect=Log&logNo=40038750517
Java 1.5에서 추가된 기능 : '확장for'문

http://cafe.naver.com/javafull.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=40
- 여러개체가 모여 있는 경우에 개체의 끝을 체크하지 않고 하나씩 차례 대로 접근할수 있다.
- 기본형태
     for(데이터형 접근 변수명 : 배열이나 컬렉션 변수명){}

http://www.zxcasd.pe.kr/tt/102
확장for문에 대해서 정말 잘 정리한 내용


Answer: BD
반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q005. 클래스의 형변환  (0) 2008.03.23
Q004. 예외처리  (0) 2008.03.23
Q003. 실행문  (0) 2008.03.23
Q001. 인터페이스의 상수선언  (0) 2008.03.23
SCJP 취득하자  (0) 2008.03.23

+ Recent posts