Quando não definirmos nada, a classe, método ou variavel por default é friendly certo? É visível por todas as classes no pacote
E quando definirmos protected o mesmo acontece, é visível por todas as classes no pacote
qual a diferença entre os 2 entao? protected e friendly?
se puderem me ajudar…
obrigado! ;D
[quote=davi1993]galera
estava estudando aqui, e parei pra pensar
Quando não definirmos nada, a classe, método ou variavel por default é friendly certo? É visível por todas as classes no pacote
E quando definirmos protected o mesmo acontece, é visível por todas as classes no pacote
qual a diferença entre os 2 entao? protected e friendly?
se puderem me ajudar…
obrigado! ;D[/quote]
Simples, com protected você consegue acessar de fora do pacote, desde que a classe seja filha.
Se você disser que um método da classe X é protected, por exemplo, somente as suas classes filhas e do mesmo pacote terão acesso a esse método.
entao se for protected -> visivel para as classes dos pacotes e classes filhas
se for friendly -> visivel apenas para as classes dos pacotes e nao para as filhas
seria basicamente isso?
se for, vlww conseguiu sim xD
A documentação oficial sempre refere a esse tipo como “default”.
Existe no C++ um tipo de modificador chamado friend, que é bem diferente do default do java. Se uma classe A tem B como seu friend, significa que todos os métodos e atributos de B serão visíveis para A, não importando se são privados ou protected.
“Friendly” para mim é coisa de guerra (“friendly fire” = “fogo amigo”).
Por algum motivo, alguns gringos ( veja http://www.javarhythm.com/access-modifiers-in-java, que é um exemplo dessas gringuices ) começaram a chamar o acesso default de “friendly” mas isso é só um nome inventado para fins didáticos, mas completamente inexato.
“Friend” em C++ é, conforme disse o ViniGodoy, um conceito completamente diferente: é algo implementado em outra classe, ou algo global, que por algum motivo você dá completo acesso à implementação da sua classe. Nesse ponto, está mais para um “boyfriend” ou para uma “girlfriend”, não exatamente para um “friend” normal, porque é algo que é explicitamente citado por você na implementação da sua classe, que tem permissão de acessar as partes privadas da classe.