(Parte 1 de 2)

Java

Instrutores :

Marcelo Araujo Franco Fátima Pires

Treinamento Java

Java

2 Desenvolvedores do Material

4Teoria e Prática Java Edmilson Bellini Chiavegatto

(Analista de Sistemas)

4Java e Orientação a Objetos Fátima Pires

(Analista de Sistemas)

Java

Histórico

4Projeto “Green” (1992)

4 integrantes

Sofware para eletro-domésticos

Características do Software

Mínimo uso de memória

4Necessidade de um nome 4Por que surgiu o Java ?

C ++ simplificado

Suprir software para eletro-domésticos

Java

Histórico (cont.)

4Desenvolvido pela Sun Microsystems 4Estabelece Novo Paradigma de Programação Totalmente Aberta

Independente de Plataforma e Sistema Operacional 4Usuários afincos do Java : CSX (maior companhia ferroviária dos EUA) montou rede Java;

J.P. Morgan (banco de investimentos);

Hong Kong Telecom (operações de rede de TV interativa) ;

Fannie Mac (maior empresa americana de hipotecas);

American Express (serviços financeiros);

Banco Itaú usando em suas Intranets e outras. 4Hoje 400.0 programadores escrevem em Java

425% das companhias americanas com mais de 5000 funcionários pretendem usar Java este ano.

Java

Parte I

Orientação a Objetos e Java

Java

Objetivo

4Orientação a Objetos em Java 4Conceitos básicos de Orientação a Objetos 4Introdução à linguagem Java

Java

Roteiro

4Paradigma de Orientação a Objetos 4 Objetos 4 Encapsulamento 4 Mensagens 4 Métodos 4 Abstração 4 Classes

Java

Roteiro (cont.)

4 Generalização 4 Herança 4 Agregação 4 Polimorfismo

Java

Paradigma

“Paradigma é um conjunto de regras que estabelecem fronteiras e descreve como resolver os problemas dentro destas fronteiras.

Os paradigmas influenciam nossa percepção; ajudam-nos a organizar e a coordenar a maneira como olhamos para o mundo...”

Reengenharia - Reestruturando a Empresa Daniel Morris e Joel Brandon

Java

10 Orientação a Objetos

O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e comportamento.

Java

1 Orientação a Objetos

4Inteligencia Artificial - frames 4Banco de Dados - modelos semânticos de dados

Origens

Java

12 Objetos

Coisas tangíveis

Incidente (evento/ocorrência)

Interação (transação/contrato)

“A Profecia Celestina”

Olimpíada de Atlanta Minha consulta

Java

Objetos são pacotes de software compostos de dados e procedimentos que atuam sobre estes dados. Os procedimentos são também conhecidos como métodos e determinam o comportamento do objeto

Objeto = dado +método

Objeto = estado + comportamento

Objetos

Java

14 Objetos

Um objeto

O objeto Carro comportamento/ métodos/procedimentos propriedades/dados/ variáveis tamanho capac.

veloc.

andar parar girar buzinar

Java

15 Objetos

Todo o acesso aos dados ou propriedades do objeto é feito através da sua interface

Java

16 Encapsulamento

Encapsulamento é definido como uma técnica para minimizar interdependencias entre “módulos” através da definição de interfaces externas.

Interface

Mudanças na implementação de uma classe que preserve a interface externa não afeta outras definições de classes.

Java

Mensagens

Objetos interagem e comunicam-se através de mensagens...

Mensagem para um carro emissor receptor andar (...)

Java

18 Métodos emissor receptor andar (...)

...as mensagens identificam os métodos a serem executados no objeto receptor

Java

19 Métodos

O que um determinado método pode fazer com os dados do objeto ? construtor

Tipos de métodos destrutor transformador acesso

Java

Exercício Caracterização de Objetos

4Dê 3 exemplos de Objetos

4Para cada um deles, sugira alguns métodos pertinentes

Java

Abstração Focalizar o essencial, ignorar propriedades acidentais

Aeronave Mamífero

A abstração deve ser sempre com algum objetivo, porque o objetivo determina o que é e o que não é importante.

Java

2 Classes

Uma classe de objetos descreve um grupo de objetos • com propriedades semelhantes

• comportamentos semelhantes

• relacionamentos comuns com outros objetos classificação instanciação

Classe Avião Atributos capacidade prefixo...

pousar

Operações manter decolar Objetos/instâncias

Java

Classes Classe atributos e métodos

Instanciação de classe

Java

24 Comunicação entre objetos

Classe Carro Carro “Meu”

Motorista “Eu” local andar “Meu” (...)andar procurar o método e variável na definição da classe

Java

25 Exercício de Abstração

O que os objetos em cada uma destas listas tem em comum ? a) 1-microscópio 2-óculos 3-telescópio 4-binóculo

