Ir ao conteúdo

Posts recomendados

Postado

Dada a classe ItemOrcamento que representa um item de um orçamento:

public class ItemOrcamento {
  private String historico;
  private float valor;

  public ItemOrcamento(String historico, float valor) {
    this.historico = historico;
    this.valor = valor;
  }

  public String getHistorico() {
    return historico;
  }
  
  public float getValor() {
    return valor;
  }  
}

Escreva uma classe herdeira de ItemOrcamento denominada ItemOrcamentoComplexo que mantenha
um vetor com subitens de orçamento que podem ser da classe ItemOrcamento ou da classe
ItemOrcamentoComplexo. A classe implementa os seguintes métodos:

 

Construtor: Além dos parâmetros da superclasse, recebe como parâmetro o vetor com os subitens de orçamento.

getValor: Sobrescreve o método da superclasse, retornando a soma de valores de todos os subitens de orçamento.

encontraItem: Recebe como parâmetro o histórico de um subitem (String) e retorna o objeto correspondente ao subitem que possui este histórico, se existir. Se não existir retorna null.

 

 

Eu fiz a classe ItemOrcamentoComplexo

 

public class ItemOrcamentoComplexo extends ItemOrcamento{
  ItemOrcamento subItens[];
  
  public ItemOrcamentoComplexo(String historico, float valor, ItemOrcamento[] subItens) {
    super(historico, valor);
    this.subItens = subItens;
  }
  
  @Override
  public float getValor() {
    float somaValores = 0;
    for (int i = 0; i < subItens.length; i++) {
      somaValores += subItens[i].getValor();      
    }
    return somaValores;
  }

  public ItemOrcamento encontraItem(String historico) {
    for (int i = 0; i < this.subItens.length; i++) {
      if (this.subItens[i].getHistorico().equals(historico)) {
        return subItens[i];
      }
    }
    return null;
  }
  
}

E a main

 

public class Questao02 {
  public static void main(String[] args) {
    ItemOrcamento[] subItens = new ItemOrcamento[4];
    
    subItens[0] = new ItemOrcamento("Pão de centeio", 1.25f);
    subItens[1] = new ItemOrcamento("Marraqueta", 1.30f);
    subItens[2] = new ItemOrcamento("Hallula", 1.90f);
    subItens[3] = new ItemOrcamento("Pão alentejano", 2.4f);
    
    ItemOrcamentoComplexo itemComplexo = new ItemOrcamentoComplexo("Paes", 20, subItens);
    
    ItemOrcamento procurar;
    
    procurar = itemComplexo.encontraItem("Hallula");
    
    if (procurar != null) {
      System.out.println(procurar.getHistorico() +" R$" + procurar.getValor());
    } else {
      System.out.println("Não existe");
    }
    
    ItemOrcamento itemNormal = new ItemOrcamento("Cabo", 25.3f);
    
    System.out.println(itemNormal.getHistorico() +" R$" + itemNormal.getValor());
   
    
  }
}

 

Minha duvida é: 

 

"Escreva uma classe herdeira de ItemOrcamento denominada ItemOrcamentoComplexo que mantenha
um vetor com subitens de orçamento que podem ser da classe ItemOrcamento ou da classe
ItemOrcamentoComplexo"

 

Como o vetor pode ser da classe "ItemOrcamentoComplexo" ?

Porque se o vetor for do tipo "ItemOrcamentoComplexo", quando eu for instanciar um novo subitem, este vai precisa de um outro sub item e este de outro, assim por diante.

 

image.thumb.png.61538478d120ec4335813aacefc8f088.png

 

 

E outra duvida, quando for criar um "ItemOrcamentoComplexo", é necessário passar o nome, o valor e o vetor de subItens. Para que serve este valor, já que o calculo do "valor do ItemOrcamentoComplexo" é a soma dos subitens ?

 

  • 1 ano depois...
Postado

Boa noite colegas, hj venho a enfrentar o mesmo problema .. o codigo a cima encontra-se correto? se sim ... estou precisando de um suporte para as demais questões do mesmo conteudo q o colega estava fazendo na epoca.

Segue a questão em si q nao consigo executar

crio q eh algo simples e eu n estou sabendo..

Pede apenas o metodo

 

 

Java2.png.4dbf449278b07c6b0719e5127e363b2a.png

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!