Duvida de interface

8 respostas
D

olá galera estou começando no basico do basico de java e preciso fazer um exercico onde, eu receba as “letras” e coloque cada uma delas em um vetor de char, pois não posso dentro da classe usar String, estou tendo altos problemas em criar um construtor onde receba + de uma letra sem que isso seja declarado como string, alguem pode me ajudar? olhem o que eu tinha em mente mais ou menos:

8 Respostas

rxca

Cara, não entendi direito… o problema quer que você receba um vetor de char como parâmetro e copie pra outro, é isso?

D

seguinte o objetivo do exercico é criar uma classe basica que faça mais ou menos o que uma classe String faz sacou? eu tenho que receber letras(tanto faze se for 1 por 1 + eu acho que o professor quis dizer receber uma palavra) porem nao posso declarar essa palavra que vai ser recebida como String, então eu pensei em vetor de char[] ou não sei se seria o caso do parametro do construtor receber um “CharSequence”, se eu usasse o vetor de char, no construtor eu precisaria de um laço for? para colocar cada letra em 1 posicao? ou mais ou menos daquele jeito já funcionaria?

resolvendo o meu construtor eu acho que consigo arrumar a logica do ultimo metodo para fazer com que ele me retorne um pedaço da “palavra” que seria o meu vetor no caso

Vingdel

Olá meu amigo, DayWalk3r!

Antes de mais nada, seja bem-vindo ao GUJ!

Com a finalidade de facilitar a leitura do seu código e consequentemente facilitar a vida de quem vem te ajudar, faça uma edição na sua postagem inicial e coloque seu código entre as tags [code] [/code ].

Para isso basta você ir na sua postagem e clicar em EDITAR e na janela selecione o código e clique no botão "Code" que fica logo acima da área da edição da mensagem.

De uma lida nas regras do forum e divirta-se.

Abraço e até mais!

rxca

Então, na verdade, não se instancia uma interface; esse pedaço de código aqui

public CharSequence subSequence(int inicio, int fim){ AulaInterface sequencia = new AulaInterface(palavra); AulaInterface pedaco = new AulaInterface(palavra); int i; int cont; cont = 0; for(i = inicio; i <= fim; i++){ pedaco.palavra[cont] = sequencia.palavra[i]; cont++; } return pedaco; }

Não vai funcionar, porque a interface não se instancia, você simplesmente usa o implements pra que você implemente na sua classe os métodos que foram somente declarados na interface CharSequence nesse caso.

D

desculpe o nome da minha classe é meio idiota e pode ter causado confusão + eu não estou instanciando uma interface eu estou instanciando a minha classe que se caham AULAINTERFACE, que nada mais deveria ser do que um vetor de char[], bem eu agradeço a sua resposta mesmo assim acho que vou esperar pela correção mesmo, obrigado pelo seu tempo amigo

D

esqueçe amigo eu resolvi o problema é que eu estou aprendendo com aquela porcaria de bluej e ainda não sei nem as sintaxes corretas, eu agora passei direitinho o vetor de char para a classe q funciona perfeitamente, muito obrigado a todos, pela atençao

Vingdel

Coloque a solução aqui amigão… Assim sua dúvida pode sanar a de outros…

D
public class AulaInterface implements CharSequence{
    private char[] palavra;
    private CharSequence sequencia; 
    public AulaInterface(CharSequence sequencia){
    this.sequencia = sequencia;
    }
    
    public  AulaInterface(char[] palavra){
        this.palavra = palavra;
    }

    public void setPalavra(char[] palavra){
        this.palavra = palavra;
    }

    public char[] getPalavra() {  
        return palavra;  
    }  

    public int length(){
        return palavra.length;
    }

    public char charAt(int indice){
        return palavra[indice];
    }

    public CharSequence subSequence(int inicial, int fim){
        return sequencia.subSequence(inicial, fim);
    }

}

isso faz praticamente o que eu precisava ^^

Criado 4 de maio de 2011
Ultima resposta 4 de mai. de 2011
Respostas 8
Participantes 3