Tratamento de atributo do tipo Classe

Olá, boa tarde a todos.
Estou com um código para um trabalho escolar. O sistema simula um aeroporto, e atualmente estou testando as classes Passageiro (extends Pessoa) e Reclamacao.

Um dos atributos da classes Reclamacao chama-se passageiro, e é do tipo Passageiro.
Minha dúvida: quando quero atribuir valores aos atributos e preciso preencher as informações do Passageiro, posso fazer isso direto de Reclamacao?

O código funciona assim: a reclamação tem um código, um texto (a reclamação propriamente dita) e um passageiro. Este passageiro tem nome, cpf, ID etc. Ao cadastrar o passageiro, seus dados são salvos em um arquivo Passageiros.txt, que salva os dados mais ou menos assim:

0001;Joãozinho ;111.222.333-44;98999999;email@email.com
(respectivamente: ID, nome, cpf, tel, email)

Em reclamacao, ao settar os dados de passageiro, tentei simplesmente pedir um ID de passageiro, ler as linhas do arquivo usando BefferedReader até achar o ID correspondente, salvar a linha em uma String e settar:

passageiro.nome = linha.substring(4, 45);
passageiro.cpf = (46, 60);
etc… ;

Consegui um belo NullPointerException. Fiz uns testes e vi que o problema não é no substring (pensei que estivesse tentando ler uma posição com valor nulo). Suponho então que o problema seja no “passageiro.nome”.

Agora voltando à dúvida do início: como posso atribuir valores aos atributos de um atributo objeto? (confuso kkkk)

Espero não estar fazendo uma pesgunta idiota, mas não achei nada parecido na net, só tenho aula daqui há uma semana e quero levar o código pronto.

Agradeço por ter lido até aqui.

Você tem duas abordagens possíveis:

Passageiro passenger = new Passageiro();
passenger.setNome("João da Silva");
//demais sets aqui
reclamacao.setPassageiro(passenger);

Ou

reclamacao.setPassageiro(new Passageiro());
reclamacao.getPassageiro().setNome("João da Silva");
1 curtida

Puts, não acredito que deixei passar um detalhe desses kkkkk

Foi exatamente o que você indicou: faltava inicializar um objeto Passageiro em Reclamacao.
Só precisei adicionar uma linha de código - “setPassageiro(new Passageiro());” - antes de começar a settar os valores. Por isso tava dando erro, não tinha objeto pra settar. :laughing:

Mais uma vez, obrigado.
(percebi que somos quase xarás kkkk)

Boa noite!