Modificadores de acesso

7 respostas
rijava

Bom dia galera, beleza?
mais uma vez agradeço a quem for ler e peço desculpas pela pergunta que pode ser ‘besta’;
vamos la.

eu to estudando a apostila caelum e vi o capitulo. modificadores de acesso…
que fala sobre privatizar classes, metodos etc…

la ta falando que o interessante eh voce privatizar todos seus atributos da class…

ficaria assim:

class Pessoa {

private String nome;

private int cpf;

private int idade;

}

public class Main {
public static void main(String[] args) {

Pessoa fichaPessoa;
fichaPessoa = new Pessoa();

fichaPessoa.nome = “Ricardo”;

System.out.println(fichaPessoa.nome);

}

}

se eu executar assim … teoricamente era pra dar certo… mas ele da um erro falnado q esta privado as classes…
minha dúvida é: porque esta dando errado? onde estou errando ?

ps: eu vejo as pessoas aqui postarem seus codigos como se fosse um print screen…
como faço ?
obrigado desde jaá

7 Respostas

J

está dando errado porque vc está justamente setando valores para variaveis privadas (isso não é permitido).

o que você pode fazer um colocar seus atributo como PUBLIC (mais isso não é interessante).

a melhor solução é vc encapsular seus atributos…

crie métodos gets e sets para cada um! (melhor solução!)

abraço.

thiago.correa

Para funcionar você deve criar métodos de acesso a essas propriedades, (os famosos getters and setters)

class Pessoa {
    private String nome;
    
    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getNome() {
        return nome;
    }
}



public class Main { 
    public static void main(String[] args) { 

        Pessoa fichaPessoa; 
        fichaPessoa = new Pessoa(); 

       fichaPessoa.setNome("Ricardo"); 


        System.out.println(fichaPessoa.getNome()); 

    }     

}
deniswsrosa

Funcionaria se vc colocar seu método main dentro da classe Pessoa, mas como seu main está dentro da classe Main ele tenta acessar atributos “privados” de outra classe, no caso, da classe Pessoa.

rijava

Ahhh sim.
entendi agora o funcionamento.

testei aqui e deu certo…
tbm testei o metodo dentro da classe funciona …

galera outra duvida besta…
como faço pra postar tipo um ‘print’ do codigo igual o thiago.correa fez?

obrigado!

deniswsrosa

Use a tag “code” quando estiver postando sua mensagem

//exemplo
int i = 0;
rijava

class teste{ String nome; int idade; } System.out.println("Deu certo, vlw")

aeee, obrigado cara.

pvrsouza

Vc tem que envolver seu código com “[“code”]” “[”/code"]". Sem as aspas.

:wink:

Criado 8 de março de 2010
Ultima resposta 8 de mar. de 2010
Respostas 7
Participantes 5