Você está na página 1de 21

Introdução a

Linguagem Java
Prof. M.Sc. Fábio Alexandre
Caravieri Modesto
E-mail:
fabio@fabiomodesto.pro.br

Breve histórico
z Sun Microsystem Æ 1991
z Projeto Green
z Linguagem de programação Orientada a Objetos
z Eletrodomésticos inteligentes
z James Goslin (entre outros)
z Algumas propostas
z Melhorar algumas anomalias existentes no C++
z Como por exemplo a falta do Garbage Collection
z Surge a linguagem OAK (carvalho )

1
z Equipe (principais)

Mike Sheridan
Patrick Naughton
James Gosling.
3

OAK JAVA

z Alguns pontos importantes


z Orientado a objetos
z Independente de plataforma
z integra mecanismos e bibliotecas de funções para
programação na área das redes
z é desenhada para executar código a partir de pontos
remotos, sem perda de segurança.
4

2
VANTAGENS
z Sintaxe similar a Linguagem C/C++ e principalmente, a C#.
z Facilidades de Internacionalização - Suporta nativamente
caracteres Unicode;
z Simplicidade na especificação, tanto da linguagem como do
"ambiente" de execução (JVM);
z É distribuída com um vasto conjunto de bibliotecas (ou APIs);
z Possui facilidades para criação de programas distribuídos e
multitarefa (múltiplas linhas de execução num mesmo
programa);
z Desalocação de memória automática por processo de coletor de
lixo (garbage collector);
z Carga Dinâmica de Código - Programas em Java são formados
por uma coleção de classes armazenadas independentemente e
que podem ser carregadas no momento de utilização.

Divisão do Java
z J2SE (core/desktop)
z J2EE(enterprise/server)
z J2ME(mobile/wireless)
z JavaCard
z Java Wev Services
z XML

3
Divisão do Java
z J2SE (core/desktop)
z Java 2 Standant Edition
z Aplicações Java para Desktop’s
z Base para J2EE e Java Web Services
z J2EE(enterprise/server)
z Java 2 Enterprise Edition
z Aplicações empresariais multicamadas

Divisão do Java
z J2ME(mobile/wireless)
z Java 2 Micro Edition
z Telefones moveis, pda e impressoras
z JavaCard
z Adapta a plataforma JAVA para permitir aos
cartões e outros dispositivos inteligentes o acesso
as vantagens da linguagem

4
Divisão do Java
z Java Wev Services
z Serviços WEB baseado em aplicações WEB
empresariais abertas
z Padrões baseados em XML
z Protocolos de transporte para trocar dados com
outros clientes
z J2EE Æ prove API’s para o desenvolvimento
WEB

Divisão do Java
z XML
z Extensible Markup Language
z Padrão de texto para representar dados
z Importância no desenvolvimento WEB

10

5
Linguagem de Programação
z Linguagem de Programação
z é um método padronizado para expressar instruções para
um computador
z É um conjunto de regras sintáticas e semânticas usadas
para definir um programa de computador.
z Código Fonte = palavras (tokens) + regras
z traduzido para linguagem de máquina
z executado pelo processador

z Tipos de linguagens
z Compiladas
z Interpretadas
z hibridas
11

Linguagem de Programação
z Linguagens Compiladas
z Compilador
z é um programa que, a partir de um código escrito em uma
linguagem, o código fonte, cria um programa
semanticamente equivalente porém escrito em outra
linguagem, código objeto
z O processo de compilação é composto de análise e
síntese
z A análise tem como objetivo entender o código fonte e
representá-lo em uma estrutura intermediária.
z A síntese constrói o código objeto a partir desta
representação intermediária.
z PASCAL, C, C++
12

6
Linguagem de Programação
z Linguagens interpretadas
z Interpretadador
z lêem um código fonte de uma linguagem de
programação e os convertem em código executável.
z lê linha-a-linha e converte em código objeto à medida
que vai executando o programa.
z Basic, Visual Basic, etc;

13

