Question 13 : import static

Given:
10. package com.sun.scjp;
11. public class Geodetics {
12.      public static final double DIAMETER = 12756.32;
13. }

Which two correctly access the DIAMETER member of the Geodetics class? (Choose two.)

A. import com.sun.scjp.Geodetics;
    public class TerraCarta {
         public double halfway() { return Geodetics.DIAMETER/2.0; }
    }
B. import static com.sun.scjp.Geodetics;
    public class TerraCarta {
         public double halfway() { return DIAMETER/2.0; }
    }
C. import static com.sun.scjp.Geodetics. *;
    public class TerraCarta {
         public double halfway() { return DIAMETER/2.0; }
    }
D. package com.sun.scjp;
    public class TerraCarta {
         public double halfway() { return DIAMETER/2.0; }
    }


[HeadFirst Java - p.189]
# 어떤 클래스를 사용하려면 클래스의 전체이름을 알아야합니다.
# 단, java.lang 패키지에 있는 클래스는 제외합니다.
# 'java.util.ArrayList'의 경우 'java.util'은 패키지명이고, 'ArrayList'는 클래스명입니다.
# 자바에 어떤 ArrayList를 사용할지 알려줘야 하는데, 두가지 방법이 있습니다.
     - import 사용
          import java.util.ArrayList;
          public class MyClass {...}
     - 일일이 입력
          java.util.ArrayList<Dog> list = new java.util.ArrayList<Dog>();
          public void go(java.util.ArrayList<Dog> list) {...}

[HeadFirst Java - p.341]
# 자바5.0에서 새로 추가된 기능 중에 정적 임포트(static import) 기능이 있습니다.
# 이 기능의 가장 큰 단점은 코드를 읽기가 훨씬 어려워질 수 있다는 것입니다.
# 기존 코드
     import java.lang.Math;
     class NoStatic {
          public static void main(String [] args) {
               System.out.println("sqrt " + Math.sqrt(2.0));
               System.out.println("tan " + Math.tan(60));
          }
     }
# 정적 임포트 사용 코드
     import static java.lang.System.out;
     import static java.lang.Math.*;
     class WithStatic {
          public static void main(String [] args) {
               out.println("sqrt " + sqrt(2.0));
               out.println("tan " + tan(60));
          }
     }

Answer: AC
반응형

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

Q015. 무명클래스의 형태  (0) 2008.04.04
Q014. 열거형  (0) 2008.04.03
Q012. 변수의 적용 범위  (0) 2008.04.01
Q011. 문법 오류  (0) 2008.04.01
Q010. HashSet  (0) 2008.03.30
Question 12 : 변수의 적용범위

Given:
13. public class Pass {
14.      public static void main(String []args) {
15.           int x = 5;
16.           Pass p = new Pass();
17.           p.doStuff(x);
18.           System.out.print(” main x = “+ x);
19.      }
20.
21.      void doStuff(int x) {
22.           System.out.print(” doStuff x = “+ x++);
23.      }
24. }

What is the result?

A. Compilation fails.
B. An exception is thrown at runtime.
C. doStuffx = 6 main x = 6
D. doStuffx = 5 main x = 5
E. doStuffx = 5 main x = 6
F. doStuffx = 6 main x = 5


[HeadFirst Java - p.119]
# '인스턴스 변수'는 클래스 내에서 선언됩니다. 메소드 내에서 선언되는 것이 아닙니다.
# '지역 변수(local variable)'는 메소드 내에서 선언됩니다.
# '지역변수'는 사용하기 전에 반드시 초기화해야 합니다. 지역변수는 기본값이 없습니다. 따라서 지역 변수를 초기화하기 전에 사용하려고 하면 컴파일 과정에서 오류가 납니다.

[HeadFirst Java - p.270]
# 메소드 안에서 선언한 것을 지역 변수라고 부르는데, 메소드 매개변수도 지역 변수에 포함됩니다. 지역 변수는 임시 변수며 메소드가 스택에 들어있는 동안만 살아있습니다.
# 클래스 내에서 선언한 것을 인스턴스 변수라고 부르는데, 메소드 내에서 선언한 것은 인스턴스 변수에 포함되지 않습니다. 인스턴스 변수는 그 변수가 속한 객체 안에서 삽니다.

