Objeto imprimindo null. [Resolvido]

E ae glra to com um probleminha na hora da impressão de um objeto.
O objeto esta imprimindo null.

Classe principal:

package br.com.stefanini.sistemabancario;

public class SistemaBancario {

	public static void main(String[] args) {
		
		Empresa empresa = new Empresa("BH Software", 12345678123412L);
		Endereco endEmpresa = new Endereco();
		endEmpresa.setLogradouro("Av. Belo Horizonte");
		endEmpresa.setNumero(971);
		endEmpresa.setComplemento("4º Andar");
		endEmpresa.setBairro("Funcionários");
		endEmpresa.setCidade("Belo Horizonte");
		endEmpresa.setEstado("MG");
		endEmpresa.setCep(32000123);
		
		System.out.println(empresa);
		
	}

}

Classe endereço:

package br.com.stefanini.sistemabancario;

public class Endereco {
	private String logradouro;
	private Integer numero;
	private String complemento;
	private String bairro;
	private String cidade;
	private String estado;
	private Integer cep;
	public String getLogradouro() {
		return logradouro;
	}
	public void setLogradouro(String logradouro) {
		this.logradouro = logradouro;
	}
	public Integer getNumero() {
		return numero;
	}
	public void setNumero(Integer numero) {
		this.numero = numero;
	}
	public String getComplemento() {
		return complemento;
	}
	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}
	public String getBairro() {
		return bairro;
	}
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}
	public String getCidade() {
		return cidade;
	}
	public void setCidade(String cidade) {
		this.cidade = cidade;
	}
	public String getEstado() {
		return estado;
	}
	public void setEstado(String estado) {
		this.estado = estado;
	}
	public Integer getCep() {
		return cep;
	}
	public void setCep(Integer cep) {
		this.cep = cep;
	}
	
	public String toString() {
		String s = "\n Rua/Av.: "+logradouro;
		s += "\n Nº: "+numero;
		s += "\n Complemento: "+complemento;
		s += "\n Bairro: "+bairro;
		s += "\n Cidade: "+cidade;
		s += "\n Estado: "+estado;
		s += "\n CEP: "+cep;
		return s;
	}
}

Classe empresa:

package br.com.stefanini.sistemabancario;

public class Empresa {
	
	private String nome;
	private Long cnpj;
	private Empresa endereco;
	
	public Empresa(String nome, Long cnpj) {
		this.nome = nome;
		this.cnpj = cnpj;
	}
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public Long getCnpj() {
		return cnpj;
	}
	public void setCnpj(Long cnpj) {
		this.cnpj = cnpj;
	}
	public Empresa getEndereco() {
		return endereco;
	}
	public void setEndereco(Empresa endereco) {
		this.endereco = endereco;
	}
	
	public String toString() {
		String s = "\t Dados Instituição: \n";
		s += "\n Nome: "+nome;
		s += "\n CNPJ: "+cnpj;
		s += "\n Endereço: "+endereco;
		return s;
	}
}

O problema está no objeto da classe endereço. Enquanto isso estou varrendo a net a procura deste enigma. Desde já agradeço.

cara,

vc tem que fazer isso

empresa.setEndereco(endereco);

t+

Este trecho seria no método main certo.

Mas quando faço isso o endereço da erro no toString() da classe Endereco.

Fiz de outra maneira.

Retirei a variável private endereço da classe Empresa e fiz separado.

Vlw ae.

cara,

faz assim

    package br.com.stefanini.sistemabancario;  
      
    public class Empresa {  
          
        private String nome;  
        private Long cnpj;  
        private Endereco endereco;  //tava errado aqui
          
        public Empresa(String nome, Long cnpj) {  
            this.nome = nome;  
            this.cnpj = cnpj;  
        } 

        public Empresa(String nome, Long cnpj, Endereco endereco) {  
            this.nome = nome;  
            this.cnpj = cnpj;  
            this.endereco = endereco;
        }   
          
        public String getNome() {  
            return nome;  
        }  
        public void setNome(String nome) {  
            this.nome = nome;  
        }  
        public Long getCnpj() {  
            return cnpj;  
        }  
        public void setCnpj(Long cnpj) {  
            this.cnpj = cnpj;  
        }  
        public Endereco getEndereco() {  
            return endereco;  
        }  
        public void setEndereco(Endereco endereco) {  
            this.endereco = endereco;  
        }  
          
        public String toString() {  
            String s = "\t Dados Instituição: \n";  
            s += "\n Nome: "+nome;  
            s += "\n CNPJ: "+cnpj;  
            s += "\n Endereço: "+endereco;  
            return s;  
        }  
    }  
package br.com.stefanini.sistemabancario;  
  
public class SistemaBancario {  
  
    public static void main(String[] args) {  
          
        
        Endereco endEmpresa = new Endereco();  
        endEmpresa.setLogradouro("Av. Belo Horizonte");  
        endEmpresa.setNumero(971);  
        endEmpresa.setComplemento("4º Andar");  
        endEmpresa.setBairro("Funcionários");  
        endEmpresa.setCidade("Belo Horizonte");  
        endEmpresa.setEstado("MG");  
        endEmpresa.setCep(32000123);  

         Empresa empresa = new Empresa("BH Software", 12345678123412L, endEmpresa);  
          
        System.out.println(empresa);  
          
    }  
  
} 

t+

Cara nem agradeci (que falta de educação!) muito obrigado.

Assim fica como polimorfismo porque ai eu poderia ter duas possibilidades de envio das informações.

Vlw.