Simplificando código

Olá pessoal, eu de novo … é que gosto muito de fazer perguntas :smiley: Gostaria se posso simplificar esse código:


public class Teste {

	public static void main(String[] args) {
		
		//Criando Loja
		Loja MagazineLuiza = new Loja("MagazineLuiza");
		
								
		//Criando funcionários
		
		Funcionários Rafael = new Funcionários("Rafael Dessotti", 1000, "Vendedor");
		Funcionários Victor = new Funcionários("Victor Celeri", 1000, "Vendedor");
		Funcionários Auzimar = new Funcionários("Auzimar Dessotti", 3500, "Gerente");
		
		
		//Adcionando a minha Loja
		MagazineLuiza.funcionário[0] = Rafael;
		MagazineLuiza.funcionário[1] = Victor;
		MagazineLuiza.funcionário[2] = Auzimar;
		
		
		//Criando produtos
		Produtos Geladeira = new Produtos("Geladeira", 700);
		Produtos Fogão = new Produtos("Fogão", 400);
		Produtos Televisão = new Produtos("Televisão", 600);
		
		
		//Adcionando produtos na minha Loja
		MagazineLuiza.produto[0] = Geladeira;
		MagazineLuiza.produto[1] = Fogão;
		MagazineLuiza.produto[2] = Televisão;		
		
		
		//Imprimindo
		System.out.println("Primeiro funcionário: " + MagazineLuiza.funcionário[0].getNome()+ " com salário de " + MagazineLuiza.funcionário[0].getSalário());
		System.out.println("Segundo funcionário: " + MagazineLuiza.funcionário[1].getNome() + " Com salário de " + MagazineLuiza.funcionário[1].getSalário());
		System.out.println("Terceiro funcionário: " + MagazineLuiza.funcionário[2].getNome() + " Com salário de " + MagazineLuiza.funcionário[2].getSalário());
		System.out.println("Primeiro Produto: " + MagazineLuiza.produto[0].getNome() + " no valor de " + MagazineLuiza.produto[0].getvalor());
		System.out.println("Segundo Produto: " + MagazineLuiza.produto[1].getNome() + " no valor de " + MagazineLuiza.produto[1].getvalor());
		System.out.println("Terceiro Produto: " + MagazineLuiza.produto[2].getNome() + " no valor de " + MagazineLuiza.produto[2].getvalor());
		
	}

}

O que eu gostaria de simplificar é o seguinte: no código a cima eu tenho que criar cada funcionário e relacionar com o array “funcionários” da class Loja. Teria como quando eu criasse o funcionário ele já se relacionasse direto com o array funcionários da class Loja? Para criar um funcionário eu usei um método construtor da class Funcionários o código é assim:

public Funcionários(String nome, double salário, String cargo){
		this.nome = nome;
		this.salário = salário;
		this.cargo = cargo;
	}

Ele cria o funcionário certinho, mas depois eu tenho que digitar outra linha pra ele relacionar com o array funcionários da Loja… queria que ele fissese isso direto, como faço? O mesmo se dá com os produtos. Eu crio eles mas preciso relacioná-los com o array produtos da class Loja.

Fora isso se tiver outra maneira de otimizar o programa falem ai por favor. Obrigado

Para dar uma melhoradinha separe a apresentacao de dados da classe principal crie uma separada e chame no main

Obrigado lgweb. Entendi o esquema então. No código anterior tinha duas duas maneiras de chamar os método da class Funcionários, no caso Rafael.getNome por exemplo, e MagazineLuiza.funcionário[0].getNome; Do geito que vc falou não existe a referencia Rafael por que não foi criada, simplificando… É isso mesmo? Achu que to começando a entender isso(Java)…hehehe
Valew