Linguagem de Programação
z Linguagens híbridas
z Compiladas e interpretadas
z O java é seu representante mais expressivo
z Bytecode
z Programa fonte é compilado, gerado um arquivo de
controle e este é interpretado.

14

7
Linguagem de Programação
z ByteCode
z Semelhante a compilação de código-fonte
z não é executável.
z o bytecode irá ser interpretado numa máquina
virtual,
z execução.
z estágio intermédio
z entre o código-fonte escrito numa linguagem de
programação específica
z e a aplicação final,
15

Programa é criado em um editor e


armazenado em disco com extensão
Fase 1 Editor Disco .java.

O compilador cria bytecodes e os


Fase 2 Compilador Disco armazena em disco com extensão
.class.

Memória
Principal
Fase 3 Carregador da Classe Carregador de classe lê o
arquivo .class contendo
bytecodes do disco e põe esse
bytecodes em memória.

Disco
. ..
. .
.

Memória
Principal
Fase 4 Verificador Verificador de Bytecode confirma
Bytecode que todos o bytecodes são
válidos e não violam as restrições
de segurança de Java.

. ..
. .
.

Memoria Principal
Interpreter reads bytecodes and
translates them into a language
Fase 5 Interpretador that the computer can
understand, possibly storing data
values as the program executes.

. ..
. .
. 16

8
Consideração Preliminares
z Sensitive Case
z Java é uma linguagem Sensitive Case
z Abobrinha ≠ abobrinha ≠ ABOBRINHA ≠ aBobrinha

z Delimitadores
z {........}
z Comentário
z //Æ uma linha
z /*......*/ Æ um bloco de texto
z Comandos
z Sempre em letra minúscula
z Declaração de variáveis
z Tipo_da_variavel nome_variavel
17

Consideração Preliminares
z Identificadores
z Letras, digitos e _ ou $
z Não pode ser iniciado por um digito
z Palavras chaves não podem ser usadas como
identificadores

z Errado
z 0valorX
z Correto
z valorX

18

9
Tipo de Variáveis
Tipo de Variável Tamanho de Faixa de
armazenamento representação
Byte 8 bits De -128 a +127

Short 16 bits De -32.768 a + 32.767

Int 32 bits De -2.147.483.648 a


+2.147.483.647

Long 64 bits De
9.223.372.036.854.775.80
8a-
9.223.372.036.854.775.80
7 19

Tipo de Variáveis
Tipo de Variável Tamanho de Faixa de
armazenamento representação

Float 32 bits 1.40239846e-46 a


3.40282347e+38

Double 64 bits 4.94065645841246544e-


324 a
1.7976931348623157e+308

20

10
Tipo de Variáveis
Tipo de Variável Tamanho de Faixa de
armazenamento representação

char 16 bits 0 e 65535

boolean True ou False

21

Operadores Aritméticos
Soma +

Subtração -

Multiplicação *

Divisão /

22

11
Operadores Relacionais
Igual ==
Maior e igual >=
Menor e igual <=
Maior >
Menor <
diferente !=
E ou and &&
Ou or or ||
23

Estrutura do Programa java


import pacotes

public class nome_classe


{
declarações da classe
public static void main(String args[]) {
declarações do método main
}
}
24

12
Primeiro Exemplo

O nome do arquivo
do programa fonte
ão
at enç tem que ser o
mesmo nome da
classe. Se não o
compilador não irá
compilá-lo

O operador de atribuição
no java é =, diferente do
pascal que é usado o :=

25

Primeiro Exemplo
z Neste primeiro exemplo será criado apenas
uma classe com seus atributos para o
entendimento da estrutura da linguagem

26

13
Primeiro Exemplo
public class exemplo Exemplo
{ Int nome
int numero;
String nome[50];
}

uml

27

Primeiro Exemplo
z No exemplo seguinte (continuação do
exemplo anterior) além de definirmos uma
classe iremos atribuir valores a seus
atributos

28

14
Primeiro Exemplo
public class exemplo
{
int numero;
String nome[50];
public static void main(String args[])
{
numero=10;
nome=“maria”;
}
}
29

