Olá, bem-vindo ao GUJ.
Primeiramente, algumas dicas sobre como usar o fórum.
Não use letras maiúsculas. Letras maiúsculas são uma analogia ao grito no fórum, e é considerado falta de educação. Nos próximos posts, procure manter as letras minúsculas, ok?
Em segundo lugar, sempre que postar códigos, use a tag code. Fica mais fácil para todos que forem te ajudar e evita que os emoticons apareçam no meio do código. Para se informar sobre esses e outros recursos, leia esse tópico:
http://www.guj.com.br/posts/list/50115.java
Agora vamos as suas dúvidas:
-
Por que e para que as variáveis foram declaradas antes do método main?
Dica, estude regras de escopo. Agora você já tem a palavra certa para procurar no Google. Basicamente, porque as variáveis devem existir não só no método main, mas além dele. No caso desse programa, não vejo muito sentido em fazer isso, mas poderia haver a necessidade de você ter vários métodos e precisar das mesmas variáveis através deles. No geral, é uma boa idéia restringir a existência de uma variável ao máximo possível.
-
Por que tem o modificador de acesso static antes dos tipos de variáveis? De maneira sucinta, sem explicar o conceito: Porque somente variáveis static podem ser usadas em métodos static. E o main é, obrigatoriamente, static. Antes de você aprender sobre classes e objetos, fica difícil de explicar exatamente o conceito. Avise-nos se você quiser se aprofundar mais do que isso nesse assunto.
-
Por que tem uma ‘+SOMA’ nessa expressão (System.out.print(“Resultado da soma:”+soma)?
A soma une uma string com o que vem em seguida dela. Por exemplo:
String x = “Vinicius”;
String y = " Godoy";
String z = x + y + " de Mendonça";
O resultado de z é: “Vinícius Godoy de Mendonça”
Todos os dados, se forem “somados” a uma string serão transformados em Strings. Nos objetos, quem dita como essa transformação é feita é o método toString() do objeto.