Tenho uma dúvida, quando eu defino um atributo do tipo String, para adicionar valor eu devo fazer da seguinte forma:
String a = new String();
Para instanciar a classe String na memória, mas eu consigo utilizar o atríbuto “a” sem instanciar a classe String na memória e funciona. Gostaria de saber porquê isso acontece. Aguardo retorno. Obrigado.
a=JOptionPane.showImputiDialog("Digite uma String");JOptionPane.showMessageDialog(null,"A mensagem digitada foi"+a);
}
}
wesley.comput
Deixe eu ver se entendi
Você quer saber porque eu posso inicializar o objeto do tipo String das seguintes formas:
Strings=newString();s="teste";
ou
Strings="teste";
Na prática são formas diferentes de se criar objetos do tipo String e ambas vão funcionar corretamente, agora com relação a uso de memória, processamento, etc, acho que não muda em nada a performance.
String s = new String(new char[]{‘t’,‘e’,‘s’,‘t’,‘e’});
eassimvai...
5
504843
Eu não tenho que usar a palavra new para instanciar uma classe na memória? Sendo assim creio que se eu mencionar semente o tipo e o identificador do atributo não conseguirei instanciar a mesma. E se eu não consigo instanciar, como eu consigo acessar todos os métodos public ca classe String?
B
Bruno_Laturner
504843:
Sim, claro,
publicclassteste{publicstaticvoidmain(StringArgs[]){Stringa;a=JOptionPane.showImputiDialog("Digite uma String");//<< showInputDialog instancia um String para você.JOptionPane.showMessageDialog(null,"A mensagem digitada foi"+a);}}