Ir ao conteúdo
  • Cadastre-se

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


Posts recomendados

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. 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...