O documento apresenta dois exercícios sobre interfaces em Java. O primeiro exercício pede para implementar a interface CharSequence de forma a manipular a sequência de caracteres original de forma invertida. O segundo exercício pede para criar uma classe Linha que implemente a interface Relacao, permitindo comparar objetos dessa classe.
1. Exerc´
ıcios
Exerc´cio 1 – interface CharSequence
ı
Interface CharSequence – sequˆncia leg´ de caracteres.
e ıvel
Oferece acesso de leitura uniforme para muitos tipos de
sequˆncias de caracteres. M´todos declarados:
e e
char charAt(int index)– retorna o caracter no ´
ındice
especificado; int length() – retorna o tamanho da
sequˆncia de caracteres; CharSequence subSequence(int
e
start, int end) – que retorna uma nova sequˆncia de
e
caracteres com uma subsequˆncia desta sequˆncia;
e e
String toString() – que retorna uma string contendo os
caracteres desta sequˆncia.
e
Escreva uma classe que implemente CharSequence. Sua
implementa¸˜o deve manipular a sequˆncia original de
ca e
caracteres s´ que invertida. Escreva um m´todo main
o e
para executar todos os m´todos implementados. (Obs:
e
utilize um atributo do tipo String)
DCT–UNIFESP | Exer´
ıcios – Interface 2/3
2. public class Exercicio01 implements CharSequence {
private String cadeia;
public String getCadeia() {
return cadeia;
}
public void setCadeia(String cadeia) {
this.cadeia = cadeia;
}
public Exercicio01(StringBuffer a){
cadeia = new String(a.reverse());
}
public char charAt(int index) {
return cadeia.charAt(index);
}
public int length() {
return cadeia.length();
}
public CharSequence subSequence(int start, int end) {
return cadeia.substring(start,end);
}
public String toString (){
return "String ivertida: " + cadeia;
}
public static void main(String gs) {
ar
StringBuffer x = new StringBuffer("teste");
Exercicio01 a = new Exercicio01(x);
System.out.println("Caracter na posicao 0: "+ a.charAt(0));
System.out.println("Tamanho da String: " + a.length());
System.out.println("Subsequencia escolhida: " + a.subSequence(1, 3));
System.out.println(a.toString());
}
}
3. Exerc´
ıcios
Exerc´cio 2 – interface Relacao
ı
Dada a seguinte interface que define classes cujos objetos
podem ser comparados:
public interface Relacao {
public boolean maiorQue(Object b);
public boolean menorQue(Object b);
public boolean igualA(Object b);
}
Crie uma classe Linha que implementa essa interface.
Observa¸˜o: requer downcast.
ca
DCT–UNIFESP | Exer´
ıcios – Interface 3/3
4. public class Linha implements Relacao {
private int comprimento;
public Linha(int comprimento){
this.comprimento = comprimento;
}
@Override
public boolean igualA(Object b) {
if (this.comprimento == ((Linha)b).comprimento)
return true;
else
return false;
}
@Override
public boolean maiorQue(Object b) {
if (this.comprimento > ((Linha)b).comprimento)
return true;
else
return false;
}
@Override
public boolean menorQue(Object b) {
if (this.comprimento < ((Linha)b).comprimento)
return true;
else
return false;
}
public static void main(String[] args) {
Linha a = new Linha(6);
System.out.println(a.igualA(new Linha(6)));
System.out.println(a.maiorQue(new Linha(4)));
System.out.println(a.menorQue(new Linha(1)));
}
}
5. public interface Relacao {
public boolean maiorQue(Object b);
public boolean menorQue(Object b);
public boolean igualA(Object b);
}