UMA INTRODUÇÃO À JAVA
Marcos André S. Kutova
[email protected]
Setembro/98
ÍNDICE
•
•
•
•
•
•
•
Introdução
Programação Orientada a Objetos
A Linguagem Java
Objetos e Classes em Java
Classes Essenciais
Applets
Classes Avançadas
Introdução
O QUE É JAVA ?
Linguagem de Programação
•
•
•
•
•
•
•
•
•
•
Simples
Orientada a Objetos
Distribuída
Portável
Robusta
Segura
Interpretada
Independente de arquitetura
Alta Performance
Dinâmica
O QUE É JAVA ?
Linguagem de Programação
• Todos os programas Java são compilados e
interpretados
• O compilador transforma o programa em bytecodes
independentes de plataforma
• O interpretador testa e executa os bytecodes
O QUE É JAVA ?
Linguagem de Programação
• Cada interpretador é uma implementação da JVM Java Virtual Machine (ferramenta, browser, hardware)
• “Write Once, Run Anywhere”
O QUE É JAVA ?
Plataforma Java
• Uma plataforma é o ambiente de hardware e software
onde um programa é executado
• A plataforma Java é um ambiente somente de software
• Componentes:
Java Virtual Machine (Java VM)
Java Application Programming Interface (Java API)
O QUE JAVA PODE FAZER ?
Applets
Servlets
Aplicações
Aplicações cliente/servidor
Aplicações para a Internet
Programação Orientada a Objetos
PROGRAMAÇÃO
ORIENTADA A OBJETOS
Conceitos Básicos
• Objetos
• Mensagens
• Classes
• Herança
PROGRAMAÇÃO
ORIENTADA A OBJETOS
O que são objetos?
• Conjunto de variáveis e procedimentos utilizados para
modelar objetos do mundo real (e imaginário)
• Um objeto é caracterizado pelo seu estado e pelo seu
comportamento
Exemplo - Lâmpada
• Estados - ligada/desligada
• Comportamento - mudar de ligada para desligada
mudar de desligada para ligada
PROGRAMAÇÃO
ORIENTADA A OBJETOS
O que são mensagens?
• Mensagens são utilizadas para fazer a comunicação
entre os objetos
• Cada objeto entende um conjunto de mensagens que
podem mudar seu estado atual
• Quando há a necessidade de maiores informações, as
mensagens podem conter parâmetros
PROGRAMAÇÃO
ORIENTADA A OBJETOS
O que são classes?
• Uma classe é uma especificação que define as variáveis
e os métodos comuns a todos os objetos de um certo
tipo
• Um objeto é uma instância de uma classe
O que é herança?
• A herança fornece um mecanismo poderoso e natural
para organização e estruturação de objetos
• Uma classe herda estados e comportamentos de sua
superclasse
PROGRAMAÇÃO
ORIENTADA A OBJETOS
Exemplo - Lâmpada
Variável
class Lamp {
private boolean LampIsOn;
public void turnKnob() {
LampIsOn = !LampIsOn;
}
public Lamp() {
LampIsOn = false;
}
}
Método
Construtor
A Linguagem Java
A LINGUAGEM JAVA
Comentários
• /* texto */
O compilador ignora tudo entre /* e */
• /** documentacao */
indica um comentário para documentação.
Utilizado pela ferramenta javadoc
• // texto
O compilador ignora todos os caracteres de // até o
final da linha
A LINGUAGEM JAVA
Tipos de dados
• Inteiros: byte / short / int / long
• Reais: float / double
• Outros: char / boolean
Nomes de variáveis
• Série de caracteres Unicode
• Não pode ser palavra chave
• Não pode ser nome de outra variável ou classe
A LINGUAGEM JAVA
Inicialização
int i = 10;
char c;
c = ‘X’;
Variáveis finais
final float pi = 3.14159;
(final também pode ser utilizado para métodos. Os
métodos finais não podem ter subclasses)
A LINGUAGEM JAVA
Operadores
• Atribuição: =
• Aritméticos: + - * / %
• Unários:
++
--
• Lógicos:
==
!=
<
>
<=
>=
A LINGUAGEM JAVA
Instruções de controle de fluxo
• Condicionais
if-else
/
switch-case (break)
• Laço
for
/
while
/
do-while
• Exceção
try-catch-finally
(throw)
A LINGUAGEM JAVA
Vetores
• Declaração
int[]
arrayOfInts;
• Inicialização
arrayOfInts = new int[10];
• Declaração e inicialização (elemento de 0 a 9)
int[] arrayOfInts = new int[10];
A LINGUAGEM JAVA
Strings
• Declarações e atribuições
String cde = “cde”;
char data[] = { ‘a’, ‘b’, ‘c’ };
String str = new String( data );
String cc = “ab”+cde;
• As strings podem ser concatenadas através do operador +
• As strings não podem ser alteradas
A LINGUAGEM JAVA
Strings - Alguns Métodos
.substring()
.startsWith()
.endsWith()
.length()
.toUpperCase()
.toLowerCase()
.replace()
.charAt()
.trim
.equals()
.compareTo()
.equalsIgnoreCase()
.toString()
String.valueOf()
A LINGUAGEM JAVA
StringBuffer
• Permitem criar strings que podem ser alteradas
• Todos os métodos da classe StringBuffer são
synchronized
• Desempenho pior do que com Strings
• Principais métodos:
.append()
.insert()
.length()
.toString()
A LINGUAGEM JAVA
O Método main
• class HelloWorld {
public static void main( String[] args ) {
System.out.println( “Hello World!” );
}
}
• Quando o interpretador Java executa uma aplicação, ele
começa chamando o método main
• O método main então chama todos os outros métodos
necessários para executar a aplicação
A LINGUAGEM JAVA
Controlando o acesso aos membros da classe
Especificador
classe subclasse pacote todos
---------------------------------------------------------------private
X
protected
X
X
X
public
package
X
X
X
X
X
X
A LINGUAGEM JAVA
Métodos e variáveis estáticos
•
•
•
•
Declarados com o especificador static
São comuns a todos os objetos da classe
Utilizados para declaração de constantes
Utilizados para declaração de métodos que não
necessitam de uma instância da classe
• static int FALSO
0;
static int VERDADEIRO 1;
public static boolean testa( int p ) {
if( p == this.VERDADEIRO )
return( true );
else
return( false );
}
Objetos e Classes em Java
OBJETOS E CLASSES EM JAVA
Exemplo: Lâmpada
Variável
class Lamp {
private boolean LampIsOn;
public void turnKnob() {
LampIsOn = !LampIsOn;
}
public Lamp() {
LampIsOn = false;
}
}
Método
Construtor
OBJETOS E CLASSES EM JAVA
Criando um objeto da classe Lamp
Lamp l;
l = new Lamp();
Lamp l1 = new Lamp();
Lamp l2 = new Lamp();
Acessando variáveis e métodos
l1.turnKnob();
l2.LampIsOn = true;
Viola definição
de visibilidade
OBJETOS E CLASSES EM JAVA
Herança
class StrobeLamp extends Lamp {
private int strobeRate;
public setStrobeRate( int s ) {
strobeRate = s;
}
}
OBJETOS E CLASSES EM JAVA
Garbage Collector
• A plataforma Java periodicamente libera a memória
usada por objetos que não são mais necessários
• O Garbage Collector roda em uma thread de baixa
prioridade e remove todos os objetos que não são mais
referenciados
Finalização
• Antes de um objeto ser destruído, o Garbage Collector
executa o método finalize do objeto (quanto existir)
• Isto permite, por exemplo, o fechamento de arquivos e
conexões de rede
OBJETOS E CLASSES EM JAVA
this
• A palavra reservada this permite que um objeto consiga
uma referência própria
• Referência a uma variável do objeto
int s;
public setStrobeRate( int s ) {
this.s = s;
}
• Passagem de referência própria
animation = new Thread( this );
OBJETOS E CLASSES EM JAVA
super
• Referência à superclasse
• Utilizado para chamar o construtor da superclasse
int s;
public StrobeLamp( int s ) {
super();
this.s = s;
}
• Utilizado para chamar métodos da superclasse
public finalize() {
f.close();
super().finalize();
}
OBJETOS E CLASSES EM JAVA
Interfaces
• Interface é uma especificação que permite que objetos
não relacionados possam interagir (análogo a
protocolo)
• As interfaces definem conjuntos de métodos, mas não
os implementam
• Uma classe que implemente a interface deve
implementar TODOS os métodos definidos nesta.
• public interface Sleeper {
public void wakeUp();
public long ONE_SECOND = 1000; // milli
}
OBJETOS E CLASSES EM JAVA
Pacotes
• Para facilitar o uso, controle de acesso e controle de
conflito de nomes, os programadores agrupam classes e
interfaces relacionadas em pacotes.
• Os pacotes necessários a um programa devem ser
incorporados através do comando import.
• Basta incluir no início arquivo da classe a linha:
package nomePacote;
• Por convenção, deve-se usar o nome do pacote no
formato:
com.company.package
ou
com.company.region.package
Classes Essenciais
CLASSES ESSENCIAIS
Classe System - Recursos do Sistema
• Não há a necessidade de inicialização (classe final)
• Todos os métodos são estáticos
• Algumas plataformas podem gerar erros por não
possuírem os dispositivos acessados
class UserNameTest {
public static void main(String[] args) {
String name;
name = System.getProperty("user.name");
System.out.println(name);
}
}
CLASSES ESSENCIAIS
Exceções
• A linguagem Java utiliza as exceções para fornecer
capacidades de controle de erros quando, durante a
execução de um programa, ocorrer um evento que
interrompa o fluxo normal de instruções
• Vantagens:
• Separar o gerenciamento de erro do resto do código
• Propagar erros
• Agrupar os erros
CLASSES ESSENCIAIS
Exceções
• try {
} catch
} catch
} catch
} catch
} catch
}
// abre o arquivo
// determina o seu tamanho
// aloca a memória necessária
// lê o arquivo para a memória
// fecha o arquivo
(fileOpenFailed) {
fazAlgo;
(sizeDeterminationFailed) {
fazAlgo;
(memoryAllocationFailed) {
fazAlgo;
(readFailed) {
fazAlgo;
(fileCloseFailed) {
fazAlgo;
CLASSES ESSENCIAIS
Threads
• Uma thread - também chamada de linha de execução é um fluxo sequencial simples de controle dentro de um
programa.
• Quando uma thread é criada, ela executa o método run
do objeto.
CLASSES ESSENCIAIS
Lendo e escrevendo
• Normalmente, os programas devem ler ou escrever
informações em fontes/destinos externos (arquivos,
memória, rede, ...).
• Estas informações podem ser de qualquer tipo:
números, textos, imagens, ...
• A API Java permite que o programa crie um fluxo para
cada um destes pontos externos.
CLASSES ESSENCIAIS
Lendo e escrevendo
CLASSES ESSENCIAIS
Lendo e escrevendo
• Os fluxos podem ser de bytes ou caracteres.
• As fontes e destinos podem ser físicas ou apenas de
processamento.
• Métodos: .read() e .write()
• Quando necessários, deve-se utilizar a serialização de
objetos.
Applets
APPLETS
O que são Applets?
• Applets são aplicações Java que permitem estender as
funcionalidades da páginas da Internet.
• As applets são executas juntamente com um browser ou
pelo appletviewer (programa do JDK para rodar
applets).
• As applets são chamdas por um documento HTML.
APPLETS
Características
• As applets não possuem o método main.
• Uma applet não tem acesso aos recursos da máquina
local.
• Uma applet somente pode utilizar recursos do servidor
de onde veio.
APPLETS
Ciclo de vida
• .init()
•
•
•
•
Este método é chamado para inicializar a
applet.
.start() Este método inicia a execução da applet. É
chamado após a inicialização e toda vez que
o usuário volta à pagina (enquanto estiver na
memória).
.paint() Desenha a applet.
.stop()
Interrompe a execução da applet. Inclusive
quando o usuário deixa a página.
.destroy() Libera os recursos alocados pela applet
APPLETS
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25);
}
}
APPLETS
<HTML>
<HEAD>
<TITLE> A Simple Program </TITLE>
</HEAD>
<BODY>
Here is the output of my program:
<APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25>
</APPLET>
</BODY>
</HTML>
Classes Avançadas
CLASSES AVANÇADAS
java.awt
• Abstract Windowing Toolkit
• Objetivo de fornecer as funcionalidades básicas
presentes em todas as plataformas gráficas
• Componentes:
Label, Button, CheckBox, Choice, List, TextField,
MenuItem, Frame, Dialog, Panel, ...
CLASSES AVANÇADAS
java.net
• Permite a criação de programas que comuniquem com
recursos ou outros programas em uma rede
• Permite conexões TCP ou UDP
java.rmi
• Remote Method Invocation
• Permite que um objeto rodando em uma JVM invoque
métodos de um objeto rodando em outra JVM
CLASSES AVANÇADAS
java.security
• Importa a funcionalidade da criptografia, incluindo
assinaturas digitais, gerenciamento de chaves e
gerenciamento de certificados
java.sql
• Permite a conexão aos sistemas de banco de dados
tradicionais, inclusive permitindo a execução de
instruções SQL
CLASSES AVANÇADAS
Outras classes
•
•
•
•
•
•
•
•
•
Java 2D
Java 3D
Internacionalização
Java Beans
Swing
Servlets
Java Sound
Java Media Player
Java Native Interface
Referências
• Java Technology Homepage - http://java.sun.com
• Teach yourself Java 1.1 in 21 Days, L. Lemay & C. Perkins
• Java Unleashed, Michael Morrison
• The Java Tutorial, Mary Campione & Kathy Walrath
Download

UMA INTRODUÇÃO À JAVA