“O controle de privilégio Java é realizado pelo modificador de acesso. Os três modificadores de acesso oferecidos por Java são públicos, protegidos e privados. Iremos com o modificador de acesso protegido, que é restrito ao nível do membro. A palavra -chave protegida varia da palavra -chave privada de uma maneira que facilita o acesso a subclasses de outros pacotes, bem como fora das classes, mas na forma de herança. A palavra -chave protegida não pode ser designada para as classes e interfaces externas. Os usuários não podem criar uma instância de classe fora do pacote, pois as funções são protegidas com a palavra -chave protegida.”
Exemplo 1
A palavra -chave protegida é usada antes de declarar que qualquer atributo em particular é protegido. Vamos considerar o programa para saber se os atributos protegidos são acessíveis em java.
Construímos uma classe direta chamada "funcionário" no script. Em seguida, declaramos os atributos "EmpName", "Empemail" e "Empage" da classe usando o modificador protegido. Agora, protegemos essas variáveis na classe. Em seguida, criamos a subclasse "ProtectectCase1" da classe "funcionário" empregando a palavra -chave Extend. Aqui, geramos o atributo privado no método Main (), o que significa que somente essa classe pode acessá -lo.
Em seguida, definimos o objeto "Empobj" da classe "ProtectedCase1". Acessamos cada atributo protegido da classe "funcionário" com o objeto "empobj" no "sistema.fora.Println () ”função para imprimir os valores. Além disso, imprimimos o valor do atributo privado aqui.
A saída provou que os valores de atributo protegido da superclasse estão acessíveis na subclasse.
Exemplo 2
Vimos a acessibilidade da palavra -chave protegida nos programas Java acima. Aqui, criamos dois pacotes diferentes e acessamos os métodos protegidos.
O programa é salvo no “animal.arquivo java ”, localizado dentro do pacote“ P1 ”. Depois disso, criamos a classe "Animal", que também é o nome do arquivo java. Através do uso do modificador "protegido", construímos a função "CAT ()" e atribuímos o sistema.fora.Método println () para imprimir a mensagem especificada. Invocamos esta função protegida dentro de outro pacote como abaixo.
Construímos outro pacote e salvamos o arquivo java como "Protectectcase2" lá. Temos a definição da classe “Protectectcase2” no arquivo. Aqui, temos um método principal () em que a classe “Protectectcase2” objeto “P” foi declarada e, com esse objeto, tentamos acessar a função protegida Cat () da classe “animal” localizada no pacote “P1”.
Depois que o programa foi executado, ocorreu o erro de compilação, como na tela abaixo. Como resultado, não podemos acessar o atributo protegido em diferentes pacotes.
Exemplo 3
A próxima abordagem é usar a palavra -chave protegida para o atributo de uma classe e chamar esse atributo dentro de outra classe.
Estabelecemos uma classe “Stringclass” e o bloco da classe é definido com o atributo da string “str”, que é mantido protegido. O atributo de string protegido "STR" é inicializado com a mensagem da string. Em seguida, criamos uma classe, "ProtectedCase3", com o modificador de acesso público e empregamos o método do programa principal do programa (). O método principal () é declarado com o objeto "s" da classe "stringclass", e esse objeto é chamado de atributo protegido de "str" para imprimir o valor da string no "sistema.fora.Método Print () ”.
A mensagem da string do atributo protegido é exibida aqui. Portanto, os atributos protegidos são acessíveis na outra classe de Java.
Exemplo 4
O programa é implantado no mesmo pacote e acessa o método protegido, mas em outra classe do mesmo pacote.
Temos um arquivo chamado “aluno.java "onde construímos a classe" aluno "e criou o método Show () dentro dele.
Em seguida, criamos outro arquivo, "ProtectedCase4", no mesmo pacote, "P1" e chamou a função "Show ()", que é protegida com o objeto "ST" da classe "aluno".
A função protegida retorna a saída na forma da string, que é chamada em outra classe do mesmo pacote.
Exemplo 5
A função protegida da classe base também pode ser acessível substituindo a classe derivada. Vamos ver a demonstração desta declaração abaixo.
Criamos a função View () com o prefixo "protegido" na classe base "MyMessage", onde especificamos a mensagem. Esta mensagem será exibida quando a função protegida estiver acessível. Depois disso, estabelecemos uma classe derivada “ProtectedCase5”, estendendo a classe base “MyMessage”. Lá, definimos novamente a função View () protegida e substituímos a declaração impressa do anterior. Em seguida, temos uma declaração do objeto de classe derivado "Obj", que chama a função "View ()".
A função protegida foi substituída com sucesso no momento da execução, que é exibida no prompt.
Exemplo 6
Como as variáveis protegidas da classe pai podem ser acessadas na classe infantil, que vimos no programa mencionado acima mencionado. Agora, atribuímos o modificador protegido à classe externa e tentamos acessá -lo no método principal ().
Construímos a classe "Protectectcase2" com o prefixo "protegido". A classe fica protegida para o arquivo do programa Java. Na classe protegida "Protectectcase2", implantamos a função "print ()", que contém a mensagem de impressão. Depois disso, temos um método main () da classe "Protectectcase2". Aqui, chamamos a classe "ProtectedCase2" para criar seu objeto, que é declarado como "PC", onde invocamos o construtor da classe "ProtectedCase2" com a nova palavra -chave. Então, usando o objeto "print ()", chamamos o método "print ()" da classe protegida.
A compilação do programa Java acima gera o erro que a classe protegida não pode ser permitida aqui.
Conclusão
Especificamos palavras -chave protegidas de acordo com o tipo de acesso esperado no horário de compilação. O modificador de acesso "protegido" é muito eficaz para a função herdada que utiliza a mesma classe e atributos. A classe pai e qualquer uma de suas subclasses filhos que usam a palavra-chave protegida sempre têm um relacionamento entre pais e filhos. Vimos vários casos do modificador de acesso protegido, que demonstra seu uso em java.