Como adcionar uma string em outra classe?

Oi!

Veja o código:

Classe Cadastro.java

/*
 * 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); }

as arrays não deveriam ser static dai, romarcio?
sem criar um objeto, como ele vai chamar o metodo?

[quote=caematos]as arrays não deveriam ser static dai, romarcio?
sem criar um objeto, como ele vai chamar o metodo?[/quote]

Dai depende do que ele quer fazer com esse array.

Olá a todos!
Obrigado por me responder!
Veja:

Cadastro.java

/*
 * 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!

o myVendas.listarNomes(); tem que ser chamado na classe Controle, mas na verdade seu código está muito estranho, tente um do…while ao invés de while

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á.

Na boa, reveja sua implementação.
Ta muito desorganizado seu código.

Por exemplo, crie a leitura dos nomes no método main.
Reveja o seu while também.

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) ?

Ai que tá.
Como o código não está sendo feito com uma lógica apropriada, você vai ter problemas futuros.

Mas se quer continuar assim, marca seus arrays como static

private static ArrayList<String> departamentoUm = new ArrayList<String>();

e no seu

 while(!nomesFunc.equals("0"))

dai quando digitar zero, ele sai do while.
e pode mudar o método que lista para

[code] public void listarNomes()
{

    for(String i:departamentoUm)
        
     System.out.println(i);

    
}[/code]

romarcio,
Poderia me informar o porque que a lógica está incorreta ?

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();
}

}
[/code]

Oi!
Ainda não listou os nomes.

não sei pq não funcionava com o hasNext();
alguém sabe ?

hackum, estude mais sobre OO

no vendastest mude aqui

[code] public void listarNomes() {

    for (String i : departamentoUm) {

        System.out.println(i);
    }

}

[/code]

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;
}

}[/code]

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!

Posso sim.

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.

Oi!
Obrigado pela resposta, veja:

Cadastro myCadastro; 

Isso, voce acessaria os dados da classe Cadastro ?

Seria a mesma coisa que fizeste:

 Cadastro myCadatro = new Cadatro();

?