Buscar

Programação Orientada a Objetos em Java

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Primeira Prova de Programac¸a˜o Orientada a Objetos
2009.1
Prof. Renato Cerqueira
Questa˜o 1 (2,5 pontos)
Explique o que e´ necessa´rio em Java para que um me´todo declarado numa subclasse possa rede-
finir um me´todo de sua super-classe. Use exemplos de declarac¸o˜es para ilustrar sua explicac¸o˜es.
Questa˜o 2 (7,5 pontos)
Considere a definic¸a˜o de uma interface IntSet que representa um tipo abstrato de dados conjunto
de inteiros, conforme as declarac¸o˜es a seguir:
public inter face I n tSe t {
void i n s e r t ( i n t x ) ; / / ad ic iona um elemento ao conjunto
void i n s e r t A l l ( i n t [ ] v ) ; / / ad ic iona v a´ r i os elementos ao conjunto
void remove ( i n t x ) ; / / remove um elemento do conjunto
boolean i s I n ( i n t x ) ; / / t e s t a se x pertence ao conjunto
i n t s ize ( ) ; / / re to rna a ca rd ina l i dade do conjunto
void f o r A l l ( V i s i t o r v ) ; / / v i s i t a todos os elementos do conjunto
}
public inter face V i s i t o r {
void v i s i t ( i n t x ) ;
}
1. (2,5 pontos) Defina em Java uma classe IntSetImpl que implemente a interface IntSet.
2. (2,5 pontos) Implemente uma classe IntSetUtil que oferec¸a as seguintes operac¸o˜es:
public class I n t S e t U t i l {
s ta t i c public I n tSe t i n t e r s e c t i o n ( I n tSe t a , I n tSe t b ) ; / / re to rna a in te rcess a˜o de a e b
s ta t i c public I n tSe t union ( I n tSe t a , I n tSe t b ) ; / / re to rna a unia˜o de a e b
}
Obs.: Sua classe IntSetUtil pode ter outros membros na˜o pu´blicos.
3. (2,5 pontos) Considere que uma aplicac¸a˜o precisou implementar um mecanismo que per-
mita contar quantos elementos sa˜o adicionados a um conjunto. Para isso o desenvolvedor
da aplicac¸a˜o estendeu uma outra classe IntSetImpl2, que tambe´m e´ uma implementac¸a˜o da
interface IntSet, da seguinte forma:
public class I n tSe tEx t extends I n tSe t Imp l2 {
private in t i nse r tCoun te r = 0 ;
public void i n s e r t ( i n t x ) {
i nse r tCoun te r ++;
super . i n s e r t ( x ) ;
}
public void i n s e r t A l l ( i n t [ ] v ) {
i nse r tCoun te r += v . leng th ;
super . i n s e r t A l l ( v ) ;
}
public in t getCounter ( ) {
return i nse r tCoun te r ;
}
}
1
Ao testar essa nova classe com o co´digo a seguir, o usua´rio obteve como resposta 6, ao inve´s
de 3.
public class Main {
public void main ( S t r i ng [ ] args ) {
I n tSe tEx t s = new I n tSe tEx t ( ) ;
s . i n s e r t A l l (new in t [ ] {15 ,7 ,23} ) ;
System . out . p r i n t l n ( s . getCounter ( ) ) ;
}
}
Apresente uma possı´vel explicac¸a˜o para esse comportamento e descreva como esse pro-
blema poderia ser resolvido.
2

Outros materiais