Programação em Java - Nivelamento 2023
Programação em Java - Nivelamento 2023
Linguagem de Programação
Bibliografia 17
IDE e ambiente de desenvolvimento Java
A criação de sistemas em Java exige o esclarecimento sobre alguns conceitos que
causam certa confusão. A seguir, os conceitos básicos sobre Java.
Por que isso? Porque assim, um mesmo programa escrito para a plataforma Java não
precisa gerar executáveis para diferentes sistemas operacionais (afinal, mesmo sistemas de uma
mesma família possuem suas peculiaridades). Basta gerar para o “sistema operacional” Java, que
é iniciado rapidamente pela JVM instalada junto de uma JRE. Isso favorece os desenvolvedores,
que não precisam se preocupar com detalhes dos diferentes sistemas operacionais. Quem se
preocupa com isso é a Oracle, que cria várias versões diferentes da JRE/JVM para diferentes
sistemas operacionais.
A linguagem Groovy, por exemplo, é de uso geral, porém muito usadas para scripts de
automação e criação de testes automatizados (com o Spock framework, por exemplo). A Kotlin
vem se tornando muito popular por estar sendo muito adotada na criação de aplicativos para
Android.
Não existe uma IDE oficial para a plataforma Java. Aliás, isso é um item bem democrático
da plataforma, que possui 3 principais IDEs: IntelliJ, Eclipse e Netbeans. A IntelliJ é a única das
3 que é proprietária, porém possui uma versão 100% gratuita.
Em nosso curso, a IDE usada será o NetBeans 11, que pode ser obtido em
http://ftp.unicamp.br/pub/apache/incubator/netbeans/incubating-netbeans/incubating-11.0/incubating
-netbeans-11.0-bin.zip.
Ela não possui instalador. Você baixa um arquivo compactado, descompacta ele onde
preferir e executa o arquivo “bin/netbeans” (no caso de SO Linux ou Mac) ou o
“bin/netbeans64.exe” (no caso de SO Windows). Claro, é preferível criar um atalho para esse
executável.
Criando Projetos Java no NetBeans
Na plataforma Java, trabalhamos com o conceito de Projeto e não de arquivo. Um
programa, por mais simples que seja, deve ser criado a partir de um Projeto e não de um arquivo
Java. Um Projeto Java é um diretório com vários arquivos com a extensão .java (que são as
classes) e arquivos de vários outros tipos que servem de apoio no projeto. A seguir, vejamos
como criar um Projeto Java no NetBeans.
Outra opção é ir no menu File -> New Project, como mostra a Figura 5.
Método Main
Na verdade, não é o Projeto Java que é executado e sim alguma de suas classes. Para
que uma classe Java possa ser executada pela IDE e/ou pelo SO, ela precisa apenas ter o
chamado método main. É nada mais que uma estrutura de código padronizada, como na Figura
9.
Como já vimos anteriormente, o NetBeans já cria uma classe com esse método main em
novos projetos. Porém, caso você precise transformar uma classe em executável, pode criá-lo
manualmente. Não se desespere! Não precisa decorar todo esse código. Basta, dentro de uma
classe, digitar psvm e teclar TAB e... Voila! O método main é criado pelo NetBeans!
Execução de uma classe com método main
Para executar uma classe executável, ou seja, que contém o método main, podemos usar
o atalho de teclado Shift + F6 ou, clicar com o botão direito do mouse em qualquer parte da
classe e escolher a opção Run File.
Atenção!!! Existe um botão “Play” (uma seta verde) na parte superior do NetBeans. Ele
não é confiável para a execução de sua classe. Evite a tentação de ficar executando sua classe
por ele, ok?
Tipos de dados e variáveis em Java
Existem virtualmente infinitos tipos de dados em Java, afinal, quando você cria uma classe
ela passa a ser um tipo válido em seu projeto. Porém, existem os tipos básicos que já estão
presentes na JDK, são eles:
Tipos primitivos
São tipos que não são classes. Seus valores só funcionam literalmente como valores,
pois não são tratados como objetos pelo Java. São eles:
● short: Número inteiro curto. Aceita valores de -2¹⁵ até 2¹⁵ (ou seja, de -32,768 a
32,768).
● float: Número real (ou número de ponto flutuante). Aceita valores de 2⁻¹⁴⁹ até
(2-2⁻⁵²)·2¹²⁷. Detalhe: números float precisam da letra f ou F ao final. Ex: 8.5f ou 12.3F.
● double: Número real de dupla precisão. Aceita valores de 2⁻¹⁰⁷⁴ até (2-2⁻⁵²)·2¹⁰²³. É o tipo
numérico real padrão do Java. Portanto, use double, sempre que possível.
● boolean: Boleana (ou lógica). Aceita apenas os valores true (verdadeiro) ou false
(falso).
● char: Caractere único, delimitado com aspas simples. Exemplos: ‘a’; ‘b’; ‘w’.
Uma característica importante dos tipos primitivos, é que, como não são objetos, não
podem ser nulos (null). Devem, obrigatoriamente, possuir um valor antes de serem usados. Por
conta disso, todos possuem um valor padrão, que são:
● boolean: false.
Peculiaridade de long
Caso tenha o valor indicado diretamente no código fonte, uma número long pode vir a
precisar da letra l ou L logo após o número. Essa necessidade é apenas caso o valor numérico
exceda o máximo valor de int. Exemplos:
long idadeCivilizacao = 25000; (não precisa da letra ao final, pois 25000 pode ser int)
long bacterias = 9808974289L; (precisa da letra ao final, pois o valor é maior que int)
Classes Wrapper
Como vimos há pouco, os tipos primitivos: não são considerados objetos pelo Java e não
podem ser nulos. Isso pode trazer algumas desvantagens em algumas situações, como conversão
de tipos e possibilidade de não existir valor (ou seja, de aceitar null).
Para resolver essas desvantagens, é possível usar algumas classes da JDK que “imitam”
os tipos primitivos, mas, por serem classes, geram objetos com métodos e atributos e permitem o
valor nulo (null). São elas:
Para entender de maneira prática a diferença entre primitivos e wrappers, basta pôr um
ponto (.) após uma variável de qualquer um dos tipos e pressionar CTRL+Espaço no teclado.
Após a variável primitiva o NetBeans não sugere nada, mas após a Wrapper, ela sugere os
métodos e atributos públicos disponíveis (Vide Figura 10). Essa combinação de teclas, aliás, deve
ser usada sem moderação. Ela faz abrir uma janela com tudo que você pode escrever naquele na
posição do código em que está.
Na Figura 10 vemos o que acontece quando criamos uma variável do tipo Wrapper Integer
e pedimos para o NetBeans sugerir alguma ação a partir dela.
Note que o valor sempre deve estar entre aspas duplas! Aspas simples não são aceitas
para String em Java.
Como dito, String é uma classe, portanto uma variável String possui métodos públicos que
podem ser usados usando-se um ponto (.) após a variável. A seguir, alguns dos principais
métodos da String.
● toLowerCase() - Retorna uma versão da String com todos os caracteres em caixa baixa
(vulgo “minúsculo”). Importante: esse método NÃO altera a String original, apenas
devolve para quem a invocou uma outra String.
● toUpperCase() - Retorna uma versão da String com todos os caracteres em caixa alta
(vulgo “maiúsculo”). Importante: esse método NÃO altera a String original, apenas
devolve para quem a invocou uma outra String.
Praticando a String
Na classe executável do projeto, crie uma String com o nome e conteúdo que preferir (de
preferência um conteúdo com mais de 5 letras, usando tanto letras maiúsculas quanto
minúsculas). Use o System.out.println(...) para imprimir no Console os resultados dos métodos
aqui explicados ou qualquer outro que queira experimentar. Exemplo:
● Short
Short numero = new Short(“0”);
Short numero = Short.valueOf(“0”);
Short numero = Short.parseShort(“0”);
short numero = new Short(“0”);
short numero = Short.valueOf(“0”);
short numero = Short.parseShort(“0”);
● Integer:
Integer numero = new Integer(“0”);
Integer numero = Integer.valueOf(“0”);
Integer numero = Integer.parseInt(“0”);
int numero = new Integer(“0”);
int numero = Integer.valueOf(“0”);
int numero = Integer.parseInt(“0”);
● Long:
Long numero = new Long(“0”);
Long numero = Long.valueOf(“0”);
Long numero = Long.parseLong(“0”);
long numero = new Long(“0”);
long numero = Long.valueOf(“0”);
long numero = Long.parseLong(“0”);
● Float:
Float numero = new Float(“0”);
Float numero = Float.valueOf(“0”);
Float numero = Float.parseFloat(“0”);
float numero = new Float(“0”);f
float numero = Float.valueOf(“0”);
float numero = Float.parseFloat(“0”);
● Double:
Double numero = new Double(“0”);
Double numero = Double.valueOf(“0”);
Double numero = Double.parseDouble(“0”);
double numero = new Double(“0”);
double numero = Double.valueOf(“0”);
double numero = Double.parseDouble(“0”);
● Byte:
Byte numero = new Byte(“0”);
Byte numero = Byte.valueOf(“0”);
Byte numero = Byte.parseByte(“0”);
byte numero = new Byte(“0”);
byte numero = Byte.valueOf(“0”);
byte numero = Byte.parseByte(“0”);
● intValue(): Obtém o int possível a partir do objeto original. Por exemplo, um real
9.5 retornaria o inteiro 9.