0% acharam este documento útil (0 voto)
43 visualizações

Java

Enviado por

nukep2
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
43 visualizações

Java

Enviado por

nukep2
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 20

E-BOOK

BÁSICO
CONTEÚDO
Organizado por ordem de assunto.

1. Pacotes
2. classes
3. main
4. scanner
5. Métodos da classe Scanner
6. Tipos primitivos
7. Variáveis e suas categorias
8. Estruturas condicionais
9. Loops
10. Vetores e matrizes
11. Métodos
12. Modificadores de acesso
13. try-catch
PACOTES

Meus parabéns por terem chegado até aqui. A partir de agora iremos
utilizar essa linguagem tão amada (as vezes não) pelos DEV's.

De inicio, vamos aprender sobre a organização de pacotes.

Imagine que você está atrasado para um evento e precisa achar um


documento no seu quarto. Ao entrar no cômodo, vê que tudo está
bagunçado e as coisas estão em algum canto. Você provavelmente iria
demorar um certo tempo para achar o documento.

Se o quarto estivesse arrumado, você acharia bem mais rápido.

Os pacotes seguem a mesma estrutura de organização, nos permitindo ter


mais controle sobre tudo.

Os padrões dos projetos seguem a URI(Uniform Resource Identifier), ou


seja, o dominio de um site, seguido do nome do projeto e por fim, nas
camadas com que se trabalha (Utilizando o padrão MVC como exemplo)

br.com.vainaweb.blogbackend.model

O exemplo acima nos diz que a equipe do vai na web está construindo um
back-end de um blog e que nesse pacote estarão todas as nossas classes
model
CLASSES

Uma classe é como um molde; dentro dela, possui métodos e


atributos. O padrão de nomenclatura adotado é o PascalCase, no
qual a primeira letra precisa ser maiúscula. Outro ponto importante
sobre as classes é que sua nomenclatura deve representar o que ela
é, não o que ela faz. Como exemplo:

A partir da nomenclatura, já é possível perceber que aqui se


encontram os métodos responsáveis pelos cálculos da nossa
aplicação.

PS: Evite o uso de verbos nesta descrição.

MAIN
O método main é a porta de entrada dos nossos programas. Sem a
main não roda!

É um método obrigatório e sua sintaxe segue essa estrutura.


Sendo:
public -> Modificador de acesso
static -> Palavra reservada
void -> tipo de retorno vazio
main -> Nome do método
(String[] args) -> Um array de Strings

SCANNER
Antes de tudo, vamos conhecer um pouco sobre a classe Scanner.
Ela nos oferece métodos de saída no console e é utilizada como
padrão.

Nas aulas foram apresentados 3 métodos de saída, sendo eles:

System.out.println(“Mensagem”); -> Impressão com quebra de linha


no final

System.out.print(“Mensagem”); -> Impressão sem a quebra de linha


no final

System.out.printf(“Mensagem”); -> Impressão com formatação


IMPRESSÃO COM O PRINTF
Para a impressão formatada com o printf precisamos “reservar”
espaços dentro do nosso método e para isso utilizamos o %
seguido de um caracter que indica o tipo de dado que sera inserido

%d para números inteiros

%f para números reais

%s para strings

%c para caracteres

Se você seguiu esse exemplo, muito provavelmente tenha aparecido


sete digitos após a virgula na altura. Podemos controlar isso
utilizando o %.2f -> Formatando a saída para apenas 2 números
após a virgula
TIPOS PRIMITIVOS
Em Java, temos um total de oito tipos primitivos, sendo eles: byte,
short, int, long, boolean, float, double e char. Cada um possui suas
características específicas.

INTEIROS
Tamanho
Tipo Faixa Valor Padrão
(bits)

byte 8 -128 a 127 0

-32.768 a
short 16 0
32.767

int 32 -231 a 231 – 1 0

long 64 -263 a 263 -1 0L

REAIS
Tamanho
Tipo Faixa Valor Padrão
(bits)

IEEE 754 ±1,40129846432481707e-45


float 32 0.0f
a 3,40282346638528860e+38

IEEE 754 ±4,94065645841246544e-


double 64 0.0d
324 a 1,79769313486231570e+308
CARÁCTER
O tipo char permite armazenar um caractere Unicode, utilizando para
isso 16 bits.

