Compilador Java

Propaganda
Programação – JAVA
Unidade 1 - Introdução
Prof. Aparecido V. de Freitas
Mestre e Doutorando em Engenharia
da Computação pela EPUSP
1
Bibliografia
• Beginning Java 2 – Ivor Horton – 1999 WROX
• Java2 – The Complete Reference – Third Edition –
Naughton / Schildt – Osborne
• Core Java Fundamentals – Horstmann / Cornell –
PTR
• Inside the Java 2 – Virtual Machine Venners –
McGrawHill
• Understanding Object-Oriented Programming with
JAVA – Timothy Budd – Addison Wesley
• JAVA - How to program – Deitel & Deitel – Fifth
Edition – Prentice Hall
2
Introdução
• Linguagem de uso geral.
• Possibilita escrever aplicações ou applets.
• Indicada para aplicações que necessitam rodar em
diferentes plataformas.
• Applets permitem que páginas WEB se tornem
dinâmicas.
• Para código embutido na WEB a linguagem
oferece recursos de controle para prevenir
ocorrências de falhas.
• Linguagem orientada a objetos.
3
As Origens de Java
• 1992 – Linguagem Oak
– Desenvolvimento de Software para Aparelhos de
Informação: Celulares e PDAs.
•
•
•
•
Pouco Sucesso e SUN abandona o projeto
1993 – Explosão do interesse pela Internet
Requisitos semelhantes
1995 – Oak se transforma em JAVA
4
Java - Histórico
– Originalmente projetado para dispositivos
eletrônicos inteligentes.
– Em seguida, foi empregado para criação de
páginas dinâmicas com conteúdo dinâmico.
– Agora também usado para:
• Desenvolvimento de aplicações corporativas
• Funcionalidades adicionais em servidores WWW
• Aplicações de dispositivos diferenciados (celular...)
5
Características da
Linguagem Java
•
•
•
•
•
Orientada a Objetos
Distribuída
Interpretada / Compilada
Robusta / Segura
Independente de Arquitetura / Portável
6
Programas Java
• Applets ou aplicações.
• As aplicações podem ser
consoles ou gráficas.
7
Aprendendo Java
• Estruturas do programa Java.
• Programação básica: armazenamento de dados,
execução de cálculos e tomada de decisões.
• Classes.
• Concorrência.
• Interface Gráfica.
8
Ambiente Java
• Programas Java rodam em diversas plataformas !
Por que ?
• Um programa Java não roda diretamente em
seu computador. Ele roda numa máquina
virtual chamada JVM a qual é emulada
dentro do computador por um programa.
9
Ambiente Java
Fonte Java
Compilador
Java
Java Virtual Machine
Interpretador Java
Código Objeto
Java
O programa é
executado pelo
interpretador !!!
Sistema Operacional
10
Ambiente Java
• O código fonte Java é convertido por um
compilador Java para um programa binário
composto por byte codes.
• Byte Codes são instruções de máquina para a
Java Virtual Machine.
• Ao executar o programa, um outro programa
chamado Interpretador inspeciona e decifra
todos os bytes codes e executa as ações
especificadas na Virtual Machine.
11
Portabilidade
• Um programa Java consiste de byte codes ao invés
de instruções nativas de máquina.
• Assim, o programa Java é isolado e encapsulado
da máquina em que é processado.
• Qualquer computador que tenha o run-time Java
será capaz de igualmente rodar o mesmo
programa.
12
Desempenho
• Em tempos passados houve problema de
desempenho.
• Atualmente, Java suporta compilação “JustIn-Time” a qual permite que byte codes
sejam convertidos para instruções nativas de
máquina, causando assim melhor
desempenho.
13
Desenvolvimento Java - JDK
• Sun – (FREE)
• Download para diversas plataformas e
sistemas operacionais.
• Código Fonte tem extensão .java
• Para compilar => javac MeuPrograma.java
• Para executar => java MeuPrograma (.class)
14
Desenvolvimento Java
• Ao se executar os byte codes, não se deve
especificar a extensão .class
• Applets também podem ser executados por
programas presentes no JDK chamados
AppletViewer.
• Após compilar um applet e incluí-lo em
uma página podemos executá-lo através do
comando: appletviewer MeuApplet.html
15
Adicionando um Applet no HTML
<HTML>
<HEAD>
<TITLE> A Simple Program </TITLE>
</HEAD>
<BODY>
<HR>
<APPLET code = "Exerc_01.class"
width = 300
height = 200 >
</APPLET>
<HR>
</BODY>
</HTML>
16
Exemplo
import javax.swing.JApplet;
import java.awt.Graphics;
public class Exerc_01 extends JApplet
{
public void paint(Graphics g)
{
g.drawString("Olá ! Benvindo ao curso de Introdução ao JAVA!!!", 20, 90);
}
}
17
Exemplo
> javac Exerc_01.java
> appletviewer Exerc_01.html
18
Java é Orientado a Objetos
• OOP – Programação Orientada a Objetos
tem se tornado extremamente popular nos
últimos anos.
Por que ?
19
Por que OOP ?
• Aumento de produtividade
• Facilidade de transição a partir de
linguagens existentes
• Similaridade com técnicas em
outros domínios de problemas
20
Crise de Software
• Desenvolvimento de software com
produtividade, qualidade e confiabidade.
OOP tem como meta resolver a crise de software
21
Paradigma Imperativo
•
•
•
•
•
Tradicional modelo de computação
Estado
Variáveis
Loops
Atribuições
22
Elementos da OOP
• Tudo é objeto!
• Ações em OOP são executadas por agentes
chamados de instâncias ou objetos.
• Ações em OOP são produzidas em respostas à
requisições expressas em mensagens.
• Um objeto ao aceitar uma mensagem executa
uma ação e retorna um resultado.
23
Encapsulamento da Informação
• Ao solicitar uma requisição a um objeto
através de uma mensagem, o usuário não
necessita conhecer os detalhes de como a
ação será executada durante o atendimento
desta requisição.
• Tendo aceito uma mensagem o objeto terá a
responsabilidade de executar a ação
correspondente.
24
Classes
• Um grupo de objetos similares.
• O código a ser executado através das ações
pertence à classe e não à um objeto em
particular (instância da classe!)
25
Hierarquia de Classes
• O atendente da floricultura é um florista, mas
ele também é um funcionário do shopping, é
um ser humano, etc.
• À cada nível da hierarquia de classes, temos
gravadas certas informações aplicáveis à
todos os níveis inferiores da estrutura.
26
Hierarquia de Classes
Objeto Material
Vivo
Não-vivo
Animal
Planta
Réptil
Mamífero
Homem
Dentista
André
Cão
Pedra
Ar
Gato
Florista
Pedro
27
Herança
• Classes são organizadas em uma estrutura do
tipo árvore chamada hierarquia de herança.
• A informação (dado e/ou código) armazenado
num nível da hierarquia é automaticamente
aplicável aos níveis inferiores desta
hierarquia.
28
Exemplo
class Chapeu
{
private String proprietario;
private int tipo;
public Chapeu (String p1, int p2)
{
proprietario = p1;
tipo = p2;
}
}
Atributos
ou dados
29
Exemplo
class Chapeu
{
private String proprietario;
private int tipo;
public Chapeu (String p1, int p2)
{
proprietario = p1;
tipo = p2;
}
}
Operações
ou
Métodos
30
Encapsulamento
• Esconder os detalhes de implementação de
um objeto.
• Em Java, corresponde à definição de private
para o item de dados ou para o método.
31
Exemplo
class Chapeu
{
private String proprietario;
private int tipo;
public Chapeu (String p1, int p2)
{
proprietario = p1;
tipo = p2;
}
O dado é somente acessado ou
}
modificado por métodos
internos à classe
32
Estrutura de um programa Java
• Um programa Java consiste em um número
de classes.
• Há ao menos uma classe num programa Java.
• Tipicamente codificamos cada classe Java
num arquivo em separado.
33
Estrutura de um programa Java
class
class
class
class
class
O programa completo é composto por 5 classes!
34
Biblioteca de classes Java
• Um programa usualmente invoca código da
Java Standard Class Library, a qual
corresponde a um conjunto de classes.
• Estas classes são agrupadas em arquivos
relacionados que são chamados packages.
• Cada package é armazenado num diretório em
separado.
35
Packages standards
•
•
•
•
•
•
•
java.lang
java.io
java.util
javax.swing
java.awt
java.awt.image
java.awt.event
36
Biblioteca de classes
• As classes do package java.lang são acessadas
por default.
• Para usarmos classes de outro package devemos
usar a diretiva import para cada package
necessário.
• As classes standard não aparecem como
arquivos ou diretórios no hard-disk. Elas são
empacotadas em um único arquivo compressed,
rt.jar, que é armazenado no diretório jre/lib
37
Arquivos .jar
• É um Java Arquive – um arquivo compressed
de classes java.
• As classes que seu programa executável
requerer são carregadas automaticamente a
partir de rt.jar, de forma que não precisamos
fazer referência direta ao arquivo.
38
Aplicações Java
• Toda aplicação Java contém uma definição de
classe a qual por sua vez contém um método
chamado main( ).
• O primeiro método a ser executado é sempre o
método main( ).
• O nome da classe deve ser sempre igual ao
nome do arquivo com extensão .java.
39
Aplicações Java
public class Exerc_02
Definição da classe do
programa. Contém um
único método main ( )
{
public static void main (String[] args)
{
System.out.println("Ola! Estao gostando do curso de Java ??");
}
}
40
Aplicações Java
public class Exerc_02
{
public static void main (String[] args)
{
System.out.println("Ola! Estao gostando do curso de Java ??");
}
}
Esta é a definição
do método main( )
41
Aplicações Java
public class Exerc_02
{
public static void main (String[] args)
{
System.out.println("Ola! Estao gostando do curso de Java ??");
}
}
Indica que o método é
globalmente acessível
42
Aplicações Java
public class Exerc_02
{
public static void main (String[] args)
{
System.out.println("Ola! Estao gostando do curso de Java ??");
}
}
Assegura que o método é
acessível mesmo quando
nenhum objeto da classe
existir.
43
Aplicações Java
public class Exerc_02
{
public static void main (String[] args)
{
System.out.println("Ola! Estao gostando do curso de Java ??");
}
}
Indica que o método
não retorna valor.
44
Fontes em Unicode
O Unicode 3.2 tem 38.885 caracteres.
Os primeiros 128 são iguais ao ASCII.
As fontes em ASCII são transformadas em Unicode.
Para além das sequências de escape convencionais do C
(ex: \n) podemos usar \uhhhh para um caracter em
Unicode. Esta translação é feita antes da compilação.
• Os identificadores e o conteúdo de variáveis do tipo
char ou String podem ter qualquer caracter Unicode.
static final double π = 3.1416;
•
•
•
•
• Em Unicode \u20AC é o símbolo
€
do Euro.
45
Download