Excluir este post

quero excluir este post

eu tento mas não consigo entender o seu codigo. por favor arrume a formatação do mesmo

```java
coloque seu codigo aqui, uma classe de cada vez
```

outra coisa, procure nao usar letras acentuadas no nome de classes e variaveis. conselho de quem lida com Unicode todo o dia. isso vai te dar uma bela surpresa um dia.

outra coisa: nome de classe começa com maiuscula. nome de metodo deveria começar com minuscula - sempre respeitando o camelCase e deveria ser um verbo como alterarCliente() ou removerCliente()

por que razao vc colocou 666 no seu codigo eu não faço ideia, mas algo me diz que vc nunca fez algo como

boolean continua = true;
while ( continua ) { 
   
   if ( /* quero sair agora, de um menu interno e estou em panico */ ) { 
     break; // interrompe o while na hora
   }
   if ( /* quero sair do menu */ ) { 
       continua = false; // facil né?
   }
}

Que tal na classe Locacao alterar o atributo clientes -> cliente e Carros -> carro ? Pois terás um carro e um cliente por locacao certo?
E depois remover isto:

 public void locacao (String clientes){
        
    }

E colocar isto:

public Locacao(Carro carroAlocar, Cliente clienteLocador){
// faz o resto aqui
}

Refatora o nome desta classe p/ Locacao .
http://profsalu.com.br/regras-e-convencoes-para-nomenclatura/

Obrigado, dica muito boa.
Não, não mexo com programação. Porém esse semestre tenho Java e o trabalho final é isso. Mas vou tentar corrigir, obrigado.

Vou resumir como funciona o programa. A pessoa que tem o programa aberto pode cadastrar um cliente ou carro (também pode alterar e excluir dados dos mesmos). Além disso, elava vai fazer a locação do carro.

Agora falta uma etapa.
O funcionário vai digitar o nome do cliente o carro que ele quer e a data. Quando o cliente for devolver o carro ele vai receber o valor total. Mas o problema que estou tendo é como fazer essa última parte.

Ok, vou tentar, obrigado.

Adicionei essa parte na Classe empresa:

public void Locacao(){
    System.out.print("Digite o nome do cliente: ");
    nomeAlt=Ler.nextLine();
    for (int i = 0; i < listaDeClientes.size(); ++i) {
        if (listaDeClientes.get(i).getNome().equals(nomeAlt)) {
            System.out.print("Digite a marca do carro: ");
            nomeAlt=Ler.nextLine();
            for (int l=0 ; l<listaDeCarros.size() ; l++){
                if(listaDeCarros.get(l).getMarca().equals(nomeAlt));                      
            }        
        }
    } 
}

O camarada vai digitar o nome e carro que ele quer (coloquei marca só para testar), mas agora é o seguinte:
Como vou salvar essa informação?

Evite esse tipo de logica dentro dos laços.

vc quer

  1. encontrar o cliente
  2. encontrar o carro
System.out.print("Digite o nome do cliente: ");
String nomeCliente=Ler.nextLine();
System.out.print("Digite a marca do carro: ");
String marcaCarro=Ler.nextLine();

Cliente c = procuraCliente( nomeCliente );
Marca m = procuraMarca( marcaCarro );

// metodos

public Coisa procuraCoisa( String nomeCoisa) {
   for (Coisa coisa : listaDeCoisas) {
      if (coisa.getNome().equals(nomeCoisa)) { return coisa; }
   }
   /* sua escolha: lanca uma exception "nao encontrei" ou retorna nulo */
}

Ok, vou mudar. Obrigado.
Mas tem alguma sugestão como vou guardar e acessar essa informação depois?

O camarada vai digitar o carro, cliente e data. Aí vou ter que salvar isso em algum lugar.

Quando eu criar o método Devolução, ele vai procurar o cliente, o carro e calcular o preço da locação com base no tempo e retornar ao cliente o valor.

Meu problema principal é isso. Obrigado

Salve em uma coleção de coisas ué.

Lista de locacoes

Seria pedir muito se pudesse exemplificar ?
Obrigado.

Acho que no seu caso, o ideal era ter uma List de Locacao e dentro de cada locação tem 1 cliente e 1 carro, da forma que o pec falou ae.
Depois você percorre essa lista e acha o cliente e pronto.

public class Locacao {
	
	private Cliente cliente;
	private Carro carro;
	private Calendar dataInicio, dataTermino;
	//construtores, gets, sets
}

public class Cliente {
	
	private String nome;
	
	public Cliente(){}

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

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

}

public class Carro {
	
	private String placa;
	
	public Carro(){}

	public Carro(String placa) {
		this.placa = placa;
	}

	public String getPlaca() {
		return placa;
	}

	public void setPlaca(String placa) {
		this.placa = placa;
	}
}


public class Main {
	
	public static void main(String[] args) {
		
		List<Locacao> locacoes = new ArrayList<>();
		
		Scanner t = new Scanner(System.in);
		
		int para = JOptionPane.showConfirmDialog(null, "Nova locação?", "Locação", JOptionPane.YES_NO_OPTION);
		
		while(para == JOptionPane.YES_OPTION){			
			
			Cliente cliente = new Cliente();
			System.out.println("Digite o nome do Cliente");
			cliente.setNome(t.nextLine());
			
			Carro carro = new Carro();
			System.out.println("Digite a placa do carro");
			carro.setPlaca(t.nextLine());			
			
			Locacao locacao = new Locacao();
			locacao.setCliente(cliente);
			locacao.setCarro(carro);		
			
			locacoes.add(locacao);
			
			para = JOptionPane.showConfirmDialog(null, "Nova locação?", "Locação", JOptionPane.YES_NO_OPTION);
			
		}	
		
		listar(locacoes);
		
		t.close();		
	}
	
	public static void listar(List<Locacao> locacoes){
		for(Locacao l : locacoes){
			System.out.println("Cliente:\t" + l.getCliente().getNome() + " Placa:\t" + l.getCarro().getPlaca() );
		}
	}
}

Muito bom, clareou muito minhas dúvidas. Muito obrigado.