1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando...

45
1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP

Transcript of 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando...

Page 1: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

1

Programação – JAVA

Unidade 1 - IntroduçãoProf. Aparecido V. de Freitas

Mestre e Doutorando em Engenharia da Computação pela EPUSP

Page 2: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

2

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

Page 3: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

3

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.

Page 4: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

4

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

Page 5: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

5

– 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...)

Java - Histórico

Page 6: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

6

Características da Linguagem Java

• Orientada a Objetos• Distribuída• Interpretada / Compilada • Robusta / Segura• Independente de Arquitetura / Portável

Page 7: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

7

Programas Java

• Applets ou aplicações. • As aplicações podem ser

consoles ou gráficas.

Page 8: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

8

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.

Page 9: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

9

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.

Page 10: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

10

Ambiente Java

Fonte JavaCompilador

JavaCódigo Objeto

Java

Java Virtual Machine

Interpretador Java

Sistema Operacional

O programa é executado pelo interpretador !!!

Page 11: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

11

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.

Page 12: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

12

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.

Page 13: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

13

• Em tempos passados houve problema de desempenho.

• Atualmente, Java suporta compilação “Just-In-Time” a qual permite que byte codes sejam convertidos para instruções nativas de máquina, causando assim melhor desempenho.

Desempenho

Page 14: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

14

• 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)

Desenvolvimento Java - JDK

Page 15: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

15

• 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

Desenvolvimento Java

Page 16: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

16

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>

Page 17: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

17

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);

}

}

Page 18: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

18

Exemplo

> javac Exerc_01.java

> appletviewer Exerc_01.html

Page 19: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

19

Java é Orientado a Objetos

• OOP – Programação Orientada a Objetos tem se tornado extremamente popular nos últimos anos.

Por que ?

Page 20: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

20

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

Page 21: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

21

Crise de Software

• Desenvolvimento de software com produtividade, qualidade e confiabidade.

OOP tem como meta resolver a crise de software

Page 22: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

22

Paradigma Imperativo

• Tradicional modelo de computação• Estado• Variáveis• Loops• Atribuições

Page 23: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

23

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.

Page 24: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

24

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.

Page 25: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

25

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!)

Page 26: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

26

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.

Page 27: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

27

Hierarquia de ClassesObjeto Material

Vivo Não-vivo

Animal Planta

Réptil MamíferoPedra Ar

CãoHomem Gato

Dentista Florista

PedroAndré

Page 28: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

28

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.

Page 29: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

29

Exemploclass Chapeu{

private String proprietario;private int tipo;public Chapeu (String p1, int p2){

proprietario = p1;tipo = p2;

}}

Atributos ou dados

Page 30: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

30

Exemploclass Chapeu{

private String proprietario;private int tipo;public Chapeu (String p1, int p2){

proprietario = p1;tipo = p2;

}}

Operações ou Métodos

Page 31: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

31

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.

Page 32: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

32

Exemploclass 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

Page 33: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

33

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.

Page 34: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

34

Estrutura de um programa Java

class class class class class

O programa completo é composto por 5 classes!

Page 35: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

35

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.

Page 36: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

36

Packages standards

• java.lang• java.io• java.util• javax.swing• java.awt• java.awt.image• java.awt.event

Page 37: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

37

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

Page 38: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

38

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.

Page 39: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

39

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.

Page 40: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

40

Aplicações Java

public class Exerc_02

{

public static void main (String[] args)

{

System.out.println("Ola! Estao gostando do curso de Java ??");

}

}

Definição da classe do programa. Contém um único método main ( )

Page 41: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

41

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( )

Page 42: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

42

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

Page 43: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

43

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.

Page 44: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

44

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.

Page 45: 1 Programação – JAVA Unidade 1 - Introdução Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.

45

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.