Não compreendi por que uma String imprime "msg null ", se a string nao é inicializada
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"