Material IsiFILX
Material IsiFILX
castagnari.junior@gmail.com
castagnari.junior@gmail.com
Java Fundamentals
• Justificativa
• Apresentar técnicas de programação Orientada
a Objetos com implementações em uma
linguagem de programação.
2
Plano de Ensino
• Objetivo
• Capacitar o aluno a desenvolver aplicações
através do paradigma Orientado a Objetos.
• Capacitar o aluno a utilizar Java para resolução
de problemas computacionais
3
Plano de Ensino
• Java e Máquina Virtual
• Instalação e Configuração
• Fundamentos da Linguagem - Variáveis, tipos de dados, estrutura de
um programa
• Fundamentos da Linguagem - Decisões, Repetições
• Orientação a Objetos - classes, objetos, atributos e métodos
• Resolvendo problemas e Pensando orientado a Objetos
• Herança e Polimorfismo
• Resolução de Problemas com Herança
• Tratamento Exceções
• Arquivos
• Lambdas e Streams
4
Bibliografia
• Básica
• DEITEL, H, DEITEL, P. Java - Como Programar. Ed.
Pearson, 8a Edição, 2009
• SIERRA, K, BATES, B. - Use a Cabeça! Java. Alta
Books. 2005
5
Introdução
fonte: IEEE
6
Características
• Virtual Machine
• Ambiente de execução para código gerenciado
(Bytecode)
• Atua como um Sistema Operacional real,
gerenciando recursos, I/O, Memória, processos
• Orientação a Objetos
• Recursos desse paradigma
• Não possui herança múltipla (vamos discutir
mais à frente)
7
Características
• Distribuída
• Comunicação facilitada através de redes de
computadores
• Execução remota de recursos (RMI)
• Criação de aplicações server-side (Servlets,
JSP, etc.)
8
Características
• Segurança
• Nada é seguro!!!
• Sistemas de segurança na JVM
• Assinatura digital
• Grande eficácia
• Controle para evitar estouro de pilha
• Controle para evitar corrupção de memória
• Controle de Escrita ou leitura de arquivos locais
9
Características
• Dinâmica
• Adapta-se para o ambiente de execução
• Adiciona classes, métodos, variáveis em tempo
de execução
10
Características
• Bytecode
• Código intermediário, pré-compilado e pronto
para ser interpretado
11
Cuidado!!!
• JavaScript
• Linguagem de scripts para páginas Web; apesar
do nome e da sintaxe, não tem nada a ver com
a programação em Java
• Lenda 1: Java é extensão do HTML
• HTML é uma linguagem de marcação de
hypertexto
• Java é uma linguagem de programação
• O que Java e Javascript tem em comum?
• As 4 primeiras letras!
12
Cuidado!!!
13
Ambiente Java Típico
Fase 1 - O programa é criado no editor
(.java) e armazenado em disco
Memória Principal
- O verificador de bytecodes
Fase 4 confirma que todos os bytecodes
são válidos e não violam
restrições de segurança de Java.
15
Java Software Development Kit
16
Núcleo de funcionalidades
18
Bytecodes
• Um dos grandes atrativos da plataforma tecnológica Java é a
portabilidade do código gerado.
• Esta portabilidade é atingida através da utilização de
bytecodes.
• Bytecode é um formato de código intermediário entre o
código fonte, o texto que o programador consegue
manipular, e o código de máquina, que o computador
consegue executar.
• Na plataforma Java, o bytecode é interpretado por uma
máquina virtual Java (JVM).
19
Bytecodes
• A portabilidade do código Java é obtida à medida que máquinas
virtuais Java estão disponíveis para diferentes plataformas.
• Assim, o código Java que foi compilado em uma máquina pode ser
executado em qualquer máquina virtual Java, independentemente de
qual seja o sistema operacional ou o processador que executa o
código:
20
Máquina Virtual Java (JVM)
21
Algumas Palavras-chave Java
23
Precedência e Associatividade de
Operadores
24
• 2 + 3 * 5 = 17
• (2+3) * 5 = 25
25
Operadores de Incremento e Decremento
26
Estrutura de um Programa em Java
27
Estrutura de um Programa em Java
• // (comentário de única linha)
• indica que o restante da linha é um comentário
• /* (comentário de múltiplas linhas) */
• pode ser dividido em várias linhas
• /** (cometário de documentação) */
• programa utilitário javadoc - lê esses comentários e usa
os mesmos para preparar a documentação do programa
• Documentar programas e melhorar a legibilidade
• Dica: todo programa deve inciar com um
comentário indicando o propósito do programa.
28
Estrutura de um Programa em Java
• public class Welcome {
• Inicia a definição de classe para a classe Welcome
• class palavra reservada (sempre escrita em minúsculo)
• Convenção: nome de classes iniciam com uma letra
maiúscula e têm uma letra maiúscula para cada palavra
do nome de classe (ExemploNomeClasse) - identificador
• O identificador é uma série de caracteres que consistem em
letras, dígitos, sublinhados ( _ ) e sinais de cifrão ($) que não
iniciem com um dígito e não contenham nenhum espaço
• Java faz distinção entre letras maiúsculas e minúsculas -
erro de sintaxe
• Todas as definições de classe Java são armazenadas
em arquivos que terminam com a extensão nome de
arquivo “.java”
29
Estrutura de um Programa em Java
30
Estrutura de um Programa em Java
• public static void main (String args [ ] )
• Faz parte de todo aplicativo Java
• Responsável pelo início da execução dos aplicativos
• ( ) indicam que main é um método
• Palavra-chave void indica que esse método realizará
uma tarefa (exibindo uma linha de texto nesse
programa), mas não retornará nenhuma informação
• Dica: recue o corpo inteiro de cada definição de método
um “nível” de recuo entre { e } que definem o corpo do
método.
31
Método Main
32
Método Main
33
Método Main
• Argumento do main:
• O método main recebe como argumento um parâmetro
do tipo arranjo de objetos String.
• Cada elemento desse arranjo corresponde a um
argumento passado para o interpretador Java na linha
de comando que o invocou.
• Por exemplo, se a linha de comando é
• java Xyz abc 123 def
• o método main (String args []) da classe Xyz vai receber, nessa
execução, um arranjo de três elementos na variável args com os
seguintes conteúdos:
• em args[0], o objeto String com conteúdo "abc";
• em args[1], o objeto String com conteúdo "123";
• em args[2], o objeto String com conteúdo "def".
34
Compilando e Executando – aplicativo Java
• Usando o SDK:
• Para compilar:
• Abrir uma janela de comando
• Mudar para o diretório onde o código fonte está armazenado
• Digitar:
javac NomeDoPrograma.java
• Resultado: se o programa não contiver erros de sintaxe, o comando precedente
criará um novo arquivo - NomeDoPrograma.class contendo os bytecodes
de Java que representam nosso aplicativo
• Para executar:
• Digitar no diretório onde se encontram os arquivos .java
e .class:
java NomeDoPrograma
• Este comando dispara a execução do interpretador Java e
indica que ele deve carregar o arquivo .class
35
Argumentos
// Principal.java
// Mostra o uso de argumentos
public class Principal{
public static void main(String args[]){
int numargs = args.length;
String arg1 = args[0];
args.length
String arg2 = args[1];
}
} args[0] args[1] args[2] ...
36
System.out
(objeto de saída padrão)
• System.out.println(“Welcome to Java Programming!”);
• Instrui o computador a realizar uma ação: imprimir a
string de caracteres contida entre aspas duplas.
• System.out é conhecido como objeto de saída padrão
• Permite exibir strings e outros tipos de informações na janela de
comando a partir da qual o programa Java é executado.
• O método System.out.println exibe (ou imprime) uma
linha de texto na janela de comando.
• A linha inteira System.out.println , seu argumento entre
parênteses e ; , é uma instrução.
• Cada instrução deve terminar com ;
37
Estrutura do Programa
38