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

7. Criando e Manipulando Strings - Exercício 7

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

Resposta do instrutor Não compila por outro motivo: a variável vazio não é estática.

Dúvida: Não entendi a necessidade da "String vazio" ser estática para poder ser utilizada.

3 respostas

Matutando um pouco mais...rs Fiquei confuso por ser método "main".

Se não fosse um método main, entendo que por ser um método estático, ele pode ser chamado sem que a classe A fosse "instanciada".

Dessa forma, ou usa variáveis membro "estáticas" ou usa as variáveis do escopo do próprio método.

Se não escrevi bobagem, esse mesmo conceito vale para o método main?

Valeu

solução!

Como o método main é um método estático, só podemos chamar diretamente métodos que também são estáticos essa seria a regra, caso contrário quando chamamos a variável vazio, qual valor ele chamaria? pois podemos ter n Objetos do tipo A com valores diferentes Para esse código compilar deve ser feito algo como :

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

Obrigado Rafael Augusto!