Como implementar metodos [Resolvido]

Bom dia,

Criei uma estrutura para implementar minhas aplicações. Tentei criar uma Interface, para acrescentar ao codigo em desenvolvimento esses metodos, porém os metodos “private” não consigo gerar a partir da Interface.

Exite alguma forma de conseguir esse resultado?

[]s

Ueh, voce não pode declara-los como publicos não???

Coloque o metodo como protected
So as classes que herdarem ela poderam acessar o metodo

Não da. Todos os métodos de uma interface são públicos e abstratos, você tem sobrescrever eles. Pelas regras de sobrescrição você não pode diminuir a visibilidade de um método. Sendo assim não pode usar protected também.

A interface é feita justamente para EXPOR métodos porque voce ia querer que esses métodos fossem private?

Diabo Louro tem razão.

Não faz sentido que uma interface tenha métodos private.

Quando eu falei protected esqueci de dizer que teria que ser classe abstrata

Tem que avaliar se no seu caso e melhor uma classe abstrata ou uma interface se for interface é so public

Uma outra possibilidade é implementa-los numa inner class abstrata.

É, geralmente, uma boa forma de implementar interfaces sem expor coisas na sua classe desnecessariamente.

Boa noite,

josue carrecon, Diabo Loiro: sim, preciso deles private. :slight_smile: Estou usando esse recurso para melhorar a leitura/manutenção de um código de GUI.

leonardobhbr, vou tentantar uma classe abstrata. Se funcionar posto a respeito.

ViniGodoy, encontrei um exemplo de inner: :slight_smile:

// ...
private class InnerEvenIterator {
        //start stepping through the array from the beginning
        private int next = 0;
        
        public boolean hasNext() {
            //check if a current element is the last in the array
            return (next <= SIZE - 1);
        }
        
        public int getNext() {
            //record a value of an even index of the array
            int retValue = arrayOfInts[next];
            //get the next even element
            next += 2;
            return retValue;
        }
    }
// ...

fonte: http://download.oracle.com/javase/tutorial/java/javaOO/innerclasses.html

Não sei se fiz a interpretação correta, mas parece a declaração de uma classe, com o acesso “private”. Caso tenha feito, realmente se torna equivalente ao metodo “private”. É isso mesmo? Caso seja, qual a vantagem de um pra outro?

Obrigado a todos :smiley:

[]s

Boa tarde,

leonardobhbr, a classe abstrata permite que defina o modificador como protected. Isso já permite que, metedos sejam implementados, e isolados quando o objeto é contruido.

Porém para implementar, preciso de usar herança e java não suporta herança multipla. A solução é gerar um modelo (template) para uso para garantir a estrutura.

Obrigado pela ajuda que deram pois, contribuiu para o aprendizado de recursos valiosos para uso.

[]s