Seu valor mínimo é ‘\u0000’ (ou 0), e seu valor máximo é ‘\uffff’ (ou
65535).

O Unicode é um padrão da indústria para representar dados


relacionados a texto, incluindo letras, símbolos e caracteres especiais.
Valor padrão para o tipo char: ‘\u0000’

Podemos armazenar um conjunto de caracteres usando um tipo


especial de referência denominado String (que é na verdade uma
classe), o qual será visto posteriormente.

LÓGICO
O tipo boolean permite armazenar um valor lógico nos estados True ou False
(verdadeiro ou falso), ocupando apenas 1 bit de espaço.

Valor padrão para o tipo boolean: false

VARIÁVEIS
Uma variável é uma estrutura que permite armazenar dados na memória durante a
execução do programa, para processamento de informações.

Todas as variáveis devem ser declaradas antes que possam ser usadas. Declarar uma
variável significa criá-la em algum ponto do programa

A linguagem Java é fortemente tipada. Isso significa que cada variável


obrigatoriamente deve ter um tipo declarado antes que possa ser utilizada.
Para criar um identificador (nome da variável) em Java, precisamos seguir algumas
regras, listadas a seguir:

Deve conter apenas letras, _ (underline), $ ou os números de 0 a 9


Deve obrigatoriamente se iniciar por uma letra, _ ou $
Deve iniciar com uma letra minúscula (boa prática – camelCase)
Não pode conter espaços
Não podemos usar palavras-chave da linguagem
O nome deve ser único dentro de um escopo

Além disso, o Java é case sensitive, o que significa que os nomes de variáveis
diferenciam maiúsculas de minúsculas., ou seja

int numeroUm e int numeroum -> são variáveis diferentes.

Exemplos de nomes de variáveis:

Válidos:
nomeCliente
telefone_1
preco$
produtoAdquirido

Inválidos:
1Telefone
Nome Cliente
#Preço

Para a declaração das variáveis no java seguimos a seguinte sintaxe:

tipo identificador [= valor];

onde tipo é o tipo de dado que a varável irá armazenar, identificador é seu nome, e
valor é o valor inicial atribuído à variável, o qual é opcional (denotado pelos
colchetes, que não devem ser digitados na declaração).
Exemplo de declaração com inicialização:

CATEGORIAS DE VARIÁVEIS
Existem três categorias de variáveis que podem ser declaradas em Java, sendo elas.
Locais, de instância e de classe

Falaremos sobre esses três tipos de variáveis mais adiante no curso, quando já
tivermos apresentado os conceitos de orientação a objetos. Porém, vamos conceituá-las
de forma muito concisa a seguir, como uma introdução ao assunto:

Variáveis Locais

Podem ser utilizadas dentro do método onde foram declaradas, não sendo acessíveis
de outros pontos do programa.

Variáveis de Instância

Uma classe pode conter variáveis que são declaradas fora dos métodos, chamadas de
Variáveis de Instância. São usadas pelos objetos para armazenar seus estados.
Seus valores são específicos de cada instância e não são compartilhados entre as
instâncias.

Variáveis de Classe

Variáveis declaradas como estáticas são variáveis compartilhadas entre todos os


objetos instanciados a partir de uma classe. Por isso, essas variáveis também são
conhecidas como Variáveis de Classe.
ESTRUTURAS CONDICIONAIS
Assim como em outras linguagens de programação. No java temos as queridas
estruturas condicionais que nos permite fazer desvios de fluxo.
Essas estruturas são o if-else e switch-case. Temos também a operação ternária.

IF-ELSE
A leitura da estrutura condicional if em programação é a seguinte: 'Se isso for
verdadeiro, execute esta instrução; caso contrário, execute aquela instrução'. Isso nos
leva a entender que o bloco if executa as operações quando a condição é verdadeira,
enquanto o bloco else executa as operações quando a condição é falsa, tudo de acordo
com a condição especificada.
Abaixo, apresento um exemplo do uso dessa estrutura, simulando um sistema de
segurança que verifica se uma pessoa é maior de idade para autorizar sua entrada na
balada.

Com isso, instruímos o computador a imprimir a mensagem “você pode entrar” se a