<OFF-TOPIC>
Embora tanto Java quanto C# permitam que você use classes, variáveis e constantes com nomes acentuados (ou em ideogramas, ou qualquer coisa que o Unicode aceite), é aconselhável não usar esses nomes acentuados para evitar problemas mais tarde.
Se depois você for trabalhar com isso (Java, C#, etc.) você vai descobrir que dá mais problemas do que ajuda.
E para você um programa HelloWorld em Japonês:

/**
  * "Bom dia, mundo!"
  */
class こんにちは世界{ 
    public static void main(String[] args) {
        int ありがとうございました = 7; // Obrigado
        System.out.println ("こんにちは、世界!"); // Bom dia, mundo!
    }
}

</OFF-TOPIC>

Tá to começando mas também … não precisa abusa né… HelloWord em Japonês!!!

Só tou brincando.
É que normalmente a gente costuma judiar de quem está começando mostrando uma coisa dessas : se você põe acentos nos seus programas, então o japinha do seu lado (aquele que você não conseguiu matar no cursinho para que ele não entrasse na faculdade e roubasse sua vaga) tem o direito de escrever um programa em japonês :stuck_out_tongue: - e o pior é que o Java aceita direitinho, passando os parâmetros certos para o Javac.

ahueaiueha
To (tentando) aprender Java na raça, algumas apostials e o livro da Deitel “Java Como programar”. To na luta, dai vo aparecer muito aqui no forum com umas perguntas bestas… até consegui pegar o jeito da coisa :smiley: Aqui em Maringá o curso de Java tá R$1600,00 … Imagino que seja este valor mesmo, mas agora vou ter que me contentar com minhas apostilinhas mesmo…

Pelo que vi você está utilizando arrays pra armazenar os funcionários e os produtos de uma loja. Seria melhor você usar uma das collections do Java.

Mas como você está começando, deve ter um motivo pra usar arrays.

T+

hunuhnun Não sei o que são collections, mas vou procurar aprender. Obrigado. Na verdade usei por que pensei que fosse o meio mais viável para armazenar novos objetos. Mas vou atrás dessas collections.
Valew

Se você está lendo o livro do Deitel, continue. Com certeza terá uma capítulo com Collections e Generics.

T+

Olhei no sumário do livro do Deitel, o capítulo sobre genéricos é o 18 e o sobre coleções o 19.

Acho que é isso mesmo…

T+

Valew mano, eu vou estudar isso. Alguém teria alguma lista de exercícios pra mim praticar? Se tiver posta ai por favor
Valew

Então, você não está estudando pelo livro do Deitel??? Eu tenho o de C++ e tem muito exercício…

T+

[quote=thingol]<OFF-TOPIC>
Embora tanto Java quanto C# permitam que você use classes, variáveis e constantes com nomes acentuados (ou em ideogramas, ou qualquer coisa que o Unicode aceite), é aconselhável não usar esses nomes acentuados para evitar problemas mais tarde.
Se depois você for trabalhar com isso (Java, C#, etc.) você vai descobrir que dá mais problemas do que ajuda.
E para você um programa HelloWorld em Japonês:

/**
  * "Bom dia, mundo!"
  */
class こんにちは世界{ 
    public static void main(String[] args) {
        int ありがとうございました = 7; // Obrigado
        System.out.println ("こんにちは、世界!"); // Bom dia, mundo!
    }
}

</OFF-TOPIC>
[/quote]

Isso também acontece em Linux. Pegar um código cheio de acentos em Windows e você vai ver ele em Linux, todos os caracteres com acentos estão mudados.

[quote]Então, você não está estudando pelo livro do Deitel??? Eu tenho o de C++ e tem muito exercício…

T+[/quote]

Sim, Deitel tem bastante exercícios.

[off]diego2005
Estou querendo aprender c++. Tenho um base muito pequena de C, meu problema são com os ponteiros e coisarada.
Vale a pena comprar o de C++?[/off]

Abraço.

dedejava, na minha humilde opinião vale a pena sim. Os livros dos Deitel são bem explicativos, por isso são indicados para quem está começando. Eu particularmente gosto da didática deles.

Essa é minha opinião.

T+