Duvida private

alguém pode me dizer pra serve private

Serve para esconder (encapsular) os seus atributos ou métodos. Tornas os atributos de uma classe privados é uma boa prática, pois dá mais segurança ao sistema.

valeu brigado e se puder me responder pra que serve o get e o set e se puder me dar um exemplo utilizando ele to començando a ver java agora na facu e to apanhado muito
fiko grato

Jefferson costa
GRADUANDO
CC IESFASC

os métodos get e set são uma convenção. Usa-se os set quando se deseja mudar o valor de uma variavel private em outra classe e os get vc usa quando quiser retornar esse valor.

EX.:

public class Pessoa
{
private String nome;

public void setNome(String n) //modifica o nome dessa classe
{
nome= n;
}

public String getNome() //retorna o nome para a classe chamadora
{
return nome;
}
}

Essa classe representa uma pessoa e deve ser usada por outra clase QUE SÓ VAI PODER ACESSAR A VARIÁVEL PRIVATE nome ATRAVÉS DOS MÉTODOS SET E GET

Por exemplo:

[code]public class Pessoa
{
private String nome;
private String telefone;
private float dinheironobanco;

public void setNome(String parametronome)
nome= parametronome;
}

public String getNome()
{
return nome;
}

public void setTelefone(String parametrotelefone) {
telefone = parametrotelefone;
}

public String getTelefone() {
return telefone;
}

public void setDinheironobanco(floag parametrodinheiro) {
dinheironobanco = parametrodinheiro;
}

public float getDinheironobanco () {
return dinheironobanco;
}
}[/code]

Para que entenda o motivo dos get’s e set’s saiba que por convenção, todos os atributos de uma classe tem que ser privados( para garantir o encapsulamento) e acessados por métodos publicos(get’s e set’s).

Abraços!

PS: As IDE’s fazem os gets e sets para você automaticamente…

Verdade, bem lembrado…
No NetBeans, depois de ter declarado os atributos, dá um clique com o botão direito na janela de códigos, REFATORAR>ENCAPSULAR CAMPOS…

No eclipse não sei porque ainda não uso.

Cara ,um exemplo muito legal do uso de set e get está na página 263, 264 e 265 do Java como Programar, Deitel.
No exemplo ele utilizar sobrecarga de métodos em 5 tipos diferentes de construtores, todos usam o ponteiro this para referenciar o construtor “principal” que recebe três parâmetros, e atribui os valores através da chamada ao método setTime(), dentro desse método os valores são atribuídos com os métodos sets.
Dentro desse sets ele faz um pequeno controle para ver se os valores são consistentes. Por exemplo, um dos atributos é dia, assim sendo, ele não pode ser negativo ou maior que 31, no set utilizando um operador ternário ele faz esse teste antes de atribuir o valor.
Não sei se quando ele faz esse teste dentro de um set, foge do padrão dos métodos set que é apenas para atribuição, mas é bem legal esse exemplo, porque você vê o set sendo extensivamente utilizado por outros métodos.
Depois ele também dá uma utilizada no get.

no netbeans pode ser também com botão direito inserir código depois você tem opção de colocar setter e getter, construtor e etc ajuda bem.
Leia o capítulo 8 do Deitel Java como Programar você poderá elucidar boa parte das suas duvidas

Em java existem os modificadores de acesso:

public, protected, default e private.

Cada modificador de acesso tem a sua finalidade.

public é o modificador de acesso “mais aberto” o que significa que todas as suas classes, de todos os seus pacotes podem acessalo e modifica-lo doretamente.

protected e default são quase iguais, mas tem uma diferença:
protected é um modificador de acesso intermediario e ele permite que todas as classes do mesmo pacote possam acessar esse atributo (quando o atributo é declarado como protected, ele pode ser acessado pela subclasse (através da herança))
enquanto um atributo default só poderá ser acessado se a classe que tertar acessa-lo pertencer ao mesmo pacote.

O modificador private é o modificador mais restritivo, ele faz com que ninguém de nenhuma classe , nenhum pacote e nem as classes que herdam da classe que contem esse atributo, possa acessa-lo diretamente.

Isso é bom por causa do encapsulamento.

