Questão sobre import (Lang Fundamentals) [RESOLVIDO]

9 respostas
marciosouzajunior

Pessoal estou estudando um simulado aqui, é uma questão até de nível básico mas
está me confundindo um pouco, vejam:

Given a file GrizzlyBear.java:

  1. package animals.mammals;
  2. public class GrizzlyBear extends Bear {
  3. void hunt() {
  4. Salmon s = findSalmon();
  5. s.consume();
  6. }
  7. }
    and another file, Salmon.java:
  8. package animals.fish;
  9. public class Salmon extends Fish {
  10. void consume() { /* do stuff */ }
  11. }
    Assume both classes are defined in the correct directories for theft
    packages, and that the Mammal class correctly defines the
    findSalmon() method. Which two changes allow this code to compile
    correctly? (Choose two.)
    A. add public to the start of line 4 in Salmon.java
    B. add public to the start of line 4 in GrizzlyBear.java
    C. add import animals.mammals.; at line 2 in Salmon.java
    D. add import animals.fish.
    ; at line 2 in GrizzlyBear.java
    E. add import animals.fish.Salmon.; at line 2 in GrizzlyBear.java
    F. add import animals.mammals.GrizzlyBear.
    ;at line 2 in Salmon.java

Answer: AD

A resposta D eu concordo, mas porque A está correta? Como vai acessar Salmon se ele está em outro pacote?
Desde já agradeço a atenção!

9 Respostas

davidbuzatto

Use a tag code quando for postar seus códigos! http://www.guj.com.br/posts/list/50115.java

Quanto à questão, não está faltando nada ai não?

marciosouzajunior

Me desculpe, é porque o código tava numerado e achei melhor deixar como estava. Mas eu visualizei aqui e deu certinho. Não tá faltando nada, é isso aí mesmo…

Given a file GrizzlyBear.java:

package animals.mammals;

public class GrizzlyBear extends Bear {
	void hunt() {
		Salmon s = findSalmon();
		s.consume();
	}
}

And another file, Salmon.java:

package animals.fish;

public class Salmon extends Fish {
	void consume() { /* do stuff */ }
}

Assume both classes are defined in the correct directories for theft
packages, and that the Mammal class correctly defines the
findSalmon() method. Which two changes allow this code to compile
correctly? (Choose two.)

A. add public to the start of line 4 in Salmon.java
B. add public to the start of line 4 in GrizzlyBear.java
C. add import animals.mammals.; at line 2 in Salmon.java
D. add import animals.fish.
; at line 2 in GrizzlyBear.java
E. add import animals.fish.Salmon.; at line 2 in GrizzlyBear.java
F. add import animals.mammals.GrizzlyBear.
;at line 2 in Salmon.java

Eric_Yuzo

A resposta A diz para adicionar o modificador public no método consume(), permitindo que o método seja visível por qualquer classe, inclusive GrizzlyBear. Por isso está correto.

davidbuzatto

Exatamente. Lembrando que as DUAS mudanças precisam ser feitas para o código compilar.

[]´s

marciosouzajunior

É verdade, o que pegou foi interpretação. Estava pensando que seriam duas mudanças isoladas. Mas não, as duas mudanças tem que ser feitas para compilar.
Obrigado aí pessoal!

giselezr

pq a resposta D esta certa e a E não esta?

D. add import animals.fish.; at line 2 in GrizzlyBear.java
E. add import animals.fish.Salmon.
; at line 2 in GrizzlyBear.java

giselezr

Testando as duas funcionar normalmente… alguem pode me explicar por favor?

C

giselezr, o erro na resposta E é o .* depois de Salmon --> animals.fish.Salmon.*
O .* significa que vc está importando todas as classes do pacote, por isso a resposta D está correta.
A E está incorreta pois Salmon é uma classe e por isso o .* não se aplica.
O correto seria assim: import animals.fish.Salmon --> pois dessa forma vc estaria importando somente a classe que lhe interessa.

giselezr

oi camila, obrigada por responder. Você esta correta, eu que estava confundindo tudo :shock: Obrigada

Criado 19 de outubro de 2010
Ultima resposta 17 de jan. de 2013
Respostas 9
Participantes 5