Variável dentro de uma classe

Estou acrescentando em um programa uma função, tenho duas classes:

public class programa {

   protected void doPoll {
	
	        try {  
                             if (getInSerialStream().available() == 0) {

                                                 if (valor != x) {    //diferente 
                                                 System.out.print("O valor é" +valor);
                                                 x = valor;
                                                }

                      }
    
              }
        }      
}

No caso acima onde a variável INT X deve ser declarada, dentro da classe Public ou protected? Pois a próxima vez que a sentença if (getInSerialStream().available() == 0) for verdadeira a variável X deve armazenar a variável VALOR, para não repetir, somente executa novamente quando o VALOR muda. O que preciso é que variável X armazene o valor para próxima execução se eu declarar essa variável dentro protected, Try ou if ela seria criada novamente e apagada correto?

No exemplo acima eu resumi para facilitar o entendimento.

Eu sou meio suspeito… não gosto muito de protected (salvando algumas exceções). E public também, não sei, não cheira muito bem pra uma boa variedade de casos…
Colocaria private, getter e setter. Mas é minha opinião :smiley:

Mesmo porque, se você coloca private, se você mexe com a variável dentro da classe, ela é reconhecida perfeitamente… se você mexe com ela fora da classe, é pelo getter/setter.

Isso é uma adição de outro opção em software já existente, não posso alterar o tipo de classe.

Alguém sabe, se está certo o que eu disse?