/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package vendas;
/**
*
* @author gustavo
*/
import java.util.Scanner; //importa a classe Scanner
public class Cadastro {
private String nomesFunc; //nome do funcionario
//cria Scanner para obter dados a partir da janela de comando
Scanner input = new Scanner(System.in);
public void exibirMensagem()
{
//exibe mensagem de boas vindas
System.out.println("Seja bem vindo(a) ao Departamento de Vendas da GOL Linhas Aereas!");
System.out.println("Digite os nomes dos funcionarios para cadastro.\n"
+"Para receber o salario total deste mes. ");
}
//metodo para cadastrar o nome dos funcionarios
public void Cadastro()
{
int counter = 0;
//entra no while para pedir os nomes do funcionario
System.out.println("Digite o nome dos funcionarios para o departamento 1: "
+"Apos concluido. Aperta simultaneamente Ctrl + D, para sair.");
nomesFunc = input.nextLine();
while(input.hasNext())
{
//pede a solicitacao dos nomes
System.out.println("Digite o nome dos funcionarios para o departament 1:"
+ "Apos concluido. Aperta simultaneamente Ctrl +d para sair");
nomesFunc= input.nextLine();
counter++; //incrementa
}
}
}
Classe VendasTest.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package vendas;
/**
*
* @author gustavo
*/
import java.util.ArrayList; //importa a classe ArrayList
public class VendasTest {
private String nomeEmpresa; //nome da empresa
private ArrayList<String> departamentoUm = new ArrayList<String>(); //inicializa o array
private ArrayList<String> departamentoDois = new ArrayList<String>(); //inicializa o array
public VendasTest()
{
}
public void addFuncionario(String dUm)
{
}
}
Como podemos ver, eu quero adcionar o nome cadastrado pelo usuário ao método addFuncionario, lembrando que quero adcionar ao Array, para o departamento1.
Por favor, alguem pode me ajudar ?
Depois que ler do teclado, faça uma chamada ao método addFuncionario através de uma instancia da classe VendasTest.
No método addFuncionario, faça assim:
public void addFuncionario(String dUm)
{
departamentoUm.add(dUm);
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package vendas;
/**
*
* @author gustavo
*/
import java.util.Scanner; //importa a classe Scanner
public class Cadastro {
VendasTest vendas = new VendasTest();
private String nomesFunc; //nome do funcionario
//cria Scanner para obter dados a partir da janela de comando
Scanner input = new Scanner(System.in);
public void exibirMensagem()
{
//exibe mensagem de boas vindas
System.out.println("Seja bem vindo(a) ao Departamento de Vendas da GOL Linhas Aereas!");
System.out.println("Digite os nomes dos funcionarios para cadastro.\n"
+"Para receber o salario total deste mes.\n ");
}
//metodo para cadastrar o nome dos funcionarios
public void Cadastro()
{
int counter = 0;
//entra no while para pedir os nomes do funcionario
System.out.println("Digite o nome dos funcionarios para o departamento 1: "
+"Apos concluido. Aperta simultaneamente Ctrl + D, para sair.\n");
nomesFunc = input.nextLine();
vendas.addFuncionario(nomesFunc);
while(input.hasNext())
{
//pede a solicitacao dos nomes
System.out.println("Digite o nome dos funcionarios para o departament 1:\n"
+ "Apos concluido. Aperta simultaneamente Ctrl +d para sair\n");
nomesFunc= input.nextLine();
vendas.addFuncionario(nomesFunc);
counter++; //incrementa
}
}
}
VendasTest.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package vendas;
/**
*
* @author gustavo
*/
import java.util.ArrayList; //importa a classe ArrayList
public class VendasTest {
private String nomeEmpresa; //nome da empresa
private ArrayList<String> departamentoUm = new ArrayList<String>(); //inicializa o array
private ArrayList<String> departamentoDois = new ArrayList<String>(); //inicializa o array
private String i;
public VendasTest()
{
}
public void addFuncionario(String dUm)
{
departamentoUm.add(dUm);
}
//lista os nomes dos funcionarios
public void listarNomes()
{
for(String i:departamentoUm)
System.out.printf("%s",i);
}
}
Método Main (Principal)
Vendas.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package vendas;
/**
*
* @author gustavo
*/
public class Vendas {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
//cria VendasTest para chamar seus respectivos metodos
VendasTest myVendas = new VendasTest();
Cadastro myCadastro = new Cadastro();
myCadastro.exibirMensagem();
myCadastro.Cadastro();
myVendas.listarNomes();
}
}
Quero listar os nomes gravados no array. Porém, não está obtendo a lista. O que está havendo ?
Obrigado!
Olá! caematos
Poderia me informar como procedo ?
Estranho ?
Como assim ?
Chamar no método da classe Controle ? Você diz a classe onde está o método main ?
Observe, já está.
romarcio, eu já sei a questão do while.
Mas não estou entendendo essa de código desorganizado. Eu ainda vou ver arrumar algumas coisas, sim, claro.
Primeiro, quero saber como listar os nomes digitado no loop (while) ?
tira a chamada no main pra listaNomes();
e aplica esse codigo
[code] public void fazCadastro() {
VendasTest vendas = new VendasTest();
String nomesFunc; //nome do funcionario
//cria Scanner para obter dados a partir da janela de comando
Scanner input = new Scanner(System.in);
System.out.println(
"Digite o nome dos funcionarios para o departamento 1: "
+ "Apos concluido. Aperta simultaneamente Ctrl + D, para sair.\n");
nomesFunc = input.nextLine();
vendas.addFuncionario(nomesFunc);
while (!nomesFunc.equals("0")) {
nomesFunc = input.nextLine();
vendas.addFuncionario(nomesFunc);
}
vendas.listarNomes();
}
caematos,
Você está mandando eu estudar OO ?
Eu estou justamente estudando isso. Mas como sempre, aparece dúvidas sobre o que estou estudando.
E estou iniciando, e as dúvidas estou postando aqui. Mas, vocês mandam estudar, sendo que já estamos estudando o determinado assunto.
Veja se assim não fica mais fácil entender o código?
package vendas;
/**
*
* @author gustavo
*/
import java.util.ArrayList;
public class VendasTest {
private String nomeEmpresa; //nome da empresa
private ArrayList<Cadastro> departamentoUm = new ArrayList<Cadastro>();
private ArrayList<Cadastro> departamentoDois = new ArrayList<Cadastro>();
public VendasTest() {
}
public void addFuncionario(Cadastro c) {
departamentoUm.add(c);
}
//lista os nomes dos funcionarios
public void listarNomes() {
for(Cadastro i : departamentoUm)
System.out.println("Nome: " + i.getNomesFunc());
}
}
package vendas;
/**
*
* @author gustavo
*/
import java.util.ArrayList;
import java.util.Scanner;
public class Vendas {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//cria Scanner para obter dados a partir da janela de comando
Scanner input = new Scanner(System.in);
String opcao = "";
Cadastro myCadastro;
VendasTest myVendas = new VendasTest();
//entra no while para pedir os nomes do funcionario
while(!opcao.equals("0")) {
System.out.print("Tecle -> 1.Cadastrar / 2.Listar / 0.Sair: ");
opcao = input.nextLine();
if(opcao.equals("1")) {
System.out.print("Digite um nome: ");
myCadastro = new Cadastro();
myCadastro.setNomesFunc(input.nextLine());
myVendas.addFuncionario(myCadastro);
} else if (opcao.equals("2")) {
myVendas.listarNomes();
}
}
}
}
[code]package vendas;
public class Cadastro {
private String nomesFunc; //nome do funcionario
public void setNomesFunc(String nomesFunc) {
this.nomesFunc = nomesFunc;
}
public String getNomesFunc() {
return this.nomesFunc;
}
Sem comentários, romarcio.
Por isso, vou postando dúvidas, para que assim eu possa chegar ao seu nível seu e aos demais aqui do fórum.
Agradeço por ter me ajudado.
Mas, eu ainda tenho umas dúvidas.
Sempre tenho medo dela, pois pelo o que estou estudando, ela não me tirou essa dúvida.
Nota: Ainda vou ter uma lógica igual a sua.
Veja:
Cadastro myCadastro;
this
ArrayList<Cadastro>
Para que eu possa entender o código por completo. Poderia me explicar esses três códigos postados acima ?
Muito obrigado!
Cadastro myCadastro; -> Aqui foi criada uma variável do tipo Cadastro.
Depois dentro do if quando eu fiz: myCadastro = new Cadastro(); eu criei um objeto para essa variável. Seria como seu você incializase ela, a cada vez que faço new Cadastro();;
this -> Quando eu tenho esse caso:
public void setNomesFunc(String nomesFunc) {
this.nomesFunc = nomesFunc;
} veja que a variavel do parametro possui o mesmo nome da variavel da classe. Usando this.nomesFunc eu indico que estou atribuindo o valor da variável do parâmetro a variável da classe.
ArrayList<Cadastro> -> Aqui estou criando um array de Cadastro, assim posso atribuir a ele um objeto do tipo Cadastro. Seria parecido com isto ArrayList<String> só que aqui eu só posso atribuir ao array uma String.