0

Java - Características da Linguagem

#Java
Gabriel Machado
Gabriel Machado

Tipos Primitivos


What does it do when a number is followed by a letter? - Stack Overflow


byte

Tamanho: 8 bits

Numérico

Declaração:

  • byte b;
  • byte b = 127; → tamanho máximo que pode receber
  • byte b = -128; → tamanho mínimo que pode receber

Não pode receber null


char

Tamanho: 16 bits

Alfanumérico

Declaração:

  • char c;
  • char c = 'A';
  • char c = 15;

Como é um único caractere não é possível as seguintes declarações:

  • char c = 'AA';
  • char c = -100;

Não pode receber null


short

Tamanho: 16 bits

Numérico

Declaração:

  • short s;
  • short s = 32767; → tamanho máximo que pode receber
  • short s = -32768; → tamanho mínimo que pode receber

Não pode receber null


int

Tamanho: 32 bits

Numérico

Declaração:

  • int i
  • int i = 2147483647; → tamanho máximo que pode receber
  • int i = -2147483648; → tamanho mínimo que pode receber

Não pode receber null


long

Tamanho: 64 bits

Numérico

Necessita ter um L ou l no final para indicar para o compilador que é do tipo long.

Declaração:

  • long l
  • long l = 9223372036854775807l; → tamanho máximo que pode receber
  • long l = -9223372036854775808L; → tamanho mínimo que pode receber

Não pode receber null


float

Tamanho: 32 bits

Numérico não inteiro (decimal)

Pode receber um f no final para indicar para o compilador que é do tipo float.

Declaração:

  • float f;
  • float f = 65f;
  • float f = 65.0f; → 3.402,823,5 E+38
  • float f = -0.5f; → 1.4 E-45

Não pode receber null


double

Tamanho: 64 bits

Numérico não inteiro (decimal)

Maior que o float

Declaração:

  • double d;
  • double d = 1024.99; → 1.797,693,134,862,315,7 E+308
  • double d = 10.2456; → 4.9 E - 32

Não pode receber null


boolean

Só aceita os valores true ou false .

Declaração:

  • boolean bo;
  • boolean bo = true;
  • boolean bo = false;

Não aceita os valores como string:

  • boolean bo = "true";
  • boolean bo = "false";

Não pode receber null


void

  • Palavra reservada.
  • Não é um tipo de variável.
  • Serve para indicar que um método não tem retorno, não retorna nada.


Wrappers

  • São objetos que representam os tipos primitivos.
  • Auto-boxing (auto inicialização) e Unboxing.
  • Seguem as mesmas regras dos primitivos.
  • São declarados como se fossem classes (começando com letra maíuscula).
  • São objetos e por isso é possível atribuir null à eles.
  • Possuem métodos utilitários como get e valueOf .


Auto-Boxing


Byte

Declaração:

  • Byte b = 127
  • Byte b = -128
  • byte nullByte = null;


Character

Declaração:

  • Charactere c = 'A'
  • Charactere c = 15


Short

Declaração:

  • Short s = 32767
  • Short s = -32768


Integer

Declaração:

  • Integer i = 2147483647
  • Integer i = -2147483648


Long

Declaração:

  • Long l = 9223372036854775807l
  • Long l = -9223372036854775808L


Float

Declaração:

  • Float f = 65f
  • Float f = 65.0f
  • Float f = -0.5f


Double

Declaração:

  • Double d = 1024.99
  • Double d = 10.2456


Boolean

Declaração:

  • Boolean bo = true
  • Boolean bo = false
  • Boolean bo = Boolean.getBoolean("false"); → OK
  • Boolean bo = Boolean.valueOf("true"); → OK


Unboxing

Atribuir um Wrapper à um tipo primitivo.

int i = new Integer(3);

int i = Integer.valueOf(1024);

boolean b = Boolean.TRUE;

boolean b = Boolean.getBoolean("false");


Diferença entre Auto-boxing e Unboxing

Auto-boxing = é passado um valor puro para um tipo de objeto.

Unboxing = é construído um objeto atribuindo-o a um tipo primitivo.


Tipos não primitivos

  • String
  • Number
  • Object
  • Qualquer outros objetos


String

Sequência de caracteres.

Declaração:

String texto = "Hello World";


Void

Com letra maiúscula.

É um tipo válido mas não representa nada, é uma classe vazia.

Void v;


Object

Objeto principal do Java, todos os outros objetos estendem a classe Object.

Object o = new Object();


Number

Pode receber atribuições de qualquer tipo numérico.

Number numero = Integer.valueOf(100);


Tipagem estática

O Java faz a verificação do tipo da variável em tempo de compilação.

Exemplo:

Integer numero = "123456789";

Quando um código com essa linha tentar ser compilado, o próprio compilador indicará um erro dizendo que o tipo Integer não pode receber valores do tipo "String".


Tipagem forte

Significa que uma vez atribuído uma tipagem a uma variável, não é possível mudá-la.

Exemplo:

Caso uma variável seja criada dessa forma:

String texto = "meu texto";

Não será possível atribuí-la com um tipo diferente do inicial:

text = 1000; → Apresentará erro na compilação

Porém é possível atribuir um novo valor à essa variável caso ele seja do mesmo tipo:

texto = "olá mundo";


Tipo Inferido

Adicionado ao Java a partir da versão 10.

É possível criar uma variável sem atribuir a ela um tipo explícito:

var numero = Integer.valueOf("123456");

var texto = "Olá";

A tipagem forte continua existindo, a diferença é que a variável só vai receber um tipo quando o valor for atribuído a ela.


Modificadores de acesso


public

Pode ser acessada de qualquer lugar por qualquer entidade que possa visualizar a classe a que ela pertence.


private

Os métodos e atributos da classe definidos como privados não podem ser acessados ou usados por nenhuma outra classe. Esses atributos e métodos também não podem ser visualizados pelas classes herdadas.


protected

Torna o membro acessível às classes do mesmo pacote ou através de herança, seus membros herdados não são acessíveis a outras classes fora do pacote em que foram declarados.


default

A classe e/ou seus membros são acessíveis somente por classes do mesmo pacote, na sua declaração não é definido nenhum tipo de modificador, sendo este identificado pelo compilador.


Abstract

Esse modificador não é aplicado nas variáveis, apenas em classes e métodos. Uma classe abstrata não pode ser instanciada. Se houver alguma declaração de um método como abstract (abstrato), a classe também deve ser marcada como abstract.


Static

É usado para a criação de uma variável que poderá ser acessada por todas as instâncias de objetos desta classe como uma variável comum, ou seja, a variável criada será a mesma em todas as instâncias, a modificação ocorre em todas as demais. E nas declarações de métodos ajudam no acesso direto à classe, portanto não é necessário instanciar um objeto para acessar o método.


Final

Quando é aplicado na classe, não permite estender, nos métodos impede que o mesmo seja sobrescrito (overriding) na subclasse, e nos valores de variáveis não pode ser alterado depois que já tenha sido atribuído um valor.


Interfaces


Métodos abstratos

  • Devem ser implementados por todos;
  • Novos métodos quebram as implementações;


Métodos default

  • São herdados a todos que implementam;
  • Novos métodos não quebram as implementações;


Herança múltipla

Não possui herança múltipla (classes). Porém é possível implementar mais de uma interface.


Enum

Basicamente são dicionários de dados imutáveis.

Não é permitido criar novas instâncias.

O construtor é sempre declarado como private.

Por convenção, por serem objetos constantes e imutáveis (static final), os nomes são em MAIÚSCULO.

0
9

Comentários (0)

20 anos / Desenvolvedor na Seidor Brasil

Brasil