You are on page 1of 56

UMA INTRODUO JAVA

Marcos Andr S. Kutova


kutova@icmc.sc.usp.br
Setembro/98

NDICE

Introduo
Programao Orientada a Objetos
A Linguagem Java
Objetos e Classes em Java
Classes Essenciais
Applets
Classes Avanadas

Introduo

O QUE JAVA ?
Linguagem de Programao

Simples
Orientada a Objetos
Distribuda
Portvel
Robusta
Segura
Interpretada
Independente de arquitetura
Alta Performance
Dinmica

O QUE JAVA ?
Linguagem de Programao
Todos os programas Java so 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 Programao
Cada interpretador uma implementao 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
Aplicaes
Aplicaes cliente/servidor
Aplicaes para a Internet

Programao Orientada a Objetos

PROGRAMAO
ORIENTADA A OBJETOS
Conceitos Bsicos
Objetos
Mensagens
Classes
Herana

PROGRAMAO
ORIENTADA A OBJETOS
O que so objetos?
Conjunto de variveis e procedimentos utilizados para
modelar objetos do mundo real (e imaginrio)
Um objeto caracterizado pelo seu estado e pelo seu
comportamento

Exemplo - Lmpada
Estados - ligada/desligada
Comportamento - mudar de ligada para desligada
mudar de desligada para ligada

PROGRAMAO
ORIENTADA A OBJETOS
O que so mensagens?
Mensagens so utilizadas para fazer a comunicao
entre os objetos
Cada objeto entende um conjunto de mensagens que
podem mudar seu estado atual
Quando h a necessidade de maiores informaes, as
mensagens podem conter parmetros

PROGRAMAO
ORIENTADA A OBJETOS
O que so classes?
Uma classe uma especificao que define as variveis e
os mtodos comuns a todos os objetos de um certo tipo
Um objeto uma instncia de uma classe

O que herana?
A herana fornece um mecanismo poderoso e natural
para organizao e estruturao de objetos
Uma classe herda estados e comportamentos de sua
superclasse

PROGRAMAO
ORIENTADA A OBJETOS
Exemplo - Lmpada
Varivel
Varivel

class Lamp {
private boolean LampIsOn;
public void turnKnob() {
LampIsOn = !LampIsOn;
}
public Lamp() {
LampIsOn = false;
}
}

Mtodo
Mtodo

Construtor
Construtor

A Linguagem Java

A LINGUAGEM JAVA
Comentrios
/* texto */

O compilador ignora tudo entre /* e */


/** documentacao */

indica um comentrio para documentao.


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 variveis
Srie de caracteres Unicode
No pode ser palavra chave
No pode ser nome de outra varivel ou classe

A LINGUAGEM JAVA
Inicializao
int i = 10;
char c;
c = X;

Variveis finais
final float pi = 3.14159;

(final tambm pode ser utilizado para mtodos. Os mtodos


finais no podem ter subclasses)

A LINGUAGEM JAVA
Operadores
Atribuio:

Aritmticos: +
Unrios:

++

Lgicos:

==

-!=

<

>

<=

>=

A LINGUAGEM JAVA
Instrues de controle de fluxo
Condicionais
if-else

switch-case (break)

Lao
for

while

do-while

Exceo
try-catch-finally

(throw)

A LINGUAGEM JAVA
Vetores
Declarao
int[]

arrayOfInts;

Inicializao
arrayOfInts = new int[10];

Declarao e inicializao (elemento de 0 a 9)


int[] arrayOfInts = new int[10];

A LINGUAGEM JAVA
Strings
Declaraes e atribuies
String cde = cde;
char data[] = { a, b, c };
String str = new String( data );
String cc = ab+cde;

As strings podem ser concatenadas atravs do operador +


As strings no podem ser alteradas

A LINGUAGEM JAVA
Strings - Alguns Mtodos
.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 mtodos da classe StringBuffer so
synchronized
Desempenho pior do que com Strings
Principais mtodos:
.append()
.insert()
.length()
.toString()

A LINGUAGEM JAVA
O Mtodo main
class HelloWorld {
public static void main( String[] args ) {
System.out.println( Hello World! );
}
}

Quando o interpretador Java executa uma aplicao, ele


comea chamando o mtodo main
O mtodo main ento chama todos os outros mtodos
necessrios para executar a aplicao

A LINGUAGEM JAVA
Controlando o acesso aos membros da classe
Especificador
classe subclasse pacote todos
---------------------------------------------------------------private
X
protected

public
package

X
X

X
X

A LINGUAGEM JAVA
Mtodos e variveis estticos

Declarados com o especificador static


So comuns a todos os objetos da classe
Utilizados para declarao de constantes
Utilizados para declarao de mtodos que no necessitam de
uma instncia 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: Lmpada
Varivel
Varivel

class Lamp {
private boolean LampIsOn;
public void turnKnob() {
LampIsOn = !LampIsOn;
}
public Lamp() {
LampIsOn = false;
}
}

Mtodo
Mtodo

Construtor
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 variveis e mtodos


l1.turnKnob();
l2.LampIsOn = true;
Viola
Violadefinio
definio
de
devisibilidade
visibilidade

OBJETOS E CLASSES EM JAVA


