Kingflare Posted January 30, 2016 at 09:11 PM Report Share #592824 Posted January 30, 2016 at 09:11 PM Olá, boa tarde! Estou aprendendo java e peguei um exercício no qual ele me dava a seguinte classe: class Pilha { static int TAM_MAX = 1000; int valores[]; int topo; } a) Monte um construtor para a classe acima; //Consegui resolver sem problemas b) Altere a declaração dos campos de forma que estes não possam ser modificados fora da classe Pilha."Eu não entendi isso, como assim não ser alterado fora da classe pilha? Essa parte eu gostaria de pedir ajuda de vocês, o que seria essa declaração que impede a modificação? Desde já, agradeço! Link to comment Share on other sites More sharing options...
tiago.f Posted January 30, 2016 at 09:27 PM Report Share #592826 Posted January 30, 2016 at 09:27 PM (edited) Olá, o ambito por omissão das propriedades e funções é do pacote(package). Nesse exemplo, qualquer uma das 3 propriedades pode ser alterada por outra classe que pertence ao mesmo package. Para evitar isso deves declará-las como "private": private static int TAM..... etc, etc Podes depois criar métodos dentro da classe pilha que permitam a outras classes alterar este campos. Exemplo: Class Pilha { private static int TAM_MAX = 1000; private int valores[]; private int topo; public void setTopo (int t) { if (t>0) topo = t; } public int getTopo(){ return topo; } } Assim, permites a outras classes alterar o valor da propriedade "topo", mas de forma condiciona/indirecta. - Neste exemplo só deixas que sejam atribuidos valores maiores que zero. EDIT: lê isto: https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html Edited January 30, 2016 at 09:32 PM by tiago.f Link to comment Share on other sites More sharing options...
Kingflare Posted January 30, 2016 at 09:51 PM Author Report Share #592828 Posted January 30, 2016 at 09:51 PM Olá, muito obrigado pela resposta! Lerei esse link 'que mandastes. Resumindo, era necessário somente então que declarasse os atributos como private? Obrigado pela resposta! Link to comment Share on other sites More sharing options...
tiago.f Posted January 30, 2016 at 09:57 PM Report Share #592829 Posted January 30, 2016 at 09:57 PM Sim! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now