Primeiro Exemplo
z No exemplo seguinte (continuação do
exemplo anterior) além de definirmos uma
classe iremos estânciar um objeto dessa
classe

30

15
Primeiro Exemplo
public class Exemplo
{ Exemplo
int numero;
String nome[50]; Int numero
} String nome[50]
public void atribuir_valores()
{
numero=10;

}
nome=“maria”; Atribuir_valor()
public static void main(String args[])
{
Exemplo novo_objeto= new
novo_objeto.atribuir_valores();
}
} uml

31

Imprimindo uma mensagem de


prompt
public class AloPessoal {
public void mensagem()
{
System.out.println("Alo pessoal!");
}
public static void main(String args[]) {
teste objeto= new teste();
objeto.mensagem();
}
}

32

16
Imprimindo uma mensagem de
prompt
public class teste {
public void mensagem()
{
System.out.println("Alo");
System.out.println("pessoal");
}
public static void main(String args[]) {
teste objeto= new teste();
objeto.mensagem();
}
}
33

Imprimindo uma mensagem de


prompt
public class teste { O operador \n
public void mensagem() é usado para
se pular uma
{ linha
System.out.println("Alo \n pessoal ");
}
public static void main(String args[]) {
teste objeto= new teste();
objeto.mensagem();
}
}
34

17
Usando variaveis
public class teste {
int x;
int y;
int resposta;
public void operacao()
{
x=50;
y=20;
resposta= x + y;
System.out.println("O valor numérico é " + resposta);

}
public static void main(String args[]) {
teste objeto= new teste();
objeto.operacao();
}
35
}

Usando Janelas

36

18
Usando Janelas
import javax.swing.JOptionPane; // programa usa JOptionPane
public class janela {
public void exibir_janela()
{
JOptionPane.showMessageDialog(null, "bem vindo
\na\nProgramaçao\nJava!" );

}
public static void main(String[] args) {

janela objeto = new janela();


objeto.exibir_janela();
System.exit( 0 ); // termina a aplicação da Janela
} 37

Usando Janelas
import javax.swing.*;
public class janela2 {
int x, y, resposta;
String aux_x, aux_y;

public void somar()


{
aux_x=JOptionPane.showInputDialog( "Entre com o primeiro
inteiro" );
aux_y=JOptionPane.showInputDialog( "Entre com o segundo
inteiro" );
x=Integer.parseInt( aux_x );
y=Integer.parseInt( aux_y );
resposta=x+y;
JOptionPane.showMessageDialog( null, "A soma é " +
resposta,"Resultado", JOptionPane.PLAIN_MESSAGE );
38

19
Usando Janelas
public static void main(String[] args) {

janela2 objeto = new janela2();


objeto.somar();
System.exit( 0 );
}
}

39

Fazendo como Jack...


1. aux_x=JOptionPane.showInputDialog(
"Entre com o primeiro inteiro" );
Janela para
entrada de
Dados

2. Por que aux_x é definido por inteiro


1. OptionPane.showInputDialog, só aceita dados
do tipo inteiro

40

20
Fazendo como Jack...

x=Integer.parseInt( aux_x );
z Integer.parseInt
z Método que converte strings
em inteiros no java
z Como strtoint do Delphi

41

Variações JOptionPane
Tipo de Mensagem Icone Descrição
JOptionPane.ERROR_MESSAGE Mostra um dialogo que indica erro do
usuário.

JOptionPane.INFORMATION_MESSAGE Mosdtra um diaalogo com informações


para o usuário

JOptionPane.WARNING_MESSAGE Mostra um dialogo de alerta de um


problema em potencial

JOptionPane.QUESTION_MESSAGE Mostra um dialogo para questionar o Este


dialogo normalmente pede um resposta
entao ele apresenta os botões
Yes ou No.

JOptionPane.PLAIN_MESSAGE sem icon Mostra um dialogo que exibe uma


mensagem simples.

42

21

Você também pode gostar