Ir ao conteúdo
  • Cadastre-se
Caleg

União e intersecção - orientação a objetos

Recommended Posts

Boa tarde. Estou fazendo um exercício de orientação a objetos em java e só não consegui 2 métodos.

 

O exercício completo pede para eu criar uma interface chamada IntSetInterface que irá armazenar inteiros no intervalo de 0 a 50, e essa interface deve ter os métodos add, removeunion, intersec e equals.

Depois, devo criar a classe IntSetInterfaceImpl para implementar a IntSetInterface e essa classe deve ter apenas os métodos add e remove

IntSetInterfaceImpl representará o conjunto de números inteiros de 0 a 50 através de um array de inteiros. O elemento do array é 1 se o inteiro i estiver no junto e o elemento do array[j] é 0 se o inteiro não estiver no conjunto. O construtor sem argumento inicia o array Java como 'conjunto vazio' (todos os valores 0).

Por fim, devo ter a classe IntSet que será filha de IntSetInterfaceImpl  e que implementará os métodos union, intersec, toString e equals.

 

As minhas dúvidas são nos métodos union e intersec, pois não consegui pensar em uma maneira de criar os métodos corretamente:

 

Método union : retorna um novo IntSetInterface proveniente da união do IntSetInterface atual com um segundo recebido por parâmetro.

Método intersec: retorna um novo IntSetInterface proveniente da intersecção do IntSetInterface atual com um segundo recebido por parâmetro.

 

package Exercicio1;

/**
 *
 * @author Camila
 */

public interface IntSetInterface {

  	public void add(int k);
  	public void remove(int m); 
  	public IntSetInterface union(IntSetInterface a); 
  	public IntSetInterface intersec(IntSetInterface a);
  	public String toString();

  	
} 
package Exercicio1;

/**
 *
 * @author Camila
 */
public abstract class IntSetInterfaceImpl implements IntSetInterface {
    int listaNumeros[] = new int[51];
    
    IntSetInterfaceImpl(){
        for(int i = 0; i<=50; i++){
            listaNumeros[i] = 0;
        }
    }
    public void add(int k) {
        listaNumeros[k] = 1;
    }
    public void remove(int m) {
        listaNumeros[m] = 0;
    }
    
	
}
package Exercicio1;

/**
 *
 * @author Camila
 */
public class IntSet extends IntSetInterfaceImpl {
    
    public IntSetInterface union(IntSetInterface a) {
        IntSetInterface uniao = new IntSet();
        
          //DUVIDA AQUI
        
        return uniao;
    }
    public IntSetInterface intersec(IntSetInterface a) {
        IntSetInterface intersec = new IntSet();
        
        // DUVIDA AQUI
        
        return intersec;
    }
    
    public String toString() {
  	String numeros = "";
        
        for(int i = 0; i<=50; i++){
            if(listaNumeros[i] != 0)
               numeros = numeros + i + ",";
        }                
        return numeros;
    }
    
    public boolean equals(IntSet setNum){
        
        return (this.toString()).equals(setNum.toString());
    }
}

Se puderem me ajudar ficarei realmente grata. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×