Sim cara,
 
eu realmente não acho que isso seja um defeito (foi uma decisão (estranha) de projeto da equipe que criou o Java), mas quando vou ensinar aos meus alunos o conceito de "membros protegidos" sem eles usarem pacotes, fica sem sentido.
 
A definição em Orientação a Objetos (nada a ver com Java) é que um membro protegido só pode ser acessado pela classe que o declarou ou uma de suas subclasse.
 
Em Java, isso só ocorre quando você agrupar as classes dentro de um pacote. Se você não usar pacotes, o modificador protected se comporta igual ao public. (porque Java considera todas as classes em um mesmo "pacote padrão" se um pacote não for declarado explicitamente)
 
Lembra que "pacotes" é uma técnica adotada pelo Java mas que não é definida em Orientação a Objetos.
 
É isso aí, não precisa ficar defendendo o Java, melhor é discutir o comportamento da linguagem, buscando aprender mais com a opinião de todos.
 
E não precisa ficar citando os criadores do Java :^) Se as tuas opiniões forem espertas, elas valem tanto quanto a deles :^))
 
Um abraço,
 
    Felipe Gaúcho

Responder a