Agora que já aprendemos como configurar nosso ambiente de desenvolvimento para programar bem como criar e executar nosso primeiro programa em Java, vamos modificar este primeiro programa que fizemos, para entender melhor como exibir mensagens de texto na tela.
Vamos aprender o que é, como funciona e como usar os comandos print, println e printf.
Imprimir mensagens na tela, em Java
print, em inglês, significa imprimir. A primeira coisa que vem em nossa mente, quando falamos em imprimir, é lembrar de uma impressora, não é verdade?
Mas imprimir tem um significado mais amplo. O que fizemos no nosso primeiro programa, o Olá, mundo! também foi uma impressão. No caso, imprimimos uma frase na tela de nosso computador (especificamente, no terminal de comando do Netbeans).
Mas também é possível imprimir um texto para um arquivo, por exemplo. Ou seja, você roda o programa, e o Java envia um texto para um arquivo, como um .txt e salva ele no seu computador. Aprenderemos isso mais a frente, em nosso curso, na seção de Files.
Nesse tutorial, vamos aprender como usar três comandos para imprimir mensagens de texto na tela:
Esses comandos, que são chamados de métodos, fazem parte do objeto System.out
Não se assuste com os termos, bem em breve você vai entender o que são objetos, métodos, classes e toda essa sopa de nomes esquisitos.
O método System.out.print do Java
Vamos começar por um código que já fizemos, usando o método print. Como vocês perceberam no tutorial anterior, eles simplesmente imprimiu uma mensagem na tela.
Em programação, chamamos um pedaço de texto de string, ok? Vamos mudar a string passada "Olá, mundo!", para "Curso Programação Progressiva", nosso código fica assim:
package enten.meuprimeiroprograma;
public class MeuPrimeiroPrograma {
public static void main(String[] args) {
System.out.print("Curso Java Progressivo");
}
}
Teste e rode novamente.
O caractere de quebra de linha em Java: \n
E se quisermos exibir a mensagem:
"Curso Java Progressivo"
"Aluno: [seu nome]"
Como fazer? Simples, use o comando duas vezes.
Veja como fica o código:
package enten.meuprimeiroprograma;
public class MeuPrimeiroPrograma {
public static void main(String[] args) {
System.out.print("Curso Java Progressivo");
System.out.print("Aluno: Bill Gates");
}
}
Agora teste e veja o resultado:
Opa...calma aí. Eu queria:
"Curso Java Progressivo"
"Aluno: Bill Gates"
E não "Curso Java ProgressivoAluno: Bill Gates"
Deu erro! O que houve?
Simples, o método print enviou a primeira string ("Curso Java Progressivo") e logo em seguida enviou para a tela a segunda string ("Aluno: Bill Gates"). E o que tem entre uma string e outra?
Nada. Por isso ele não exibiu nada entre as strings, o que fez ela saírem coladas.
Aqui vai o grande segredo: entre um texto e outro, queríamos dar uma quebra de linha (famoso Enter, do teclado). E a quebra de linha também é um caractere!
Esse caractere é representado por: \n
Sempre que o Java se deparar com este código (uma barra e a letra n), ele vai inserir uma quebra de linha na tela. Teste o seguinte código, com o caractere de new line no final da primeira string:
System.out.print("Curso Java Progressivo \n");
System.out.print("Aluno: Bill Gates");
E o resultado vai sair perfeito! Outra maneira seria usar da seguinte forma, no começo da segunda string:
System.out.print("Curso Java Progressivo");
System.out.print("\nAluno: Bill Gates");
Desafio de Java:
Crie um programa, em Java, usando o método print, apenas uma vez de modo a imprimir o texto na tela:
"Curso
Java
Progressivo"
Ou seja, uma palavra em cada linha. Mas repetindo: usando o comando
System.out.print apenas uma vez! A resposta você pode conferir em nossa
Apostila Java Progressivo.
O método System.out.println do Java
O 'ln', no comando println vem de...line, ou linha em inglês.
Esse comando faz a mesma coisa que o print, porém ele pula de linha automaticamente, ao final da string.
Faça o teste com o código abaixo:
package enten.meuprimeiroprograma;
public class MeuPrimeiroPrograma {
public static void main(String[] args) {
System.out.println("Curso Java Progressivo");
System.out.print("Aluno: Bill Gates");
}
}
E o resultado:
Veja que usamos os dois comandos. Primeiro o println, que exibiu a primeira frase e em seguida deu a quebra de linha automaticamente, colocando o cursos no início da linha debaixo, no terminal de comando. Depois, o print normal, pois não necessitamos de mais uma quebra de linha.
O método System.out.printf do Java
E, por fim, o método printf, que serve para exibir mensagens formatadas. Com esse recurso, você tem uma gama bem maior e melhor de possibilidades para imprimir mensagens de texto. Por exemplo, teste o seguinte código:
package enten.meuprimeiroprograma;
public class MeuPrimeiroPrograma {
public static void main(String[] args) {
System.out.printf("Minha idade é: %d anos", 2112);
}
}
O resultado vai ser:
"Minha idade é: 2112 anos"
Agora vamos entender o que aconteceu. Dentro da string tem um código especial, o %d, ele serve para representar números inteiros. Ele é um tipo de especificador de formato, no caso o formato de dados é o número 2112, que é um inteiro, que foi colocado dentro do comando printf, depois da string.
Dizemos que "Minha idade é: %d anos" e 2112 são argumentos (informações), que demos para o método printf. O especificados %d vai pegar a informação do próximo argumento, que é o número inteiro 2112.
Uma string, por exemplo, é representada pelo especificador %s. Teste o código:
System.out.printf("%s: %d anos", "Minha idade é: ", 2112);
Temos aí três argumentos:
- string: "%s: %d anos"
- string: "Minha idade é: "
- número inteiro: 2112
O especificador de formato
%s foi no próximo argumento e pegou a string 'Minha idade é: ' e colocou no lugar do código
%s. Em seguida, foi próximo no argumento (inteiro 2112) e colocou no lugar do especificador
%d, para exibir a mensagem final no terminal de comando:
- "Minha idade é: 2112 anos"
Ao longo de nosso curso, vamos aprender a usar melhor o printf, quando aprendermos mais sobre os tipos de dados (números inteiros, números decimais, números binários, caracteres, booleanos etc).