Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Dúvida no Ex. 8 da Aula 7 - Criando e Manipulando Strings

Não compreendi por que uma String imprime "msg null ", se a string nao é inicializada

6 respostas

Oi Rodrigo,

Porque o valor/referencia padrão de um objeto que não foi inicializado ou que nada tenha sido referenciado a ele, é null.

Mas ele não é uma variável?

Objeto seria se chamasse o construtor, não?

String vazio=new String();

Rodrigo, ele não é um objeto, mas é referencia na memoria para um objeto.

Inicializando com new, você vai estar atribuindo a essa referencia, um objeto.

Pessoal desculpa mas continuo não entendendo:

Em qual linha voce vê que ele é referência pra um objeto?

class A { static String vazio; public static void main(String[] args) { String full = "Bem-vindo " + vazio; System.out.println(full); } }

PS: como posta codigo aqui dentro, no menu "Formatação " diz que é colocando ``` antes e depois, mas nao funciona, fica sem formatação.

Rodrigo,

O atributo vazio ainda não foi inicializado, ele ainda é apenas uma referencia na espera da inicialização ou de um valor diretamente

static String vazio; //null
static String comConteudo = "Conteudo" // Conteudo
static String inicializadoSemConteudo = new String(); // aqui inicializado, não é mais nulo, mas não tem valor
static String fuiInicializadoComObjeto = new String("inicializado") //inicializado
String full = "Bem vindo " + vazio; // Outro objeto de String que esta concatenando uma referencia vazia, por isso imprime "Bem vindo null"

Para formatar apenas fazer igual abaixo, sem os parentesis ()

(```)
codigo
(```)
solução!

Lembre-se que a String não é um tipo primitivo, então tem seu valor padrão igual a nulo.

a questão de imprimir "Bem-vindo null" é mais uma questão de como o java se comporta quando concatenamos uma string com uma variável de valor nulo.

Como foi explicado no video, nessas situações o java concatena na String uma outra string escrito "null"