mirador_22 Posted May 26, 2014 at 12:28 AM Report #556945 Posted May 26, 2014 at 12:28 AM 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. }
Baderous Posted May 26, 2014 at 08:10 AM Report #556949 Posted May 26, 2014 at 08:10 AM Pelo que percebi, nenhum desses métodos implica criar instâncias da classe abstracta, apenas trabalhar com elas.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now