Você está na página 1de 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
class Lamp { private boolean LampIsOn; public void turnKnob() { LampIsOn = !LampIsOn; } public Lamp() { LampIsOn = false; } }
Mtodo Varivel

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 X X X

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
class Lamp { private boolean LampIsOn; public void turnKnob() { LampIsOn = !LampIsOn; } public Lamp() { LampIsOn = false; } }
Mtodo Varivel

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 definio de 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 { // 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;

} catch } catch } catch } catch } catch }

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

Você também pode gostar