![]() |
Criado por Thiago Russo
mais de 7 anos atrás
|
|
Questão | Responda |
o que é encapsulamento? como o C# ajuda a aplicar ? | O encapsulamento é um dos pilares do desenvolvimento orientado a objeto. Esconder os elementos privados de outros objetos dentro de um sistema OO faz um software melhor. Qdo vc quer fazer algo, peça a um outro objeto q ele execute esta ação. A única coisa q vc tem q saber é a interface externa. A implementação está escondida de vc, e vc n tem q entender como ela funciona, desde q esteja em conformidade c/ a interface. C# ajuda a encapsular o funcionamento interno de um objeto, fornecendo propriedades , modificadores de acesso e interfaces. |
o que são os modificadores de acesso? | Um dos conceitos-chave do encapsulamento é esconder informações. Isto é onde os modificadores de acesso do C# podem ser utilizados. Modificadores de acesso permitem restringir o acesso a todos os tipos e membros de tipo. |
usando o modificador de acesso 'public' |
Image:
Public (image/png)
|
quais os modificadores de acesso e suas restrições? |
Image:
Modificadores (image/png)
|
private como funciona / exemplo |
Image:
Private (image/png)
|
protected como funciona / exemplo |
Image:
Protectec (image/png)
|
internal como funciona / exemplo |
Image:
Internal (image/png)
|
internal protected | Vc tb pode combinar o modificador de acesso protected e internal. Ao usar o modificador de acesso 'internal protected ', tenha em mente que : Na prática, significa q o acesso é limitado ao assembly de tipos ou derivados a partir da classe de corrente, mesmo que esses tipos estão em outro conjunto. |
InternalsVisibleToAttribute | Qdo vc quer expor tipos internos ou membros de tipo para outro assembly, vc pode usar um atributo especial: InternalsVisibleToAttribute. Vc pode usar esse atributo para especificar outro assembly q tb pode acessar os tipos internos. Uma situação em q isso pode ser útil é qdo vc escreve testes de unidade. Talvez tenha uma classe interna q encapsula um algoritmo difícil e vc quer escrever testes de unidade para isso. Normalmente, vc inclui esse atributo dentro do arquivo AssemblyInfo.cs q está armazenado na pasta Propriedades do seu projeto: Ex: [Assembly: InternalsVisibleTo ("Friend1a")] [Assembly: InternalsVisibleTo ("Friend1b")] Vc pode usar qtos atributos vc precisar. Neste exemplo, os assemblies Friend1a e Friend1b já estão autorizados a acessar os tipos internos e membros de seu assembly |
modificadores de acesso X membros | |
Algo para se manter em mente é que o modificador de acesso do tipo de delimitador é sempre levado em conta. dê um exemplo! Há exceções, dê um exemplo de exceção! | Ex: um método público dentro de uma classe interna tem uma acessibilidade do interno. Há exceções (Ex: qdo uma classe interna implementa uma interface pública ou qdo uma classe substitui um membro virtual pública de uma classe base), então vc precisa manter o controle dessas coisas ao determinar a acessibilidade de um tipo q vc precisa . É uma boa prática escolher sempre explicitamente a menor visibilidade possível, pq vc quer esconder o máximo de informações possível. Se vc n declarar qlq modificador de acesso, C# atribui um membro acessibilidade padrão conforme definido na Tabela |
Quer criar seus próprios Flashcards gratuitos com GoConqr? Saiba mais.