método para incluir uma Mercadoria no estoque,

[code]/*3) Escrever a classe Mercadoria, cujos atributos únicos são nomeDaMercadoria (String),
quantidade em kg (double) e precoUnitario em reais (double). Em seguida, na mesma
classe, escrever os seguintes métodos.

*/
public class Mercadoria {

    private String nome ;
    private double quantidade ;
    private double precoUnitario ;
    
    /*
     * a) um método construtor que inicialize os atributos por meio de parâmetros
     * (precoUnitario e quantidade não podem ser negativos);
     */
    
            public Mercadoria (double precoUnitario , double quantidade , String nome   ){
                   setQuantidade (quantidade );
                   setPrecoUnitario (precoUnitario);
                   setNome ( nome );
            }
            
           /*
            * b) um método modificador para cada atributo (precoUnitario e quantidade não
            * podem ser negativos);
            */ 
            
            public void setQuantidade (double  quantidade   ){
                if ( quantidade > 0) {
                    this.quantidade =quantidade  ;
                }
            }
            
            public void setPrecoUnitario (double  precoUnitario  )  {
                if ( precoUnitario > 0) {
                    this.precoUnitario =precoUnitario  ;
                } 
            }
            public void setNome (String nome) {
                 this.nome= nome ;
                }
               // c) um método de acesso para cada atributo;
             
            public String getNome () {
                return this.nome ;
            }
            public double getQuantidade () {
                return this.quantidade ;
            }
             public double getPrecoUnitario () {
                return this.precoUnitario ;
            }
            
            /*
             * d) o método dadosDaMercadoria(), que retorna uma String, a qual deve conter a
             * String ?Nome da Mercadoria: ?, seguida do conteúdo do atributo
             * nomeDaMercadoria, seguida da String ?\nQuantidade em Estoque: ?, seguida pelo
             * conteúdo do atributo quantidade, seguida pela String ?\nPreço Unitário (R$): ?,
             * seguida pelo conteúdo do atributo precoUnitario.
             */
            
                 public String  dadosDaMercadoria(){
                     String saida =" " ;
                     saida= saida+  (" Nome da Mercadoria : "  + getNome() + " \nQuantidade em Estoque: " +getQuantidade () + "\nPreço Unitário (R$): " + getPrecoUnitario () ) ;
                     
                     return saida ;
                    }
                }

/*4) Escrever a classe Estoque, cujo atributo único é estoque, que é um ArrayList de
objetos da classe Mercadoria (exercício 3). A seguir, na mesma classe, escrever os
seguintes métodos:
a) um método construtor, sem parâmetros, que inicializa o atributo estoque;

c) um método, o qual recebe por parâmetro o nome da Mercadoria, para remover
uma mercadoria do estoque (Obs.: lembrar que o ArrayList estoque pode estar
vazio ou que a Mercadoria fornecida no parâmetro pode não existir no ArrayList
estoque ? nestes casos, o método deve apenas imprimir uma mensagem
apropriada de erro);
d) um método, o qual recebe por parâmetro o nome da Mercadoria, que imprime
os dados dessa Mercadoria, caso essa Mercadoria exista no estoque;
e) um método, sem parâmetros, que imprima uma lista do todas as Mercadorias
do estoque, incluindo nome, preço unitário e quantidade de cada uma;
f) um método, sem parâmetros, que retorne o valor total do estoque, em reais.
*/
import java.util.ArrayList ;
import java.util.Iterator ;

public class Estoque {

private ArrayList estoque ;

public Estoque () {
    estoque = new  ArrayList() ;
}

/*
* b) um método para incluir uma Mercadoria no estoque, que deve receber, usando
* parâmetros, os dados dessa Mercadoria (nome, preço unitário e quantidade);
*/

public void colocarProdutoNoEstoque(String nomeMercadoria, double precoMercadoria, double quantidadeMercadoria)
{
Mercadoria m = new Mercadoria (nomeMercadoria, precoMercadoria, quantidadeMercadoria);
estoque.add(m);
//JOptionPane.showMessageDialog(null, “Produto colocado no carrinho.”);
}

}

[/code]

está dando erro no construtor da classe estoque onde eu to errando --"

Ahhhhhh diz aí para gente qual é o erro vai :wink:

Olá,

No primeiro argumento voce esta passando uma String, sendo que o construtor recebe um double.
Uma dica é usar a class BigDecimal para trabalhar com valores monetários.

Outra coisa que aparentemente é estranha é a verificação de quantidade e preco > 0. Você realmente precisa disso?

abraço

Estoque.java:39: cannot find symbol
symbol : constructor Mercadoria(java.lang.String,double,double)
location: class Mercadoria
Mercadoria m = new Mercadoria (nomeMercadoria, precoMercadoria, quantidadeMercadoria);
^
Note: Estoque.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error

qual é uma melhor forma de fazer ?
so iniciante

Voce tem que passar os parametros de acordo com os tipos que o construtor ira receber.
Veja:

 public Mercadoria (double precoUnitario , double quantidade , String nome   ){  
                        setQuantidade (quantidade );  
                        setPrecoUnitario (precoUnitario);  
                        setNome ( nome );  
                 }  

e voce está passando

Mercadoria m = new Mercadoria (nomeMercadoria, precoMercadoria, quantidadeMercadoria);  

Troca para

Mercadoria m = new Mercadoria (precoMercadoria, quantidadeMercadoria, nomeMercadoria);  

que frescuraa…shauhs… --"

:shock:

ahh sim!
Os compiladores são muito frescos mesmo! :?