revisão ocpjp7 - class design (parte 01)

21
OCPJP Objetivo: Java Class Design

Upload: julio-souza

Post on 11-Nov-2014

58 views

Category:

Education


3 download

DESCRIPTION

Revisão OCPJP7 - Class Design (parte 01) - Questões e Respostas

TRANSCRIPT

Page 1: Revisão OCPJP7 - Class Design (parte 01)

OCPJPObjetivo: Java Class Design

Page 2: Revisão OCPJP7 - Class Design (parte 01)

QuestãoDado:package com.sun.scjp;public class Geometry {

public static final double DIAMETER = 0.72; // kilometers}Quais 2 podem acessar o membro DIAMETER corretamente da classe Geometry? (Escola 2 opções)A. import com.sun.scjp.Geometry; public class Ground { public double halfway { return Geometry.DIAMETER/2.0; } } B. import static com.sun.scjp.Geometry; public class Ground { public double halfway { return DIAMETER/2.0; } } C. import static com.sun.scjp.Geometry.*; public class Ground { public double halfway { return DIAMETER/2.0; } } D. package com.sun.scjp; public class Ground { public double halfway { return DIAMETER/2.0; } }

Page 3: Revisão OCPJP7 - Class Design (parte 01)

Questão ResolvidaDado:package com.sun.scjp;public class Geometry {

public static final double DIAMETER = 0.72; // kilometers}Quais 2 podem acessar o membro DIAMETER corretamente da classe Geometry? (Escola 2 opções)A. import com.sun.scjp.Geometry; public class Ground { public double halfway { return Geometry.DIAMETER/2.0; } } B. import static com.sun.scjp.Geometry; public class Ground { public double halfway { return DIAMETER/2.0; } } C. import static com.sun.scjp.Geometry.*; public class Ground { public double halfway { return DIAMETER/2.0; } } D. package com.sun.scjp; public class Ground { public double halfway { return DIAMETER/2.0; } }

Correto

Correto

Page 4: Revisão OCPJP7 - Class Design (parte 01)

QuestãoAs classes abaixo estão definidas em 2 arquivos separados

1. package processors;2. public class ByteProcessor {3. public static void process(byte[] b) { /* more code here */ }4. }

1. package apps;2. public class ByteApp {3. public static void main(String[] args) {4. byte[] bytes = new byte[256];5. // insert code here6. }7. }

O que é necessário na linha 5 da classe ByteApp para usar o método da classe ByteProcessor?

a. process(bytes); b. ByteProcessor.process(bytes); c. processors.ByteProcessor.process(bytes); d. ByteApp cannot use methods in ByteProcessor. e. import processors.ByteProcessors.*; process(bytes);

Page 5: Revisão OCPJP7 - Class Design (parte 01)

Questão ResolvidaAs classes abaixo estão definidas em 2 arquivos separados

1. package processors;2. public class ByteProcessor {3. public static void process(byte[] b) { /* more code here */ }4. }

1. package apps;2. public class ByteApp {3. public static void main(String[] args) {4. byte[] bytes = new byte[256];5. // insert code here6. }7. }

O que é necessário na linha 5 da classe ByteApp para usar o método da classe ByteProcessor?

a. process(bytes);

b. ByteProcessor.process(bytes);

c. processors.ByteProcessor.process(bytes);

d. ByteApp cannot use methods in ByteProcessor.

e. import processors.ByteProcessors.*; process(bytes);

Correto

Page 6: Revisão OCPJP7 - Class Design (parte 01)

QuestãoAs classes abaixo estão definidas em 2 arquivos separados

1. package processors;2. public class ByteProcessor {3. private static void process(byte[] b) { /* more code here */ }4. }1. package apps;2. public class ByteApp {3. public static void main(String[] args) {4. byte[] bytes = new byte[256];5. // insert code here6. }7. }

What is required at line 5 in class ByteApp to use the process method of ByteProcessor?

a. process(bytes);

b. ByteProcessor.process(bytes);

c. apps.ByteProcessor.process(bytes);

d. processors.ByteProcessor.process(bytes);

e. import processors.ByteProcessor.*; process(bytes);

f. ByteApp cannot use the process method in ByteProcessor.

Page 7: Revisão OCPJP7 - Class Design (parte 01)

Questão ResolvidaAs classes abaixo estão definidas em 2 arquivos separados

1. package processors;2. public class ByteProcessor {3. private static void process(byte[] b) { /* more code here */ }4. }1. package apps;2. public class ByteApp {3. public static void main(String[] args) {4. byte[] bytes = new byte[256];5. // insert code here6. }7. }

What is required at line 5 in class ByteApp to use the process method of ByteProcessor?

a. process(bytes);

b. ByteProcessor.process(bytes);

c. apps.ByteProcessor.process(bytes);

d. processors.ByteProcessor.process(bytes);

e. import processors.ByteProcessor.*; process(bytes);

f. ByteApp cannot use the process method in ByteProcessor. Correto

Page 8: Revisão OCPJP7 - Class Design (parte 01)

QuestãoUm desenvolvedor está criand a classe Book, que necessita de acessar a classe Paper. A classe Paper encontra-se em um arquivo JAR chamado myLib.jar.

Quais 3 dos abaixo que usados independentemente permitirão ao desenvolvedor usar a classe Paper ao compilar a classe Book?(Escolha três opções.)

a. The JAR file is located at $JAVA_HOME/jre/classes/myLib.jar.

b. The JAR file is located at $JAVA_HOME/jre/lib/ext/myLib.jar.

c. The JAR file is located at /foo/myLib.jar and a classpath environment variable is set that includes /foo/myLib.jar/Paper.class.

d. The JAR file is located at /foo/myLib.jar and a classpath environment variable is set that includes /foo/myLib.jar.

e. The JAR file is located at /foo/myLib.jar and the Book class is compiled using javac - cp/foo/myLib.jar/Paper Book.java.

f. The JAR file is located at /foo/myLib.jar and the Book class is compiled using javac -d/foo/myLib.jar Book.java

g. The JAR file is located at /foo/myLib.jar and the Book class is compiled using javac -classpath /foo/myLib.jar Book.java

Page 9: Revisão OCPJP7 - Class Design (parte 01)

Questão ResolvidaUm desenvolvedor está criand a classe Book, que necessita de acessar a classe Paper. A classe Paper encontra-se em um arquivo JAR chamado myLib.jar.

Quais 3 dos abaixo que usados independentemente permitirão ao desenvolvedor usar a classe Paper ao compilar a classe Book?(Escolha três opções.)

a. The JAR file is located at $JAVA_HOME/jre/classes/myLib.jar.

b. The JAR file is located at $JAVA_HOME/jre/lib/ext/myLib.jar.

c. The JAR file is located at /foo/myLib.jar and a classpath environment variable is set that includes /foo/myLib.jar/Paper.class.

d. The JAR file is located at /foo/myLib.jar and a classpath environment variable is set that includes /foo/myLib.jar.

e. The JAR file is located at /foo/myLib.jar and the Book class is compiled using javac - cp/foo/myLib.jar/Paper Book.java.

f. The JAR file is located at /foo/myLib.jar and the Book class is compiled using javac -d/foo/myLib.jar Book.java

g. The JAR file is located at /foo/myLib.jar and the Book class is compiled using javac -classpath /foo/myLib.jar Book.java

Correto

Correto

Correto

Page 10: Revisão OCPJP7 - Class Design (parte 01)

QuestãoDado:

1. package com.apps;2.3. public class MyApp {4. public static void main(String[] args) {}5. }And MyApp exists in the /programs/com/apps directory. Assume the CLASSPATH environment variable is set to "."(current directory).

Quais 2 comandos java irão executar MyApp?(Escolha 2 opções)

A. java MyApp if run from the /programs directory

B. java com.apps.MyApp if run from the /programs directory

C. java -classpath /programs com.apps.MyApp if run from any directory

D. java -classpath . MyApp if run from the /programs/com/apps directory

E. java -classpath /programs/com/apps:. MyApp if run from the /programs directory

F. java com.apps.MyApp if run from the /programs/com/apps directory

Page 11: Revisão OCPJP7 - Class Design (parte 01)

Questão ResolvidaDado:

1. package com.apps;2.3. public class MyApp {4. public static void main(String[] args) {}5. }And MyApp exists in the /programs/com/apps directory. Assume the CLASSPATH environment variable is set to "."(current directory).

Quais 2 comandos java irão executar MyApp?(Escolha 2 opções)

A. java MyApp if run from the /programs directory

B. java com.apps.MyApp if run from the /programs directory

C. java -classpath /programs com.apps.MyApp if run from any directory

D. java -classpath . MyApp if run from the /programs/com/apps directory

E. java -classpath /programs/com/apps:. MyApp if run from the /programs directory

F. java com.apps.MyApp if run from the /programs/com/apps directory

Correto

Correto

Page 12: Revisão OCPJP7 - Class Design (parte 01)

Questão1. import java.util.*; 2. public class MapTest 3. { 4. public static void main(String[] args) 5. { 6. Object obj = new LinkedHashMap(); 7. if(obj instanceof Collection) 8. System.out.print("For "); 9. if(obj instanceof Map) 10. System.out.print("A Few "); 11. if(obj instanceof LinkedList) 12. System.out.print("Dollars More "); 13. if(obj instanceof HashMap) 14. System.out.print("Good Men"); 15. } 16. }O que irá acontecer quando vocÊ tentar compilar e rodar o código acima?

a. It will print - A Few Good Men

b. It will print - For A Few Good Men

c. It will print - For A Few Dollars More Good Men

d. It will print - For A Few Dollars More

e. It will print - For A Few

f. It will print - A Few Dollars More

Page 13: Revisão OCPJP7 - Class Design (parte 01)

Questão Resolvida1. import java.util.*; 2. public class MapTest 3. { 4. public static void main(String[] args) 5. { 6. Object obj = new LinkedHashMap(); 7. if(obj instanceof Collection) 8. System.out.print("For "); 9. if(obj instanceof Map) 10. System.out.print("A Few "); 11. if(obj instanceof LinkedList) 12. System.out.print("Dollars More "); 13. if(obj instanceof HashMap) 14. System.out.print("Good Men"); 15. } 16. }O que irá acontecer quando vocÊ tentar compilar e rodar o código acima?

a. It will print - A Few Good Men

b. It will print - For A Few Good Men

c. It will print - For A Few Dollars More Good Men

d. It will print - For A Few Dollars More

e. It will print - For A Few

f. It will print - A Few Dollars More

Correto

Page 14: Revisão OCPJP7 - Class Design (parte 01)

QuestãoSe o código abaixo exibe: count = 3, qual das declarações abaixo é false? (Assumindo que os métodos equals() e hashCode() foram sobrescritos corretamente).

1. int count = 1; 2. if(a.equals(b)) 3. count++; 4. if(c.equals(d)) 5. count++; 6. if(a.hashCode() == b.hashCode()) 7. count++; 8. if(c.hashCode() == d.hashCode()) 9. count++; 10. System.out.println("count = " + count);

a. a.equals(b) and !(c.equals(d))

b. a.equals(b) or c.equals(d) but not both

c. a.hashCode()==b.hashCode() and c.hashCode() == d.hashCode()

d. a.equals(b) and c.equals(d)

Page 15: Revisão OCPJP7 - Class Design (parte 01)

Questão ResolvidaSe o código abaixo exibe: count = 3, qual das declarações abaixo é false? (Assumindo que os métodos equals() e hashCode() foram sobrescritos corretamente).

1. int count = 1; 2. if(a.equals(b)) 3. count++; 4. if(c.equals(d)) 5. count++; 6. if(a.hashCode() == b.hashCode()) 7. count++; 8. if(c.hashCode() == d.hashCode()) 9. count++; 10. System.out.println("count = " + count);

a. a.equals(b) and !(c.equals(d))

b. a.equals(b) or c.equals(d) but not both

c. a.hashCode()==b.hashCode() and c.hashCode() == d.hashCode()

d. a.equals(b) and c.equals(d) Correto

Page 16: Revisão OCPJP7 - Class Design (parte 01)

QuestãoO que irá acontecer ao tentar compilar e executar o código abaixo?

1. public final class EqualsDemo 2. { 3. private String str; 4. 5. public EqualsDemo(String s) 6. { 7. str = s; 8. } 9. 10. public boolean equals(EqualsDemo obj) 11. { 12. if(!(obj instanceof EqualsDemo)) 13. return false; 14. EqualsDemo ed = (EqualsDemo)obj; 15. return (str == ed.str || (str != null && str.equals(ed.str))); 16. } 17. 18. public static void main(String[] args) 19. { 20. EqualsDemo demo1 = new EqualsDemo("Java"); 21. EqualsDemo demo2 = new EqualsDemo("java"); 22. System.out.println(demo1.equals(demo2)); 23. } 24. }

A. It will print - true B. It will print - false C. Compilation error D. Exception

Page 17: Revisão OCPJP7 - Class Design (parte 01)

Questão ResolvidaO que irá acontecer ao tentar compilar e executar o código abaixo?

1. public final class EqualsDemo 2. { 3. private String str; 4. 5. public EqualsDemo(String s) 6. { 7. str = s; 8. } 9. 10. public boolean equals(EqualsDemo obj) 11. { 12. if(!(obj instanceof EqualsDemo)) 13. return false; 14. EqualsDemo ed = (EqualsDemo)obj; 15. return (str == ed.str || (str != null && str.equals(ed.str))); 16. } 17. 18. public static void main(String[] args) 19. { 20. EqualsDemo demo1 = new EqualsDemo("Java"); 21. EqualsDemo demo2 = new EqualsDemo("java"); 22. System.out.println(demo1.equals(demo2)); 23. } 24. }

A. It will print - true B. It will print - false C. Compilation error D. Exception

Correto

Page 18: Revisão OCPJP7 - Class Design (parte 01)

QuestãoComo você implementaria do método hashCode() corretamente para a classe abaixo?(Assumindo que essa classe implemnta o método equals() corretamente e use a implementação mais apropriada)

public class HashDemo { private Integer arr[]; //other methods not shown }

A. public int hashCode() { int hash = 7; if(arr == null) hash = 31 * hash + 0; else for(int i=0; i<arr.length; i++) { hash = 31 * hash +(arr[i] == null? 0 : arr[i].hashCode()); } return hash; } B. public int hashCode() { int hash = 7; if(arr == null) hash = 31 * hash + 0; else for(int i=0; i<arr.length; i++) { hash = 31 * hash + arr[i].hashCode(); } return hash; }

C. public int hashCode() { int hash = 7; if(arr == null) hash = 31 * hash + 0; else hash = 31 * hash + arr.hashCode(); return hash; }

D. The array should not be involved in the calculation of the hashCode() method.

Page 19: Revisão OCPJP7 - Class Design (parte 01)

Questão RessolvidaComo você implementaria do método hashCode() corretamente para a classe abaixo?(Assumindo que essa classe implemnta o método equals() corretamente e use a implementação mais apropriada)

public class HashDemo { private Integer arr[]; //other methods not shown }

A. public int hashCode() { int hash = 7; if(arr == null) hash = 31 * hash + 0; else for(int i=0; i<arr.length; i++) { hash = 31 * hash +(arr[i] == null? 0 : arr[i].hashCode()); } return hash; } B. public int hashCode() { int hash = 7; if(arr == null) hash = 31 * hash + 0; else for(int i=0; i<arr.length; i++) { hash = 31 * hash + arr[i].hashCode(); } return hash; }

C. public int hashCode() { int hash = 7; if(arr == null) hash = 31 * hash + 0; else hash = 31 * hash + arr.hashCode(); return hash; }

D. The array should not be involved in the calculation of the hashCode() method.

Correto

Page 20: Revisão OCPJP7 - Class Design (parte 01)

QuestãoDado:

2. public class foo { 3. void m1() { } 4. protected void m2 { } 5. } 6. class bar extends foo { 7. // insert code here 8. }

Quais fragmentos de código, inseridos independentemente na linha 7 irão compilar? (Escolha 4)

A. public void m1() { }

B. protected void m1() { }

C. private void m1() { }

D. void m2() { }

E. public void m2() { }

F. protected void m2() { }

G. private void m2() { }

Page 21: Revisão OCPJP7 - Class Design (parte 01)

Questão ResolvidaDado:

2. public class foo { 3. void m1() { } 4. protected void m2 { } 5. } 6. class bar extends foo { 7. // insert code here 8. }

Quais fragmentos de código, inseridos independentemente na linha 7 irão compilar? (Escolha 4)

A. public void m1() { }

B. protected void m1() { }

C. private void m1() { }

D. void m2() { }

E. public void m2() { }

F. protected void m2() { }

G. private void m2() { }

Correto

Correto

Correto

Correto