Não compreendi por que uma String imprime "msg null ", se a string nao é inicializada
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Não compreendi por que uma String imprime "msg null ", se a string nao é inicializada
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
(```)
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"