Java #1: Introdução

Logo do Java por Freepik em www.flaticon.com
Olá pessoas ... e bots.

Eras atrás, antes mesmo de começar esse blog, uma das coisas que gostava de fazer para testar meus conhecimentos e habilidade de comunicação era ensinar um pouco do que sei a outras pessoas - principalmente por texto.
Retomando esse hábito, estou refazendo do zero uma série de tutoriais de programação para ajudar quem queira entrar no mundo do desenvolvimento de software ou relembrar conceitos mais básicos, focando em transmitir o conteúdo de forma direta e fácil de compreender.
Ícone por oNline Web Fonts

TI Livre

Este tutorial de Java faz parte do meu projeto TI Livre, que tem o mesmo objetivo descrito no último parágrafo: ensinar um pouco do que sei a outras pessoas. Porém aproveitando os recursos Google Suite para oferecer uma maior variedade de formatos, tornando esse conteúdo mais acessível.
Cada parte do tutorial, incluindo essa, será publicada junto com uma apresentação de slides - ambos com o conteúdo de um capítulo da apostila online. Entretanto mais formatos podem ser adicionados no futuro.
Sendo um projeto Livre, você pode usar e compartilhar à vontade, só lembre de dar créditos quando o fizer.
Ícone por oNline Web Fonts

Pré-requisitos

  • Lógica de Programação [Obrigatório]
    Sem lógica não se faz nada direito em programação, é como querer lançar foguetes sem saber o básico de física. Vale lembrar que Java não é uma linguagem recomendável para estudar lógica de programação, é como ir ao mercado em um foguete.
  • Estruturas de Dados [Recomendável]
    Ajuda a compreender melhor o funcionamento de alguns recursos da plataforma Java e acelera o aprendizado
  • Orientação a Objetos [Recomendável]
    É basicamente o núcleo da linguagem Java, já ter esse conhecimento de antemão torna o aprendizado bem fácil – ou pode-se usar o Java para estudar Orientação a Objetos
Logo do Java por Freepik
em www.flaticon.com

Porque Java?

Este tutorial assume que você já está interessado em aprender Java, mas para o caso de ainda estar na dúvida irei listar alguns bons motivos a seguir - que você também pode conferir em apresentação de slides se preferir. Caso já tenha decidido aprender a linguagem, pode pular para a próxima seção.
  • Alto Nível
    Java é mais próxima de linguagem humana que da linguagem de máquina
  • Sintaxe C
    Se já conhecer linguagem C, C++ e similares, se sentirá em casa
  • Máquina Virtual (JVM)
    Código não executa direto no dispositivo, aumentando segurança e portabilidade por não depender da plataforma em que executa
  • Gerenciamento de memória automático
    Apesar da proximidade com C/C++, não é preciso gerenciar memória manualmente
  • Tipagem Estática
    Variáveis tem tipo bem definido, que deve ser respeitado enquanto elas existirem na memória
  • Prevenção de erros
    Permite e induz a prevenir erros em tempo de compilação, reduzindo imprevistos
  • Multi-thread
    Permite executar tarefas de forma paralela, tornando aplicações mais responsivas
Ícone por oNline Web Fonts

Orientação a objetos

Revisando rapidamente o conceito, precisamos antes de mais nada definir objetos: estruturas lógicas que armazenam estado (campos) e/ou funcionalidades (métodos). São análogos a estruturas de dados usadas em linguagens mais simples, como o C, porém permitem incorporar as funcionalidades dentro de si, além de oferecerem mais flexibilidade e facilidade ao desenvolvedor.

Classes são os “moldes” à partir dos quais os objetos são feitos, grosso modo podem ser vistas como a definição das estruturas lógicas chamadas de Objetos. Vendo por outro ângulo, um objeto é uma entidade lógica particular que contém as informações e funcionalidades de um determinado modelo - usando o jargão da programação, uma instância de uma classe.
Ícone por Feather Icons

Classes e objetos no Java

Absolutamente todos os objetos em Java são instâncias de classes, de forma que a linguagem pode até mesmo ser chamada de “orientada a classes” – pois as classes são o pilar central desta linguagem.
Com exceção de um certo recurso que será tratado no próximo tópico, tudo no Java é implementado através de classes, pacotes (grupo de unidades de código com identificação exclusiva) e alguns recursos mais específicos que não vem ao caso nesse momento.
Ícone por oNline Web Fonts

Tipos primitivos

A grande exceção à regra, valores brutos sem nenhuma funcionalidade integrada - apenas o valor armazenado na memória. Os tipos primitivos existem desde a primeira versão da linguagem por questão de desempenho (são bem mais rápidos que objetos) e consumo de recursos (também são bem mais leves), ajudando a otimizar o código onde seja necessário.
Via de regra, deve-se usar tipos primitivos para toda informação que não exija um objeto especializado, como valores simples e variáveis de controle.
Esses são os tipos primitivos:
  • byte
    Inteiro de: 8 bits    Padrão: 0    Com sinal
    Intervalo: -128 a 127
  • short
    Inteiro de: 16 bits    Padrão: 0    Com sinal
    Intervalo-32,768 a 32,767
  • int
    Inteiro de: 32 bits    Padrão: 0    
    Intervalo: -2,147,483,648 a 2,147,483,647
  • long
    Inteiro de: 64 bits    Padrão: 0    Com sinal
    Intervalo: -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807
  • float
    Ponto Flutuante de: 32 bits    Padrão: 0
  • double
    Ponto Flutuante de: 64 bitsPadrão: 0
  • boolean
    Binário (true ou false)    Padrão: false
  • char
    Caractere de 16 bits    Padrão: ‘0’
Todos são usados com o exato nome escrito nessa lista, com todas as letras sempre em minúsculo.
Ícone por Feather Icons

Objetos - de novo

Como você deve ter percebido, não há um tipo primitivo para cadeias de caracteres (strings) apesar de haver um tipo para caractere (char). Isso se deve ao fato de que no Java Strings são objetos. Embora seja permitido colocar strings diretamente no código (entre aspas duplas), internamente elas são objetos que armazenam uma quantidade arbitrária de caracteres (até tem um limite, mas é ridiculamente alto).

Como todo objeto, o valor padrão para uma variável do tipo String terá null como valor padrão. Mas variáveis fazem parte do próximo capítulo, então sem mais spoilers por aqui.

Comentários