Herana
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 memria usada
por objetos que no so mais necessrios
O Garbage Collector roda em uma thread de baixa
prioridade e remove todos os objetos que no so mais
referenciados

Finalizao
Antes de um objeto ser destrudo, o Garbage Collector
executa o mtodo finalize do objeto (quanto existir)
Isto permite, por exemplo, o fechamento de arquivos e
conexes de rede

OBJETOS E CLASSES EM JAVA


this
A palavra reservada this permite que um objeto consiga
uma referncia prpria
Referncia a uma varivel do objeto
int s;
public setStrobeRate( int s ) {
this.s = s;
}

Passagem de referncia prpria


animation = new Thread( this );

OBJETOS E CLASSES EM JAVA


super
Referncia superclasse
Utilizado para chamar o construtor da superclasse
int s;
public StrobeLamp( int s ) {
super();
this.s = s;
}

Utilizado para chamar mtodos da superclasse


public finalize() {
f.close();
super().finalize();
}

OBJETOS E CLASSES EM JAVA


Interfaces
Interface uma especificao que permite que objetos
no relacionados possam interagir (anlogo a protocolo)
As interfaces definem conjuntos de mtodos, mas no
os implementam
Uma classe que implemente a interface deve
implementar TODOS os mtodos 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 necessrios a um programa devem ser
incorporados atravs do comando import.
Basta incluir no incio arquivo da classe a linha:
package nomePacote;

Por conveno, 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
No h a necessidade de inicializao (classe final)
Todos os mtodos so estticos
Algumas plataformas podem gerar erros por no possurem os
dispositivos acessados
class UserNameTest {
public static void main(String[] args) {
String name;
name = System.getProperty("user.name");
System.out.println(name);
}
}

CLASSES ESSENCIAIS
Excees
A linguagem Java utiliza as excees para fornecer
capacidades de controle de erros quando, durante a
execuo de um programa, ocorrer um evento que
interrompa o fluxo normal de instrues
Vantagens:
Separar o gerenciamento de erro do resto do cdigo
Propagar erros
Agrupar os erros

CLASSES ESSENCIAIS
Excees
try {

} catch
} catch
} catch
} catch
} catch
}

// abre o arquivo
// determina o seu tamanho
// aloca a memria necessria
// l o arquivo para a memria
// fecha o arquivo
(fileOpenFailed) {
fazAlgo;
(sizeDeterminationFailed) {
fazAlgo;
(memoryAllocationFailed) {
fazAlgo;
(readFailed) {
fazAlgo;
(fileCloseFailed) {
fazAlgo;

CLASSES ESSENCIAIS
Threads
Uma thread - tambm chamada de linha de execuo um fluxo sequencial simples de controle dentro de um
programa.
Quando uma thread criada, ela executa o mtodo run
do objeto.

CLASSES ESSENCIAIS
Lendo e escrevendo
Normalmente, os programas devem ler ou escrever
informaes em fontes/destinos externos (arquivos,
memria, rede, ...).
Estas informaes podem ser de qualquer tipo:
nmeros, 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 fsicas ou apenas de
processamento.
Mtodos: .read() e .write()
Quando necessrios, deve-se utilizar a serializao de
objetos.

Applets

APPLETS
O que so Applets?
Applets so aplicaes Java que permitem estender as
funcionalidades da pginas da Internet.
As applets so executas juntamente com um browser ou
pelo appletviewer (programa do JDK para rodar
applets).
As applets so chamdas por um documento HTML.

APPLETS
Caractersticas
As applets no possuem o mtodo main.
Uma applet no tem acesso aos recursos da mquina
local.
Uma applet somente pode utilizar recursos do servidor
de onde veio.

APPLETS
Ciclo de vida
.init()

Este mtodo chamado para inicializar a


applet.
.start() Este mtodo inicia a execuo da applet.
chamado aps a inicializao e toda vez que
o usurio volta pagina (enquanto estiver na
memria).
.paint() Desenha a applet.
.stop()
Interrompe a execuo da applet. Inclusive
quando o usurio deixa a pgina.
.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 Avanadas

CLASSES AVANADAS
java.awt
Abstract Windowing Toolkit
Objetivo de fornecer as funcionalidades bsicas
presentes em todas as plataformas grficas
Componentes:
Label, Button, CheckBox, Choice, List, TextField,
MenuItem, Frame, Dialog, Panel, ...

CLASSES AVANADAS
java.net
Permite a criao de programas que comuniquem com
recursos ou outros programas em uma rede
Permite conexes TCP ou UDP

java.rmi
Remote Method Invocation
Permite que um objeto rodando em uma JVM invoque
mtodos de um objeto rodando em outra JVM

CLASSES AVANADAS
java.security
Importa a funcionalidade da criptografia, incluindo
assinaturas digitais, gerenciamento de chaves e
gerenciamento de certificados

java.sql
Permite a conexo aos sistemas de banco de dados
tradicionais, inclusive permitindo a execuo de
instrues SQL

CLASSES AVANADAS
Outras classes

Java 2D
Java 3D
Internacionalizao
Java Beans
Swing
Servlets
Java Sound
Java Media Player
Java Native Interface

Referncias
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

You might also like