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:
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
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!
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…
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
camila_gesse
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