condição for verdadeira (idade >=18 -> lê-se idade maior ou igual a 18.). Caso a idade
seja menor que 18 anos (idade < 18) o bloco if vai ser executado.
SWITCH-CASE
Uma estrutura utilizada para escolhas de caso unico, ou seja, que apenas um tipo é
verificado. Dentro dela temos uma estrutura chamada jump-table (Tabela Salto) que
permite a execução da instrução presente no caso escolhido após uma leitura das
opções.

Abaixo, temos um exemplo de um menu de seleção de personagens:

Ao utilizar a estrutura switch em programação, realizamos uma comparação entre


opções. No código apresentado, é semelhante a 'compare a opção digitada com os
casos disponíveis'. Assim, se o usuário digitar '2' no teclado, o compilador executará o
bloco de instruções associado ao caso '2'.
Observação: A palavra-chave break é usada para interromper a execução e sair da
estrutura. Caso não esteja presente, ocorrerá um efeito cascata, onde os casos
subsequentes também serão executados.

Nas versões atuais existe a possibilidade de criar um switch e não necessariamente


colocando um break em todos os cases.
TERNÁRIO
A operação ternária em Java é uma maneira concisa de expressar uma estrutura
condicional em uma única linha. Ela é comumente utilizada quando se deseja atribuir um
valor a uma variável com base em uma condição simples.
A sintaxe básica da operação ternária é a seguinte:

variavel = (condicao) ? valor_se_verdadeiro : valor_se_falso;

funciona da seguinte forma:


condição: A expressão booleana que será avaliada. Se for verdadeira, o valor à
esquerda do : será atribuído à variável; caso contrário, o valor à direita do : será
atribuído.
valor_se_verdadeiro: O valor atribuído à variável se a condição for verdadeira.
valor_se_falso: O valor atribuído à variável se a condição for falsa.

Exemplo:

ESTRUTURAS DE REPETIÇÃO
Para facilitar nosso trabalho, contamos com as estruturas de repetição. Seu nome é
autoexplicativo, pois as repetições, ou loops, são uma maneira eficiente de automatizar
tarefas repetitivas, tornando o código mais legível. Existem três tipos principais: for, while
e do-while.
FOR
O loop for é ideal quando o número de iterações é conhecido antecipadamente. Sua
sintaxe é estruturada, composta por uma inicialização, uma condição de continuação e
uma expressão de incremento ou decremento. Aqui está um exemplo básico:

Nesse exemplo estaremos contando de 0 a 4.


A sintaxe do for é: for(inicialização ; condição ; iteração)

WHILE

O loop while é usado quando a condição de repetição é conhecida, mas o número exato
de iterações não. Ele continua executando enquanto a condição especificada for
verdadeira. Exemplo:

DO-WHILE

O loop do-while é semelhante ao while, mas garante que o bloco de código seja
executado pelo menos uma vez, mesmo se a condição for inicialmente falsa. Aqui está
um exemplo:
Todos os exemplos presentes são de contagens utilizando essa estrutura de repetição.
Lembrando que as estruturas serão utilizadas de acordo com os requisitos do seu
programa e da sua lógica.

ARRAY
Um array é como um arranjo de dados do mesmo tipo. Conseguimos colocar um
determinado numero de dados dentro dele, desde que sejam do mesmo tipo. Iremos
começar com vetores e matrizes.

Exemplo: int[] numeros = new int[5] -> Com essa sintaxe consigo dizer para o usuário
que ele pode inserir 5 numeros inteiros dentro de um vetor, ou seja, em apenas uma
variavel (numero) temos 5 dados.

Eles funcionam com todos os outros tipos de dados, sejam eles primitivos ou objetos.

Abaixo temos um exemplo de um vetor ja inicializado.


Para percorrer um vetor precisamos de um loop e o que é mais utilizado é o for,
como mostrado no exemplo acima.

Temos a opção de utilizar o for especial, também conhecido como for-each. Sua
sintaxe é.

for(tipo variavelAuxiliar : array){} -> Vamos utilizar essa estrutura para percorrer
esse vetor.

Lê-se: para cada elemento do vetor, imprima. Nesse caso, cada elemento do vetor
será armazenado dentro da nossa variavel auxiliar.

Pulando pras matrizes que são conhecidas como vetor de vetores.

