u ma i ntroduÇÃo À j ava marcos andré s. kutova kutova@icmc.sc.usp.br setembro/98
Post on 18-Apr-2015
109 Views
Preview:
TRANSCRIPT
UMA INTRODUÇÃO À JAVAUMA INTRODUÇÃO À JAVA
Marcos André S. Kutovakutova@icmc.sc.usp.br
Setembro/98
ÍNDICEÍNDICE
• Introdução• Programação Orientada a Objetos• A Linguagem Java• Objetos e Classes em Java• Classes Essenciais• Applets• Classes Avançadas
IntroduçãoIntrodução
O QUE É JAVA ?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 ?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 ?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 ?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 ?O QUE JAVA PODE FAZER ?
Applets
Servlets
Aplicações
Aplicações cliente/servidor
Aplicações para a Internet
Programação Orientada a ObjetosProgramação Orientada a Objetos
PROGRAMAÇÃO ORIENTADA A OBJETOSPROGRAMAÇÃO ORIENTADA A OBJETOS
Conceitos Básicos
• Objetos
• Mensagens
• Classes
• Herança
PROGRAMAÇÃO ORIENTADA A OBJETOSPROGRAMAÇÃ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 OBJETOSPROGRAMAÇÃ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 OBJETOSPROGRAMAÇÃ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 OBJETOSPROGRAMAÇÃO ORIENTADA A OBJETOS
Exemplo - Lâmpada
class Lamp {
private boolean LampIsOn;
public void turnKnob() { LampIsOn = !LampIsOn; }
public Lamp() { LampIsOn = false; }}
VariávelVariável
MétodoMétodo
ConstrutorConstrutor
A Linguagem JavaA Linguagem Java
A LINGUAGEM JAVAA 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 JAVAA 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 JAVAA LINGUAGEM JAVA
Inicializaçãoint i = 10;
char c;
c = ‘X’;
Variáveis finaisfinal float pi = 3.14159;
(final também pode ser utilizado para métodos. Os
métodos finais não podem ter subclasses)
A LINGUAGEM JAVAA LINGUAGEM JAVA
Operadores
• Atribuição: =
• Aritméticos: + - * / %
• Unários: ++ --
• Lógicos: = = != < > <= >=
A LINGUAGEM JAVAA 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 JAVAA 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 JAVAA 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 JAVAA LINGUAGEM JAVA
Strings - Alguns Métodos
.substring()
.startsWith()
.endsWith()
.length()
.toUpperCase()
.toLowerCase()
.replace()
.charAt()
.trim
.equals()
.compareTo()
.equalsIgnoreCase()
.toString()
String.valueOf()
A LINGUAGEM JAVAA 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 JAVAA 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 JAVAA LINGUAGEM JAVA
Controlando o acesso aos membros da classe
Especificador classe subclasse pacote todos
----------------------------------------------------------------
private X
protected X X X public X X X X
package X X
A LINGUAGEM JAVAA 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 JavaObjetos e Classes em Java
OBJETOS E CLASSES EM JAVAOBJETOS E CLASSES EM JAVA
Exemplo: Lâmpada
class Lamp {
private boolean LampIsOn;
public void turnKnob() { LampIsOn = !LampIsOn; }
public Lamp() { LampIsOn = false; }}
VariávelVariável
MétodoMétodo
ConstrutorConstrutor
OBJETOS E CLASSES EM JAVAOBJETOS E CLASSES EM JAVA
Criando um objeto da classe LampLamp l;
l = new Lamp();
Lamp l1 = new Lamp();
Lamp l2 = new Lamp();
Acessando variáveis e métodosl1.turnKnob();
l2.LampIsOn = true;
Viola definição de visibilidade
Viola definição de visibilidade
OBJETOS E CLASSES EM JAVAOBJETOS E CLASSES EM JAVA
Herança
class StrobeLamp extends Lamp {
private int strobeRate;
public setStrobeRate( int s ) { strobeRate = s; }
}
OBJETOS E CLASSES EM JAVAOBJETOS 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 JAVAOBJETOS 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 objetoint s;public setStrobeRate( int s ) { this.s = s;}
• Passagem de referência própriaanimation = new Thread( this );
OBJETOS E CLASSES EM JAVAOBJETOS E CLASSES EM JAVA
super• Referência à superclasse• Utilizado para chamar o construtor da superclasseint s;public StrobeLamp( int s ) { super(); this.s = s;}
• Utilizado para chamar métodos da superclassepublic finalize() { f.close(); super().finalize();}
OBJETOS E CLASSES EM JAVAOBJETOS 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 JAVAOBJETOS 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 oucom.company.region.package
Classes EssenciaisClasses Essenciais
CLASSES ESSENCIAISCLASSES 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 ESSENCIAISCLASSES 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 ESSENCIAISCLASSES ESSENCIAIS
Exceções• try {
// abre o arquivo // determina o seu tamanho // aloca a memória necessária // lê o arquivo para a memória // fecha o arquivo} catch (fileOpenFailed) { fazAlgo;} catch (sizeDeterminationFailed) { fazAlgo;} catch (memoryAllocationFailed) { fazAlgo;} catch (readFailed) { fazAlgo;} catch (fileCloseFailed) { fazAlgo;}
CLASSES ESSENCIAISCLASSES 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 ESSENCIAISCLASSES 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 ESSENCIAISCLASSES ESSENCIAIS
Lendo e escrevendo
CLASSES ESSENCIAISCLASSES 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.
AppletsApplets
APPLETSAPPLETS
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.
APPLETSAPPLETS
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.
APPLETSAPPLETS
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
APPLETSAPPLETS
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25);
}
}
APPLETSAPPLETS
<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çadasClasses Avançadas
CLASSES AVANÇADASCLASSES 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ÇADASCLASSES 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ÇADASCLASSES 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ÇADASCLASSES AVANÇADAS
Outras classes• Java 2D
• Java 3D
• Internacionalização
• Java Beans
• Swing
• Servlets
• Java Sound
• Java Media Player
• Java Native Interface
ReferênciasReferê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
top related