Desta forma uma classe membro é associada a uma instância da classe que a contém, o que implica que o código da classe membro tem acesso a todos os atributos da instância e também aos métodos, mesmo a aqueles que foram declarados como private.
Uma classe membro pode receber qualquer um dos três modificadores de visibilidade possíveis (public, private ou protected). Se nenhum dos três for explicitado, a visibilidade será para o pacote. Exatamente igual a qualquer outra classe.
Existem algumas regras para criar uma classe membro:
- ela não pode ter o mesmo nome da classe que a contém nem do pacote
- não pode conter atributos, métodos ou classes estaticas (declaradas com o modificados static)
- não podem ser interfaces
O resultado de algumas rodadas é:
Vamos ver uma nova classe. Neste exemplo abaixo criamos uma classe com um escopo bastante limitado... somente dentro da cláusula THEN.
Na primeiro compilação abaixo, retirei o comentário que tenta criar uma nova instância da classe BuscaPacote fora do escopo para podermos ver o erro que ocorre. Note que o compilador retorna que não acha a classe (o que era de espera já que afinal ela está definida em outro escopo).
Comentando novamente, é possível compilar e ao rodar temos o retorno de getID().
Nenhum comentário:
Postar um comentário