Olá, criei um projeto chamado cadastro. Depois criei as tres classes: class Empresa, class Endereco, class pessoa. Depois criei mais tres classes para estanciar as classes anteriores. Aparentemente o código está correto, não mostra erro nenhum em vermelho, mas na hora de compilar aparece um erro. vou compartilhar o código e cada erro que aparece.
package cadastro;
public class Pessoa {
String nome;
String cpf;
int idade;
Endereco endereco;
}
package cadastro;
public class Endereco {
String logradouro;
String complemento;
String numero;
String bairro;
String cidade;
String cep;
}
package cadastro;
public class Empresa {
String razaoSocial;
String cnpj;
Endereco endereco;
}
até aki parece que está correto. mas na hora de compilar cada classe estanciada que foi criada em arquivos separados dá erro.
package cadastro;
public class CadastroPessoa {
public static void main(String[] args) {
Pessoa pessoa1 = new Pessoa();
pessoa1.nome = "Welliton";
pessoa1.cpf = "111.111.111-11";
pessoa1.idade = 36;
pessoa1.endereco.logradouro = "Avenida Dom Emanuel";
pessoa1.endereco.complemento = "Qd. 15 Lt. 20";
pessoa1.endereco.numero = "211";
pessoa1.endereco.bairro = "Centro";
pessoa1.endereco.cidade = "Senador Canedo";
pessoa1.endereco.cep = "75.111-222";
System.out.println(pessoa1.nome);
}
}
aparece este erro: Exception in thread "main" java.lang.NullPointerException: Cannot assign field "logradouro" because "pessoa1.endereco" is null at cadastro/cadastro.CadastroPessoa.main(CadastroPessoa.java:13)
outra classe:
package cadastro;
public class CadastroEmpresa {
public static void main(String[] args) {
Empresa empresa1 = new Empresa();
empresa1.razaoSocial = "Tend Tudo";
empresa1.cnpj = "13.313.314/0001-13";
empresa1.endereco.logradouro = "Rua do Comércio";
System.out.println(empresa1.cnpj);
}
}
neste dá este erro: Exception in thread "main" java.lang.NullPointerException: Cannot assign field "logradouro" because "empresa1.endereco" is null at cadastro/cadastro.CadastroEmpresa.main(CadastroEmpresa.java:12)
ultima classe:
package cadastro;
public class CadastroEndereco {
public static void main(String[] args) {
Endereco enderecoJoao = new Endereco();
enderecoJoao.logradouro = "Rua Esmeraldo";
enderecoJoao.complemento = "Qd. 11 Lt. 12";
enderecoJoao.numero = "500";
enderecoJoao.bairro = "Setor das Indústrias";
enderecoJoao.cidade = "Senador Canedo";
enderecoJoao.cep = "75.444-55";
System.out.println(enderecoJoao.cidade);
}
}
esta classe Endereco, compila normal ao chamar o System.out.println().