A importância dos modificadores de acesso[Resolvido]

9 respostas
PhoenixWings

Boa tarde. A minha dúvida é a seguinte: O que me garante que, ao configurar um variável como private e final, ela realmente não será modificada por outro programador? numa empresa de consultoria, por exemplo, um programador iria ter acesso ao código desenvolvido pela minha equipe, certo? ele poderia simplesmente trocar o acesso de “private” para “public” . Então qual é a garantia de que uma variável, ou método etc. estará encapsulado e protegido contra modificação? Obrigado pelo esclarecimento.

9 Respostas

A

quando a variável é private só a própria classe tem acesso direto a ela, outras classes só tem acesso via get e set. dê uma olhadinha no link abaixo:

http://www.arquivodecodigos.net/dicas/java-entendendo-o-conceito-de-encapsulamento-encapsulation-em-java-2424.html

certo?

D

Entendi da seguinte maneira sua pergunta:
se vc se refere a passoa ( programador ) ter acesso ao seu codigo, sim, ele pode mudar de private pra public ( alias pode fazer oq quiser ).

o encapsulamento serve para que outras classes ou aplicações que necessitem de usar a sua classe ( que esta encapsulada ) não tenham acesso ao que esta como private.

espero ter ajudado.

PhoenixWings

andredecotia:
quando a variável é private só a própria classe tem acesso direto a ela, outras classes só tem acesso via get e set.

Isso eu sei mas digo em relação ao ramo empresarial: qualquer um pode modificar as minhas variáveis se a pessoa tiver acesso ao meu código. Isso quer dizer que uma pessoa que implementará uma nova classe não terá acesso ao meu código? se for assim, como um programador saberá que uma variável private final facaalgumacoisa minha existe no caso dele não ter acesso ao meu código? é isso que eu não entendo. Em contrapartida - sendo um pouco redundante - se ele tiver acesso ao meu código ele poderá modificar aquela variável private final facaalgumacoisa que eu criei :? Eu não estou querendo obter a explicação do que é o encapsulamento e sim como ele funciona na prática, numa empresa. : )

andreiribas

Sim, se programador tiver acesso ao código ele vai poder fazer o que quiser com ele.

Geralmente se espera que ninguém faça isso, porque pode causar muitos efeitos colaterais, obviamente.

Se ele não tiver acesso ao código, não vai ter como saber variáveis, métodos e inner claasses privadas existem no seu código.

PhoenixWings


Entendi da seguinte maneira sua pergunta:
se vc se refere a passoa ( programador ) ter acesso ao seu codigo, sim, ele pode mudar de private pra public ( alias pode fazer oq quiser ).

o encapsulamento serve para que outras classes ou aplicações que necessitem de usar a sua classe ( que esta encapsulada ) não tenham acesso ao que esta como private.

espero ter ajudado.

hum eu acho que entendi. Um programador poderia eliminar alguma funcionalidade da aplicação que eu teria criado apenas modificando uma variável de private para public por exemplo. O modificador private acima de tudo, é um tipo de sinal para que outro programador também saiba que aquela variável não deve ser mexida para que o projeto de Engenharia de Software não seja inutilizado ou prejudicado. O entendimento é mais ou menos esse ?

rogelgarcia

Sim… o entendimento é mais ou menos esse…

pmlm

PhoenixWings:

hum eu acho que entendi. Um programador poderia eliminar alguma funcionalidade da aplicação que eu teria criado apenas modificando uma variável de private para public por exemplo. O modificador private acima de tudo, é um tipo de sinal para que outro programador também saiba que aquela variável não deve ser mexida para que o projeto de Engenharia de Software não seja inutilizado ou prejudicado. O entendimento é mais ou menos esse ?

Não. Não tem de haver ‘sinais’ para que um programador saiba que não deve mexer numa variável. Ele para mexer em determinado código tem de saber o que está a fazer.
Uma variável private é algo que é necessário de alguma forma para o funcionamento interno da classe mas que não faz sentido disponibilizar para outras classes verem / acederem.

acjZer0

:roll: Vamos la, uma coisa e são os modificadores de acesso no java , que definem como o cara que programa acessa o recurso de outra classe ex:

com encapsulamento:

int numero = objeto.getNumero();

sem encapsulamento:

int numero = objeto.num;

diferença basica e essa!

agora o que eu acho que você esta querendo e modularizar, para que ninguém veja o código por exemplo:

você vai criar classe 1, ai você vai e compila isso num jar tirando os .java, logo você ira ter modulo1.jar contendo a classe 1 (semelhante a zipar)
assim ela fica compilado , não mais se apresenta em modo texto fica ilegivel.

ai o cara que fizer a classe 2 vai la e importa sua classe 1 de dentro do modulo1.jar assim ele não poderá modifica-la.

e se quiser mais segurança poderá utilizar o : http://www.yworks.com/en/products_yguard_about.html

assim isso tem de ser visto por um profissional capacitado como deverá ser feito pois isso afeta toda arquitetura do software que esta sendo desenvolvido, não deveria ser feito a cada classe e coisa e talz, isso e apenas um exemplo ok !

qualquer duvida estamos ai ! :lol:

PhoenixWings

Obrigado por todas as explicações. Consegui obter uma idéia melhor sobre como é importante o encapsulamento para a Engenharia de Software.

Criado 21 de julho de 2010
Ultima resposta 21 de jul. de 2010
Respostas 9
Participantes 7