Answer: D
반응형

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

Q014. 열거형  (0) 2008.04.03
Q013. import static  (0) 2008.04.03
Q011. 문법 오류  (0) 2008.04.01
Q010. HashSet  (0) 2008.03.30
Q009. 클래스 관계  (0) 2008.03.30
Question 11 : 문법오류

Given:
23. Object [] myObjects = {
24.      new integer(12),
25.      new String(”foo”),
26.      new integer(5),
27.      new Boolean(true)
28. };
29. Arrays.sort(myObjects);
30. for( int i=0; i<myObjects.length; i++) {
31.      System.out.print(myObjects[i].toString());
32.      System.out.print(” “);
33. }

What is the result?

A. Compilation fails due to an error in line 23.
B. Compilation fails due to an error in line 29.
C. A ClassCastException occurs in line 29.
D. A ClassCastException occurs in line 31.
E. The value of all four objects prints in natural order.


[HeadFirst Java - p.242]
# 자바에서 모든 클래스는 Object라는 클래스를 확장한 것입니다. Object라는 클래스는 모든 클래스의 어머니, 즉 모든 것의 상위클래스입니다.
# 명시적으로 다른 클래스를 확장하지 않은 클래스는 자동으로 Object를 확장한 클래스로 정의됩니다.
     public class Dog extends Object {
     ...
# 초특급 클래스인 Object 클래스에 들어있는 대표적인 4가지 메소드
     - equals(Object o)
     - getClass()
     - hashCode()
     - toString()

[HeadFirst Java - p.250]
# 객체 레퍼런스를 실제 유형으로 캐스트하는 방법
     Object o = al.get(index);
     Dog d = (Dog) o;
     d.roam();
# Dog인지 잘 모르겠다면 instanceOf 연산자를 써서 확인하면 됩니다. 엉뚱한 클래스로 캐스트하면 실행 중에 ClassCastException이 나면서 프로그램이 멎어버립니다.
     if (d instanceOf Dog) {
          Dog d = (Dog) o;
     ...

Answer: C
반응형

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

Q013. import static  (0) 2008.04.03
Q012. 변수의 적용 범위  (0) 2008.04.01
Q010. HashSet  (0) 2008.03.30
Q009. 클래스 관계  (0) 2008.03.30
Q008. 접근제어자  (0) 2008.03.29
Question 10

Given:
11. public class Person {
12.      private name;
13.      public Person(String name) {
14.           this.name = name;
15.      }
16.      public int hashCode() {
17.           return 420;
18.      }
19. }

Which is true?
A. The time to find the value from HashMap with a Person key depends on the size of the map.
B. Deleting a Person key from a HashMap will delete all map entries for all keys of type Person.
C. Inserting a second Person object into a HashSet will cause the first Person object to be removed as a duplicate.
D. The time to determine whether a Person object is contained in a HashSet is constant and does NOT depend on the size of the map.


[HeadFirst Java - p.567]
# HashMap : 원소들을 이름/값 쌍 형식으로 저장하고 접근할 수 있게 해줍니다.
# HashSet : 컬렉션에 중복된 원소가 들어가지 않도록 해주고, 컬렉션 내에서 어떤 원소를 빠르게 찾을 수 있게 해줍니다.
# LinkedHashMap : 일반 HashMap과 거의 똑같지만 원소(이름/값 쌍)가 삽입된 순서를 그대로 유지시켜줄 수도 있고, 원소에 마지막으로 접근했던 순서를 기억하도록 설정할 수도 있다는 점이 다릅니다.

[HeadFirst Java - p.593]
...

Answer: A
반응형

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

Q012. 변수의 적용 범위  (0) 2008.04.01
Q011. 문법 오류  (0) 2008.04.01
Q009. 클래스 관계  (0) 2008.03.30
Q008. 접근제어자  (0) 2008.03.29
Q007. 접근제어자  (0) 2008.03.25
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

+ Recent posts