Certificação 1Z0-829 – Dia 4

Tempo de leitura: 2 min

Escrito por Michel Adriano Medeiros
em 08/04/2023

Importação Redundantes

Se temos que importar os pacotes toda vez que utilizamos uma classe. Então, por que para utilizar a classe System não precisamos fazer o importe?

Isso acontece porque há um pacote no Java que é importado automaticamente, esse pacote é o java.lang. Você pode até importar esse pacote, mas não precisa, isso seria redundante.

As importação de java.lang são redundantes porque o pacote lang já é importado automaticamente pelo Java. A importação do Random também é redundante porque a importação com o util.* já traz a classe Random.

No exame pode ser que apareçam códigos que você precise saber de onde importá-los. Qual pacote deve ser importado para o código compilar?

Há duas maneiras.

import java.nio.file.*;

ou

import java.nio.files.Files;

import java.nio.file.Paths;

Algumas importações que não funcionam.

import java.nio.*; essa importação não importa subpacotes, no caso eu quero o file.Files.

import java.nio.*.*; só pode utilizar um asterístico e deve estar no fim.

import java.nio.file.Paths.*; a importação só serve para classes, não importa métodos.

Conflitos com Nomes

Classes e pacotes não precisam ter nomes únicos. Isso significa, que uma classe pode estar em vários pacotes. Um exemplo é a classe Date. O Java fornece a implementação java.util.Date e java.sql.Date. Qual importe devo fazer para o código a seguir?

Para esse caso pode ser fácil, sem contexto não dá para saber, mas pode-se fazer o import coringa (wildcard).

import java.util.*;

import java.sql.*; // se importar as duas dessa maneira o código não compila

Quando a classe com o mesmo nome é encontrada em vários pacotes, o Java vai lançar um erro de compilação. No exemplo dado, basta remover o import java.sql.*. Mas, e se precisarmos de alguma classe do pacote java.sql?

import java.util.Date;

import java.sql.*;

Agora sim. Simplesmente importei somente a classe que era necessária no pacote util e no pacote sql utilizei a importação coringa (wildcard). Posso importar somente as duas classes Date dessa maneira?

import java.util.Date;

import java.sql.Date;

Aqui vamos ter um problema, porque ao vincular uma variável ao Date, o Java não vai saber qual é o Date padrão para assumir tipo da variável. Dessa maneira ao criar uma variável, vamos ter que dizer a qual Date estamos associando a variável.

Criando um Novo Pacote

Até agora os exemplos só utilizaram o pacote padrão. Contudo pode aparecer no exame algum exemplo que tenha mais pacotes. Quando o Java executa o programa ele sabe que ambos os pacotes tem ligação.

Month Enum, LocalDate e StringBuilder

Java Month Enum || Java Month in a Year || java.time.Month enum || java.time package || #406
119 – Classes Utilitárias – LocalDate
Aula 44 – Demais métodos da StringBuilder

Welcome to your Certificação Java 1Z0-829 Dia 4

Qual é a saída para o seguinte código?

int year = 1874;
int month = Month.MARCH;
int day = 24;
LocalDate date = LocalDate.of(year, month, day);
System.out.println(date.isBefore(LocalDate.now()));

Qual é a saída para o seguinte código?

var b = "12";
b += "3";
b.reverse();
System.out.println(b.toString());

Você vai gostar também:

Para enviar seu comentário, preencha os campos abaixo:

Deixe um comentário


*


*


Seja o primeiro a comentar!

Damos valor à sua privacidade

Nós e os nossos parceiros armazenamos ou acedemos a informações dos dispositivos, tais como cookies, e processamos dados pessoais, tais como identificadores exclusivos e informações padrão enviadas pelos dispositivos, para as finalidades descritas abaixo. Poderá clicar para consentir o processamento por nossa parte e pela parte dos nossos parceiros para tais finalidades. Em alternativa, poderá clicar para recusar o consentimento, ou aceder a informações mais pormenorizadas e alterar as suas preferências antes de dar consentimento. As suas preferências serão aplicadas apenas a este website.

Cookies estritamente necessários

Estes cookies são necessários para que o website funcione e não podem ser desligados nos nossos sistemas. Normalmente, eles só são configurados em resposta a ações levadas a cabo por si e que correspondem a uma solicitação de serviços, tais como definir as suas preferências de privacidade, iniciar sessão ou preencher formulários. Pode configurar o seu navegador para bloquear ou alertá-lo(a) sobre esses cookies, mas algumas partes do website não funcionarão. Estes cookies não armazenam qualquer informação pessoal identificável.

Cookies de desempenho

Estes cookies permitem-nos contar visitas e fontes de tráfego, para que possamos medir e melhorar o desempenho do nosso website. Eles ajudam-nos a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo website. Todas as informações recolhidas por estes cookies são agregadas e, por conseguinte, anónimas. Se não permitir estes cookies, não saberemos quando visitou o nosso site.

Cookies de funcionalidade

Estes cookies permitem que o site forneça uma funcionalidade e personalização melhoradas. Podem ser estabelecidos por nós ou por fornecedores externos cujos serviços adicionámos às nossas páginas. Se não permitir estes cookies algumas destas funcionalidades, ou mesmo todas, podem não atuar corretamente.

Cookies de publicidade

Estes cookies podem ser estabelecidos através do nosso site pelos nossos parceiros de publicidade. Podem ser usados por essas empresas para construir um perfil sobre os seus interesses e mostrar-lhe anúncios relevantes em outros websites. Eles não armazenam diretamente informações pessoais, mas são baseados na identificação exclusiva do seu navegador e dispositivo de internet. Se não permitir estes cookies, terá menos publicidade direcionada.

Visite as nossas páginas de Políticas de privacidade e Termos e condições.

Importante: Este site faz uso de cookies que podem conter informações de rastreamento sobre os visitantes.
Criado por WP RGPD Pro