Exemplo: 1,2,3 e 4 - melhoram a visão de alguma forma 2,4 - usam os dois olhos 3,4 - para ver as coisas de longe 1 - para ver as coisas pequenas 2 - aumenta ou diminui dependendo do problema da visão b) 1-barraca 2-caverna 3-barracão 4-garagem 5-celeiro 6-casa 7-edifício

Java

26 Vamos respirar......

Java

Exemplo de Definição de Classe (atributos) public class Morador... {String nomeCompleto; String apartamento; String telefone; int anoChegada;

Java

28 Exemplo de Definição de Classe (métodos)

{

public class Morador... public morador(String no, String ap, String te, int an)

telefone= te;

{ nomeCompleto = no; apartamento = ap; anoChegada = an; } public int permanencia() { return (1997 - anoChegada); } }

Java

29 Exemplo de Instanciação de Classe

1992);

... Morador a; a = new morador(“Fatima”, “101”, “257-2011”, ...

Java

Exemplo

1992);
// permanencia para o
// objeto definido em a
indica o envio de mensagem para o
objeto a

Acionando Métodos com Mensagens (I) Morador a; int p; a = new morador(“Fatima”, “101”, “257-2011”, p = a.permanencia(); // acionando o método ....

Java

31 Outro Exemplo de Envio de Mensagens

TextField setText(...)getText [classe]

Java

32 Exemplo de Envio de Mensagens

Exemplo 1tf [objeto da classe TextField]

TextField tf; String s; .. tf = new TextField(10); tf.setText(“Exemplo 1”); .. s = tf.getText();

Java

Relacionamentos entre Classes

4 Generalização 4 Herança 4 Agregação 4Polimorfismo (overriding, overloading, late binding)

Java

Generalização/Especialização

Generalização é o relacionamento entre uma classe e uma ou mais versões refinadas dessa classe

Generalização é a abstração que permite compartilhar semelhanças entre classes, preservando suas diferenças

Generalização Especialização

Java

35 Hierarquia de Classes superclasse subclasse Asubclasse Bsubclasse C Classes derivadas

Java

Herança

Uma classe derivada herda as propriedades e métodos da classe pai, mas pode: •adicionar novos métodos

•estender os atributos

•redefinir a implementação de métodos existentes

X (classe base) herda

Y (classe derivada)incremental(específico p/ Y) derivada (herdada de X)

Java

37 Localizando Métodos e Atributos na Hierarquia

Instância“imprima”

Java

Exemplo de Herança import morador; public class morador_inq extends morador {int aluguel;

String tel, int an, int va)

public morador_inq(String no, String ap, {super(no, ap, tel, an); aluguel = va; }

Java

Exemplo de Herança

Acessando atributos de subclasses public class aplher extends Object {static morador m; static morador_inq mi;

200);

public static void main(String[] args) {m = new morador(“Fatima”, ”100”, ”239”, 1990); mi= new morador_inq(“Rey”,“101”,“234”,1991, System.out.println(m.nomeCompleto); System.out.println(mi.nomeCompleto); System.out.println(mi.aluguel); }}

Java

40 Herança Múltipla

Empregado

Horista Mensal. Eventual Contratado Não-Cont.

Horista-Contratado

Java

Agregação Um objeto agregado é “feito” de componentes

Agregação Fixa

Lâmpada Base Cobertura Tomada Fiação

Java

Agregação Um objeto agregado é “feito” de componentes

Empresa Divisão Depto

Pessoa1+ Agregação Variável

Java

43 Java - Agregação

Exemplo de objeto composto:

Boolean emCaixa;

public class material extends Object {String rotulo; int anoEstocagem; double valor; Morador proprietario;

public material ()
Java

Java - Agregação Exemplo de objeto composto (cont.):

{
boolean em, Morador pro, int an)
emCaixa = em;proprietario = pro;

public class material extends Object public material (String ro, double va, {rotulo = ro; valor = va; anoEstocagem = an; } public int permanencia() { return (1997 - anoEstocagem); } }

Java

Exercício - Instanciação de Objeto

Instanciar 3 materiais (mt1, mt2, mt3) da classe Material cada um deles pertencendo a cada um dos seguintes moradores instanciados (a, j, al)

Java

Exercício - Acesso aos Atributos dos Objetos

Dê a expressão que indica o acesso ao atributo nomeCompleto do proprietário do material identificado por mt.

Java

47 Instanciação de Objeto

Java

Acesso aos Atributos dos Objetos

Java

Overloading/Overriding Ambiente Convencional tela multimídia

textobegin case of type(x)
figurasprograma texto: desenhar_texto(x)
tuplasconvencional imagem: desenhar_imagem(x)
imagenstupla: desenhar_tupla(x)

end end

Java

Overloading/Overriding Ambiente O

Item_tela (desenhar)

Texto Figura Tupla Imagem (desenhar) (desenhar) (desenhar) (desenhar)

. redefinição da operação de desenhar (“overriding”) . desenhar - mesmo nome para 3 programas (“overloading”)

For x in X do desenhar(x); */ “late binding”

Java

Java - Polimorfismo Exemplo:

public class morador extends Object {..

{}

public morador (...) [método construtor]

//há quanto tempo o
// morador reside no

public int permanencia() { return (1997 - anoChegada); } // condomínio .. }

Java

Java - Polimorfismo

{proprietario = ....}

Exemplo: public class material extends Object {.. public material (...)

//tempo o material
//está estocado

public int permanencia() { return (1997 - anoEstocagem); } //há quanto public double taxaMensal() { return valor/(proprietario.permanencia() - permanencia() ) * 0.01; } ..}

Java

Programando em Java

4Entendimento do Problema

4Identificação das classes necessárias (atributos e métodos) - classes Java, classes próprias não persistentes, classes de Banco de Dados

4Definição das aplicações (lógica e interface) - Java “puro”, applets, Java Script

4Construção (ambiente, Web, Biblioteca Java, sites de consulta, suporte)

Java

Parte 2

Teoria e Prática Java

Java

Bibliografia

4Aprendendo Java

Programação na Internet Autor Américo Damasceno Jr. Editora Érica Ltda 4The Java Language Environment

A White Paper Jasmes Gosling Henry McGilton SUn Microsystems Computer Company 4Páginas de Internet 4Reportagens de Revistas sobre atualidades envolvendo Java

Java

56 Características Java

4Linguagem Orientada a Objetos (Reuso) 4Semelhante ao C ++ 4C ++ -- 4Gera Bytecodes

Alta Performance

4 Segurança

Endereçamento Restrito

Objetos Assinados

4Aplicação Carregada Localmente

Java

57 Características Java (cont.)

4 Aplicações Personalizadas 4Independência de Arquitetura

Funciona em Diferentes Máquinas

4Não há Herança Múltipla 4Não há Overloading de Operadores (Sobrecarga) 4Não há Aritmética de Ponteiros 4Inclui Tratamento de Exceções 4Garbage Collector

Java

58 Conceitos || Java Script

4 Primeira Versão do Java 4 Aplicação Interna ao HTML 4 Interpretada 4 Não havia o Conceito de ByteCodes 4 Ex. <script language = “Java Script”

{
Java

Conceitos || Java Script (cont.) 4 Ex.

{seed--;
{for (c=0 ; c < seed ; c++)

<SCRIPT LANGUAGE="JavaScript"> function scrollit_r2l(seed) { var m1 = " Bem Vindo à Página minha Página - Excelente Escolha !!!"; var msg = m1; var out = " "; var c = 1; if (seed > 50) var cmd="scrollit_r2l(" + seed + ")"; timerTwo=window.setTimeout(cmd,50); } else if (seed <= 50 && seed > 0) out+=" "; out+=msg; seed--; var cmd="scrollit_r2l(" + seed + ")";

Java

Conceitos || Java Script (cont.) seed--; var cmd="scrollit_r2l(" + seed + ")"; window.status=out; timerTwo=window.setTimeout(cmd,50); } else if (seed <= 0) { if (-seed < msg.length) { out+=msg.substring(-seed,msg.length); seed--; var cmd="scrollit_r2l(" + seed + ")"; window.status=out; timerTwo=window.setTimeout(cmd,50); } else { window.status=" "; timerTwo=window.setTimeout("scrollit_r2l(50)",75); }

Java

Conceitos || Applet

4Aplicação Executada quando se Chama Página W 4E Carregada na Máquina do Cliente 4Restringe-se a uma Determinada Área (Janela) 4 Ex.

<applet code = “ap1.class” codebase = “http://w.unicamp.br/~edmilson“ lign=left ou <right,top,middle,bottom> width=300 height=100 <param name=tamanho value = 30>

<param name=fontevalue value “Times Roman”>

</applet>

Java

Funcionamento Applet Java

Solicita Página Web Página Solicitada Applet Referenciado

Cliente Servidor

Java

Conceitos || Método

4Determinada Ação que o Objeto pode ter ao ser Ativado 4 Ex.

Funcionario f 1; f 1.mtTempoAposentadoria( );

Java

Conceitos || Método Construtor

4Método Ativado ao ser Criado o Objeto 4Útil para Inicializar Propriedades na Criação 4Tem o mesmo Nome da Classe

4Caso não Exista será Ativado um Método Construtor Default

Java

65 Conceitos || Método Construtor (cont.)

4 Ex. import java .applet .*;

this.idade= parm1;

public class apexemplo extends Applet { int idade; String endereco; public apexemplo (int parm1, String parm2) { this.endereco = parm2; }

4Como é a chamada deste Método ?

Java

Ambiente de Desenvolvimento

4 Configuração Mínima

Windows 95, Windows NT 4.0, Solaris, MacIntosh, Unix

4Gerador de Bytecodes

Javac <programa.java>Ex: javac prog1.java

Será gerado um arquivo de extensão (class). Ex : prog1.class 4 Execução

java <nome do arquivo de extensâo class>. Ex. java prog1

Java Applet appletviewer <nome do arquivo de extensâo html> .

Abrir no Browser o arquivo html que faz chamada a uma applet java 4 Depuração jdb <nome.class>

Java

Programa Java Applet

4 Ex. import java.applet.* import java.awt.* public class hello extends Applet {

Panel p1; Label l1; public hello ( ) { p1 = new Panel ( ); add (p1); l1 = new Label ( ); p1.add (l1); l1.setText (“Olá Internet ! “); }

Java

Programa Java Puro 4 Ex. public class OlaInternet { public static void main (String[] args) {

System.out.println(“Olá Internet !!!”); }

4Digitar o exemplo de programa Java Applet , compilá-lo e rodá-lo

4Digitar o exemplo de programa Java Puro, compilá-lo e rodá-lo

Java

69 Comandos || Fundamental/Sequencial

4 Comandos fundamentais

Todo comando deve terminar por um ponto e vírgula;

y=0;// atribuição
Executa();// invocação

4 Sequência

Java

Comandos || Condição 4 Condição

if (expressão-booleana) // se expressão verdadeira

comando;// a expresão booleana deve vir entre parênteses
else// opcional
comando;// se expressão falsa

public class figuras extends Object

{int[] x = new int[Integer.parseInt(args[0])];

public void main(String[] args) if (x.length < 5)

{System.out.println(“Erro !!!!”);

4Digite este exemplo e o faça funcionar

Java

71 Comandos || Condição

4Evitando if em Cascata

int x; switch (x) { case 0 : System.out.println(“sexo é masculino”); break; case 1 : System.out.println(“sexo é feminino”); break; default : System.out.println(“sexo é indefinido”); break; }

4Ps. Pode-se fazer switch com os tipos byte, char, short, int, long.

Java

Comandos || Iteração

4Enquanto .. int raio = 0; while (++raio < 10) figuras.desenha_circulo(0,0,raio);

4façaEnquanto (Executa ao menos uma vez)

int i=10; do figuras.desenha_circulo(0,0,i); while (++i < 10);

4for (Super While) for (int i=0;i < 10; ++i) window.desenha_reta(10,20,50,i);

Java

Léxico 4 Comentários

int x = 0;// comentário de linha

função : desenhar uma reta conforme parâmetros parâmetros : x1,y1 --> coordenadas iniciais x2,y2 --> coordenadas finais

*/ comentário de mais de uma linha class Figura {

/** este tipo é utilizado para se gerar documentação Java

@seeÁrea
@version1.0
@authorEdmilson Bellini Chiavegatto
*/}

javadoc <nome.java>

converte em documentação HTML

Java

Packages Principais

4 java.lang

Pacote em que não é necessário se dar um import

Principais classes : Boolean, Character, Double, Float, Integer,

Long, Math, Object, String, System, Thread

4 java.io

Pacote que permite manipulação de Streams lendo ou gravando em arquivos e outros

Principais classes : DataInputSream, FileInputStream,

FileOutputStream, PrintStream

4 java.util

Pacote que provê uma miscelânea de classe úteis incluindo estrutura de dados, time, date, geração de números randômicos, etc..

4 java.net

Pacote que provê suporte a redes, incluindo-se URL’S, TCP Sockets,

UDP Sockets, Endereços IP, etc..

Java

75 Packages Principais (cont.)

4 java.awt

Pacote que provê um conjunto de manipulações de interfaces para o usuário tais como windows, caixas de diálogos, botões, cores, checkboxes, listas, menus, scrollbars, textfields, etc...

4 java.applet

Pacote que habilita a criação de applets através da classe applet.

Também prove recursos de áudio.

Principais métodos da classe Applet : destroy, getParameter, init, play, resize, showStatus, start, stop

Java

76 Classe Array

4int y = i[3];// atribuição de que elemento para y ???

4Representa um conjunto de elementos de um determinado tipo 4Sua criação é parecida com a criação de outros objetos 4int i[] = new int[4]; // criação de um array de 4 posições 4i[0] = 5; 4int i[] = {10,25,40,64}; // outra maneira de se criar um array de 4 posições 4int y = i[4]; // atribuição de que elemento para y ???

(Parte 1 de 2)

Comentários