Mas de que adianta eu ter atributos se eu não posso modifica-los e nem acessa-los?

Para fazer isso, vc deve obrigar quem quiser modificar esse atributo a modifica-lo atraves de um metodo e acessa-lo tb atraves de um metodo.

São os gets e sets.

Somente utilizando os metodos get e set alguem poderia acessar ou modificar um atributo privado e isso é bom tb, porque deixa o seu codigo mais consistente e menos propenso a erros.

Os gets e sets tem a seguinte cara.


//declaração do atributo
private int atributo;

public void setAtributo(int atributo){
   this.atributo = atributo;
}
public int getAtributo(){
    return this.atributo;
}

quando vc precisar setar ou acessar um metodo private vc vai então utilizar os metodos supra-citados:

class MinhaClasse(){
    public static void main(String[] args){
        ClasseGetSet cgs = new ClasseGetSet();
        cgs.setAtributo(10); // seta o valor de atributo em 10
        int valorx = cgs.getAtributo(); // Pega o valor e atribui a valorx

    }

}

Os métodos get e set devem ser públicos, afinal temos que acessa-los.
Não use gets e set a rodo, não é uma boa pratica existe hora para usa-los e as vezes não devemos mesmo modificar um atributo privado.

Abraços

nova pergunta praqu serve o void e me de um exemplo usando ele

void é uma palavra reservada em java e serve para dizer que o seu metodo não vai retornar coisa alguma void = vazio.

Então vc tem o metodo:

public void setAtributo(int atributo){
    this.atributo = atributo
}

como esse é um metodo que apenas atribui um valor a um atributo e não retorna nada a ninguem, dizemos que ele é void.

ja neste segundo caso

public int getAtributo(){
    return = this.atributo
}

Aqui estamos chamando um metodo que vai me retornar alguma coisa e essa coisa é de um tipo. No caso o tipo é int, então declaramos “public int”. Esse metodo vai retornar um valor do tipo inteiro.

para ilustrar

A declaração do metodo é a seguinte:

private               int                              meuMetodo(int parametro){
//modificador      tipoDeRetorno             nomeDoMetodo
    

    return valor;
    //o que retorna
}

Entendeu?

para que entenda um pouco mais do motivo…

o motivo é mais ou menos esse

public class RecipienteDeJornais {
     public int quantidade = 0;
      
     public void inserirJornal() {
          quantidade = quantidade + 1;
          System.out.println("inserindo um jornal");
     }
     public boolean removerJornal() {
          if (quantidade < 1) {
               System.out.println("não há mais jornais");
              return false; 
          } else {
               quantidade = quantidade-1;
               System.out.println("jornal removido");
               return true;
          }
     }

     public int getQuantidade() {
          return quantidade;
     }
}[/code]


sua classse parece segura não é ?? o seu recipiente de jornais nunca será negativo, afinal vc testa antes de remover 1 jornal, para saber se não esta zerado, e retorna verdadeiro quando o jornal é retirado e falso quando não há mais jornais.

só que &quot;quantidade&quot; é uma propriedade publica, então outro classe pode fazer

[code]RecipienteDeJornais recipiente = new RecipienteDeJornais();

recipiente.insereJornal();
recipiente.insereJornal();
recipiente.insereJornal();

System.out.println(recipiente.getQuantidade()); //imprime 3

recipiente.removeJornal();
recipiente.removeJornal();
recipiente.removeJornal();
recipiente.removeJornal();
recipiente.removeJornal();
recipiente.removeJornal();

System.out.println(recipiente.getQuantidade()); //imprime 0

só que ai, alguem pode chegar e

recipiente.quantidade = -30;

afinal a propriedade não é privada, e portanto o estado dela pode ser alterado, tornando o objeto que tem a propriedade incosistente… afinal vc não estava prevendo um valor negativo para esta propriedade…

por isso deve-se sempre manter privados…

getters só deve existir quando a informação pode sair de dentro do objeto

e setters só deve existir quando alguem de fora pode alterar o estado do objeto… e com um setter vc pode previnir que um usuário insira um dado errado em seu objeto, torando seu estado incosistente…

valeu cara vcs sao 10

=)
Se resolveu, vá ao primeiro post, clique editar, e acrescente [RESOLVIDO]