Jump to content

[Resolvido] Alguma ideia para resolver métodos cuja variável é uma classe abstracta


Recommended Posts

Posted

tenho a Classe Ponto2D

public class Ponto2D implements Cloneable {

private float mX;
private float mY;

public Ponto2D() {
   this(0,0);
}

public Ponto2D(float x, float y) {
	mX = x;
	mY = y;
}
}

Tenho a Classe FormaGeometrica

public abstract class FormaGeometrica  {

private Ponto2D mCentro;

public FormaGeometrica(Ponto2D centro) {
	this.mCentro = centro;
}

tenho a classe Circulo

public class Circulo extends FormaGeometrica {

protected float mRaio;

protected Circulo(Ponto2D centro, float raio) {
	super(centro);
		this.mRaio = raio;
	}
}

Como será possivel resolver estes 3 metodos em baixo, visto que classe FormaGeometrica é abstracta

pelo que não pode ser instanciada


public class FormaComposta{

//Esta classe deverá conter um atributo que permita guardar ordenadamente um conjunto indeterminado
//de formas geométricas.
private ArrayList<FormaGeometrica> formaGeometrica;

public FormaComposta() {
	this.formaGeometrica = new ArrayList<>();
}

public FormaComposta(ArrayList<FormaGeometrica> formaGeometrica) {
	this.formaGeometrica = formaGeometrica;
}

  /**
 * Seleciona o primeiro elemento que ocupa um determinado ponto. A
 * verificação deve ser efetuada do último elemento para o primeiro.
 *
 * @param p ponto a verificar
 * @return primeiro elemento que ocupa o ponto
 * @throws ElementoInexistenteException se o elemento não existir
 */
@Override
public FormaGeometrica selecionarTopo(Ponto2D p) throws ElementoInexistenteException {
	if (p == null) {
		throw new ElementoInexistenteException("Ponto não existe");
	}
	throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

/**
 * Troca de posição com o elemento imediato seguinte. O método poderá não
 * ser bem sucedido se o elemento de referência for o último.
 *
 * @param elemento elemento de referência para a troca
 * @return true se troca foi bem sucedida. false, c.c.
 * @throws ElementoInexistenteException se o elemento não existir
 */
@Override
public boolean moverParaCima(FormaGeometrica elemento) throws ElementoInexistenteException {
	if (elemento == null) {
		throw new ElementoInexistenteException("Elemento não existe");
	}
	throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

/**
 * Troca de posição com o elemento imediato anterior. O método poderá não
 * ser bem sucedido se o elemento de referência for o primeiro.
 *
 * @param elemento elemento de referência para a troca
 * @return true se troca foi bem sucedida. false, c.c.
 * @throws ElementoInexistenteException se o elemento não existir
 */
@Override
public boolean moverParaBaixo(FormaGeometrica elemento) throws ElementoInexistenteException {
	if (elemento == null) {
		throw new ElementoInexistenteException("Elemento não existe");
	}
	throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.