sintaxe -> int[][] matriz = new int [3][3] -> Informando que é possível guardar três
linhas e 3 colunas com dados do tipo inteiro.

abaixo, um exemplo de uma matriz iniciada com 4 linhas e 3 colunas e como


podemos percorre-la
percorrendo a matriz com o for-each:

E antes de tudo, temos a opção de percorrer tudo transformando em strings e


imprimindo no console através da classe Arrays.

Arrays.toString(vetor); -> Para os vetores


Arrays.deepToString(matriz) -> Para matrizes.

MÉTODOS
Um método é um bloco de código com instruções para realizar determinada tarefa.
Muito utilizado para a delegações de tarefas especificas.
Sua sintaxe é -> [Modificador de acesso] [tipo de retorno] nome(){}. Também
chamado de assinatura do método

Um exemplo seria: public int somarDoisNumeros(){} -> criando um método apenas


para a soma de dois números inteiros.
Uma boa prática é deixar os nomes dos métodos com verbos e utilizando o
camelCase. somar, subtrair e multiplicarTresNumeros são exemplos de nomes de
métodos

Acima temos um exemplo de um método publico, estático, sem tipo de retorno com
o nome dividir e que recebe 2 argumentos pra ser utilizado.

palavra static : Quer dizer que o método ou a variável pertencem a classe e não
precisam de instancia de objeto para ser acessada. Quando abordar sobre as classes
as coisas ficarão mais fáceis de compreender
Modificadores de acesso
Em Java, utilizamos alguns modificadores que nos permitem “proteger” o acesso a
um atributo, método ou até mesmo uma classe, de outras classes. Basicamente
Java possui quatro modificadores básicos de acesso: private, protected, default e
public.

Modificador private: private é um modificador de acesso que restringe totalmente o


acesso aquele recurso da classe de todas as demais classes, sejam elas do mesmo
pacote, de outros pacotes ou até subclasses. Este modificador pode ser aplicado a
atributos e métodos.

Modificador default: default é um modificador um pouco menos restritivo que o


private. Este tipo de modificador é aplicado a todas as classes, atributos ou
métodos, os quais, não tiveram o seu modificador explicitamente declarado.
Este modificador permite que apenas classes do mesmo pacote tenham acesso as
propriedades que possuem este modificador.

Modificador protected : protected é um modificador um pouco menos restritivo que o


default. Com este tipo modificador, podemos declarar que um atributo ou método é
visível apenas para as classes do mesmo pacote ou para as subclasses daquela
classe. (Abordaremos subclasses quando entrarmos em heranças).

Modificador public : public é o modificador menos restritivo de todos os demais.


Declarando classes, atributos ou métodos com este modificador, automaticamente
dizemos que aquela propriedade é acessível a partir de qualquer outra classe.
Dentro de um arquivo .java, só pode existir uma classe do tipo public, e está classe
precisa obrigatoriamente ter o mesmo nome que o nome do arquivo .java.
Além dos modificadores de acesso, temos vários outros modificadores que serão
abordados futuramente. A seguir, temos uma relação de todos os modificadores e
os seus respectivos impactos quando aplicados a Classes, Métodos e Atributos.

TRY-CATCH
São blocos de código usados em muitas linguagens de programação para lidar com
exceções, erros ou condições imprevistas durante a execução de um programa. A ideia
básica é tentar executar um bloco de código dentro do try, e se ocorrer uma exceção (um
erro), esse erro é capturado pelo bloco catch associado.
A estrutura é a seguinte:

Aqui estão os principais componentes:


try: Contém o código que pode gerar uma exceção.
catch: Captura e lida com exceções específicas. Pode haver vários
blocos catch para lidar com diferentes tipos de exceção, ou apenas
um genérico. (Aconselhável não utilizar o tipo genérico a todo
momento).

Utilizando o exemplo que vimos em aula. Vamos trabalhar com o tratament


de duas exceções. A InputMismatchException para caso digite um dad
diferente do que é pedido e a ArithmeticException para o caso da divisão po
zero (impossível).

Importante ressaltar que nessa estrutura ainda temos o finally, que ser
executado independentemente do programa lançar a exception ou não
MATERIAL EXCLUSIVO
Turma de Back-End Módulo 1

Você também pode gostar