Criar vetor em Java

Bom dia!

Preciso criar um vetor a partir de uma objeto produto com as seguintes características descricao (nome do produto) e preco.

Já tentei fazer das seguintes formas:

String [ ] descricao = { “arroz”, “feijão”, …};

mas descricao fica invisível para as outras classes, também tentei:

Dentro de uma outra classe que chamei venda, criar o vetor da seguinte forma:

Produto [ ] produto = new produto(“arroz”, 7.00);

mas está dando erro de sintaxe.

Meu programa está com vários erros que não estou sabendo como retirar. Muitas vezes as características ficam invisíveis para as outras classes…

Segue parte do código:

public class Produto {
private String descricao; // Nome dos produtos
private double preco; // Preço dos produtos
int total=0;

public Produto(String descricao, double preco) {	// Construtor para o produto	
	this.setDescricao(descricao);
	this.setPreco(preco);		
}

public double getTotal() {		// Retorna o preço total das vendas
	return total;		
}

public String imprimeProduto(String descricao, double preco) {
	return "Produto: "  + this.getDescricao() + " Total:" + this.total;
}

/**
 * @return the preco
 */
public double getPreco() {
	return preco;
}

/**
 * @param preco the preco to set
 */
public void setPreco(double preco) {
	this.preco = preco;
}

/**
 * @return the descricao
 */
public String getDescricao() {
	return descricao;
}

/**
 * @param descricao the descricao to set
 */
public void setDescricao(String descricao) {
	this.descricao = descricao;
}

}

Classe cliente:

public class Cliente {
private String nome;
private String endereco;

public Cliente() {
	this.setNome(" ");
	this.endereco = " ";
}

public Cliente(String nome) {
	this.setNome(nome);
	this.endereco = " ";
}

public Cliente(String nome, String endereco) {
	this.setNome(nome);
	this.endereco = endereco;
}


public String getEndereco() {		
	return this.endereco;		
}

public void setEndereco(String endereco) {		
	this.endereco = endereco;
}

public String imprimeCliente() {		
	return "Cliente: " + this.getNome() + "\n Endereco: " + this.endereco;
}

/**
 * @return the nome
 */
public String getNome() {
	return nome;
}

/**
 * @param nome the nome to set
 */
public void setNome(String nome) {
	this.nome = nome;
}

}

Classe venda:

public class Venda {
int quantProd = 10;
Date data = new Date();
private Cliente cliente;
private Produto[] produto = new Produto[quantProd];
private int total=0;
private int numProdutos=0;
int i = 0;

public Venda(Date data) {		// Construtor de venda
	this.setProduto(new Produto[quantProd]);
	this.setCliente(new Cliente(null)); 
	this.data = data;
	this.total = 0;
}

public Venda(Date data, Cliente cliente) {	// Sobrecarga 1 do construtor de venda	
	this.setProduto(new Produto[quantProd]);
	this.setCliente(new Cliente());
	this.data = data;
	this.total = 0;			
}

public Venda(Date data, Cliente cliente, Produto[] produto) {	// Sobrecarga 2 do construtor de venda	
	this.setProduto(new Produto[quantProd]);
	this.setCliente(new Cliente(null, null));
	this.data = data;
	this.total = 0;			
}

public double getTotal() {		
		total +=  getProduto()[i].getPreco();
	return total;		
}

void adicioneProduto(Produto[] p) {
	getProduto()[i++].getDescricao();				
}


public Produto getProduto(int i) {
	return this.getProduto(i);
}

public int getNumProdutos() {
    return this.numProdutos;
}

public String imprimeVenda() {
	return data + " " + cliente.nome + " " + produto[i].getDescricao() + " " + produto[i].getPreco(); 
}

}

Tópico duplicado desnecessariamente.

Você possui diversos erros de sintaxe em seus fontes.
A impressão que dá é que está tentando programar na tentativa e erro.
Eu sugiro que modele o seu problema antes de sair codificando loucamente. :wink:

Primeiro você tem que inicializar seu array.

Produto[ ]  produtos = new Produto[3];      // array de 3 posições

Depois pode instanciar produtos nas posições dele:

produtos[0] = new Produto("Arroz", 7.00);   // 0 é a primeira posição
produtos[1] = new Produto("Feijão", 5.00);  // 1 é a segunda posição
produtos[2] = new Produto("Farinha", 3.00); // 2 é a terceira posição

Obrigado pela a ajuda, mas continua dando erro…erroVetor

Vc pode me falar mais sobre meus erros?
Estou começando a programar recentemente com OO, sinceramente estou tendo dificuldades pq confundo com Estruturas do C. E esse programa é um exercício de aula que já veio pré-estruturado para continuarmos segundo o que foi pedido.

a) Implemente as classes em Java e seus relacionamentos.
b) Implemente uma classe Loja que cria objetos do tipo Cliente, Produto e Venda e exibe na tela o cliente
que está realizando uma compra, os produtos comprados e o valor total da venda.
c) Nomeie os relacionamentos entre as classes.
d) Adicione uma classe Caixa à sua modelagem de classes. Um caixa contém uma coleção de vendas. Apenas uma venda é a venda atualmente aberta no caixa. A classe Caixa deve possuir operações para incluir um novo produto na venda atualmente aberta.
e) Adicione um construtor sobrecarregado à classe Venda de modo que se possa criar uma venda passando-se para ela um arranjo de produtos ou a quantidade máxima de produtos da venda.
Observações:
1 – Alguns gets e sets foram sugeridos no diagrama de classes, mas caso precisem/desejem pode incluir
outros métodos de acesso.
2 – Lembre-se de implementar, onde for necessário, arrays como estruturas. Coleções não serão aceitas nesse exercício.
3 – Será preciso aumentar o tamanho dos arrays dinamicamente, ou seja, a cada adição de produto ou venda, já que não foi definido a priori o tamanho desses arrays (propositalmente).

Para ser sincero, já li bastante. Tenho exemplos de programas, mas ainda assim estou com dificuldades de programar…

DiagramaUML

O diagrama inicial que a professora passou foi esse.
Para daí, a gente criar o resto…

Você não pode ter instruções soltas no corpo da classe.
Inicializa o vetor e adiciona os elementos dentro do construtor.

O primeiro passo é você criar as classes com os atributos e métodos exatamente como estão no diagrama.

Feito isso, você pensa em como fazer o resto.

Entendi!

Obrigado!!!

Praticamente o programa está pronto falta tirar uns bugs…

Uma coisa que não entendo:
Como acessar o nome e o endereço na Classe Cliente, e acessar descrição e preço na Classe Produto em Java, estando na Classe Caixa?

Como é que objetos “conversam” entre si?
Através da troca de mensagens.

Como se implementa a troca de mensagens?
Através de métodos.

A classe Cliente não possui um método getNome() e um método getEndereco()?
Se não tem, cria.

A classe Produto não possui um método getDescricao() e getPreco()?
Se não tem, cria.

Entendi…