Jump to content
Kingflare

Declaração de campos em java

Recommended Posts

Kingflare

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!

Share this post


Link to post
Share on other sites
tiago.f

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 by tiago.f

Share this post


Link to post
Share on other sites
Kingflare

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!

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.