Ajuda no acesso de objetos

tenho o seguinte código em Java no IDE Netbeans 7.1.1 :

public class Narrativa {

private String historia;

public Narrativa() {

    historia = "oi";
    Cenario cenario = new Cenario();
    EntradaDeDados entrada = new EntradaDeDados();
    Personagem personagem = new Personagem();
    Desafio d = new Desafio();

}
}

Na main :

public class View {

public static void main(String args[]){
    
       Narrativa padrao = new Narrativa();
       
}

}

Minha lógica foi a seguinte, criar um metodo construtor na classe Narrativa onde fossem levantados/criados todos os objetos que eu vou precisar, e na main, instancia-la e poder acessar os objetos criados, PORÉM ai é que vem a minha desgraça, nao consigo de jeito nenhum acessar nenhum daquele objetos criados :shock:
Na verdade, o ÚNICO que consigo é o “historia”, sendo assim até testei ele, chamando seu metodo get e lhe imprimindo, e o resultado foi “oi”, o que indica que o metodo está funcionando e os objetos em questao foram criados, teoricamente…

Podem me ajudar nessa ?
Preciso resolver isso urgentemente… ;ssss

Vejo que é novo no fórum. Bem, eu não sou moderador mas gostaria de te dar umas dicas antes de te ajudar na tua dúvida:

  1. Sem tags desnecessárias no título (“Ajudaaaa”,“urgente!!1!”,“Preciso de ajuda”), apenas seja claro e deixe sua dúvida no corpo do post

  2. Use as tags Code para postar código

Mas, enfim, vamos à dúvida:

Primeiro, o porquê de você não conseguir acessar “historia” é por que é uma string do tipo private. Se algum tipo de dado é do tipo private, esse tipo só poderá ser acessado diretamente pelo próprio objeto da classe. Para acessá-lo indiretamente, use getters e setters:

[code]public void setHistoria(String i){
historia = i;
}

public String getHistoria(){
return historia;
}[/code]

Com isso, você poderá modificar e utilizar membros do tipo private de fora do objeto (No seu caso, no método main)

Segundo, o porquê de você não conseguir acessar os objetos do tipo “Cenario”, “EntradaDeDados”, “Personagem” e “Desafio”: todos eles foram declarados no construtor da classe Narrativa, então todos eles só poderão ser utilizados dentro do construtor. Assim que o construtor tenha sido finalizado, esses objetos serão destruídos e você não terá mais acesso. Para ter acesso a eles por fora, declare-os fora do construtor da classe, junto de “private String historia”. Utilize também os getters e setters, são boas práticas de programação

Por fim, se tiver tirado a dúvida, ponha “[RESOLVIDO]” no título do tópico

Dê feedback, boa sorte! :slight_smile:

Por favor, não duplique tópicos, nem solicite urgência no fórum.

Seu outro tópico:

Leia nosso guia de postagem. Ele explica como se portar aqui, além de dar dicas sobre como se portar adequadamente:

Esse tópico será trancado.