De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de...

32
1 de 38 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes [email protected] Aula 02 - Ambiente Java e Delphi http://www.ufpa.br/sampaio/bd2003/lpoo Prof. Marco Fagundes

Transcript of De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de...

Page 1: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

1 de 38

Linguagens de Programação Orientadas a Objetos

Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa

Marco [email protected]

Aula 02 - Ambiente Java e Delphi

http://www.ufpa.br/sampaio/bd2003/lpoo

Prof. Marco Fagundes

Page 2: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

2 de 38

Roteiro Por que Java e Delphi? Histório e Características (Java e Delphi) Ambiente Java e Delphi Básico da Linguagem Object Pascal Básico da Linguagem Java Passos para Criar uma Aplicação Tratamento Simples de Entrada e Saída

Page 3: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

9 de 38

Ambiente Java

Page 4: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

10 de 38

Ambiente JavaPreparando o Ambiente Java da Sun A configuração mínima necessária para a confecção, compilação

e execução de programas Java consta do seguinte [herder2]: Java Development Kit (JDK), obtido gratuitamente do site da Sun

(http://java.sun.com) e um editor de textos (e.g., Notepad ou Vi); ou

Um Ambiente Integrado de Desenvolvimento (IDE) para a linguagem Java (e.g., JBuilder, Forte for Java, Visual Café)

O JDK consiste basicamente do seguinte: API Java: todas as classes e interfaces organizadas em pacotes As fontes classes, interfaces e métodos da API Applets demonstrativos com exemplos de utilização Máquina Virtual Java (java) Visualizador de Applets (appetviewer) Ferramentas de desenvolvimento: compilador Java (javac),

gerador de métodos nativos C (javah), gerador de documentação (javadoc), jar e etc

Page 5: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

11 de 38

Ambiente JavaPreparando o Ambiente Java da Sun De posse do JDK deve-se efetuar sua instalação e em

seguida configurar a variável de ambiente CLASSPATH, para indicar o caminho para as classes da API. Por exemplo, CLASSPATH=C:\Java\lib\tools.jar;.

Incluir na variável PATH o caminho “java\bin\”

Page 6: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

12 de 38

Ambiente de Desenvolvimento Delphi

Terminologia Design vs Run time; Formulários; Propriedades; Métodos;

Componentes

Page 7: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

13 de 38

Ambiente de Desenvolvimento Delphi

Terminologia Design vs Run time; Formulários; Propriedades; Métodos;

Componentes

Page 8: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

14 de 38

Ambiente de Desenvolvimento DelphiConvenção de Nomes para Componentes Uma propriedade que é comum a todos os componentes, é a

propriedade NAME. O Delphi sugere nomes para os componentes baseado em seu tipo, inserindo um quantitativo no final.

Alterar o nome do componente torna seu código muito mais legível. Utilize seguintes as regras:

• Mantenha sempre o mnemônico do tipo como primeira parte do nome do componente

• Após o nome mnemônico, adicione um nome descritivo indicando o uso do componente

• Crie mnemônico do componente removendo suas vogais(exceto quando o componente começar com uma vogal ou se esta auxiliar na expressão do seu significado)

• Retire consoantes duplicadas subsequentemente• Caso o nome do componente conflite com outro criado através destas

regras, comece adicionando vogais da esquerda para a direita

Page 9: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

15 de 38

Ambiente de Desenvolvimento Delphi

Manipulando Componentes Inserindo/Excluindo Movendo (ctrl+seta mov.cursor) Redimensionando (shift+seta mov.cursor)

Page 10: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

16 de 38

Ambiente de Desenvolvimento Delphi Projetos

Units (Arquivos .pas) Forms (Arquivos .dfm)

obs: Convenção de nomes

Page 11: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

17 de 38

Básico da Linguagem Object Pascal Arquivo de Projeto

program <nome do programa>;uses<nome das units>;const<nome da constante>=<valor da constante>;type<identificador do tipo>=<definição do tipo>;var<nome da variável> : <tipo da variável>;

<definição de procedures e functions>

begin<instruções>;...end.

Page 12: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

18 de 38

Básico da Linguagem Object Pascal Arquivo de Unit

interfaceuses<nome das units>;const<nome da constante>=<valor da constante>;type<identificador do tipo>=<definição do tipo>;var<nome da variável> : <tipo da variável>;

<declaração de procedures e functions>

implementationuses<nome das units>;const<nome da constante>=<valor da constante>;type<identificador do tipo>=<definição do tipo>;var<nome da variável> : <tipo da variável>;

<declaração de procedures e functions>

initialization<instruções>;

finalization<instruções>;end.

Page 13: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

19 de 38

Básico da Linguagem Object Pascal Relação Projeto/Unit

ProgramUses

...

Unit A

Unit B

Unit C

Unit D

Unit E

Page 14: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

20 de 38

Básico da Linguagem Object Pascal Procedure

procedure <nome>(<nomeParam>: <tipoParam>, <nomeParam>: <tipoParam>);const

<nome da constante> = <valor literal>;var <nome da variável> : <tipo da variável>begin<instruções>;

...end;

Functionfunction <nome>(<nomeParam>:<tipoParam>,<nomeParam>:<tipoParam>):<tipoRetorno>;const

<nome da constante> = <valor literal>;var <nome da variável> : <tipo da variável>begin<instruções>;

...end;

Page 15: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

21 de 38

Básico da Linguagem Object Pascal

Básico da Linguagem Object Pascal Identificadores: Utilizados para identificar units, procedimento e

variáveis (utilizar padrão de codificação) Literais: Valores utilizados em atribuição, passagem de

parâmetro Variáveis: Posição de memória (utilizar padrão de codificação)

• Sintaxe declaração: var nome_variável: tipo;Escopo O escopo de uma variável se refere à visibilidade e tempo de vida. A visibilidade

é determinada pelo local onde a variável pode ser acessada(public, private, protected e published). O tempo de vida especifica por quanto tempo ela manterá seu valor e permanecerá acessível

Comentários (*texto*) { texto} //textoInstruções Simples(;) e Compostas (begin...end;)

Page 16: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

22 de 38

Básico da Linguagem Object Pascal

Tipos Primitivos de Dados• Delphi é uma linguagem fortemente tipada• Numéricos (Integer ,Longint ,Byte, Real, Double)• Boolean (true e false)• Char(‘.’) e String (‘...’)• Operações: Length(String);

Copy(String,IndiceInicial,Quantidade); UpperCase(String); LowerCase(String); Pos(String,SubString); S1 + S2 ou concat(S1,S2);

Estrutura de Dados Array

• Type TintList = array[1..100] of integer;• Para utilizar o array declara-se uma variável=> var arList:

TintList;

Page 17: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

23 de 38

Básico da Linguagem Object PascalEstruturas de Controle Estruturas de Decisão

• if(condição) then...else• case<variável> of valores:<instrução>; else <instrução>; end;

Estruturas de Repetição• while(condição) do• repeat...until(condição)• for <var controle> := <valor inicial> to <valor final>

do Break e Continue

Page 18: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

24 de 38

Básico da Linguagem Object Pascal Atribuição (‘:=’) versus Igualdade(‘=’) Operadores Ariméticos

Page 19: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

25 de 38

Básico da Linguagem Object Pascal Operadores Relacionais

Page 20: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

26 de 38

Básico da Linguagem Java

Page 21: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

27 de 38

Básico da Linguagem JavaEstrutura mínima de um Programa em Javaclass <nome> {

public static void main (<parametro>) { <declarações> <comandos> } }

Obs: sensitividade no Java

Básico da Linguagem Java Identificadores: Utilizados para identificar classes, métodos e

atributos (utilizar padrão de codificação) Literais: Valores utilizados em atribuição, passagem de

parâmetro Variáveis: Posição de memória (utilizar padrão de

codificação)• Sintaxe declaração: tipo_retorno nome_variável

Page 22: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

28 de 38

Básico da Linguagem JavaEscopo O escopo de uma variável se refere à visibilidade e tempo de vida. A

visibilidade é determinada pelo local onde a variável pode ser acessada(public, private, protected e de pacote). O tempo de vida especifica por quanto tempo ela manterá seu valor e permanecerá acessível

Comentários /*texto*/ /** texto*/ //texto

Instruções Simples(;) e Compostas ({...})

Page 23: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

29 de 38

Básico da Linguagem Java Tipos Primitivos de Dados

• Java é uma linguagem fortemente tipada• Numéricos (byte, short, int, long, double e float)

– obs: Não confundir com as Classes Integer, Double...• Boolean (true e false)• Char (Unicode - 2Bytes - 32.768 caracteres diferentes -

‘’ )

Caracteres sem representação visual (‘\’)• Ex: \n \t \’ \” \\

Page 24: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

30 de 38

Básico da Linguagem Java String

• Sequência de caracter tratada como unidade única. • Java fornece a classe String• Exemplo: String s1• Inicialização de String: s = “Bem vindo!!”; ou s = new

String(“Bem vindo!!”)• s.length(); s.charAt(Indice); s.getChars(IndiceInicial,

IndiceFinal, ArrayRetorno, IndiceInicialArray); s1.equals(s2); s1.equalsIgnoreCase(s2); s1.substring(IndiceInicial, IndiceFinal);

• Concatenando Strings: s1 + s2 ou s1.concat(s2)• Métodos diversos: s1.toUpperCase(); s1.toLowerCase();

s1.trim()

Page 25: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

31 de 38

Básico da Linguagem Java Estrutura de Dados

• Array: – Ex: int a[ ]

• Vector:– Ex: Vector v = new Vector (1)

• Métodos Principais: v.addElement (el); v.removeElement(el); v.firstElement(); v.lastElement(); v.isEmpty(); v.contains(key)

Page 26: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

32 de 38

Básico da Linguagem JavaEstruturas de Controle Estruturas de Decisão

• if if/else• switch(variável)...case(valor)

Estruturas de Repetição• while(condição)• do...while(condição)• for (tipo_variável nome_variável_controle = valor_inicial;

condição_de_continuação_laço; incremento da variável)

Break e Continue

Page 27: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

33 de 38

Básico da Linguagem Java Atribuição (‘=’) versus Igualdade(‘==’) Operadores Ariméticos

Operadores Relacionais

Page 28: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

34 de 38

Básico da Linguagem Java Operadores Lógicos

Page 29: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

35 de 38

Passos para Criar uma Aplicação

Criar a estrutura de diretórios do projeto Crie a interface de usuário Ajuste as propriedades dos objetos da interface Escreva código para os eventos Salve o projeto (convenção de nomes) Teste e depure a aplicação Crie o programa de instalação da sua aplicação

Page 30: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

36 de 38

Java e Delphi(Prática)

Page 31: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

37 de 38

Entrada e Saída de Dados Exibindo Mensagem para o Usuário

• Em Delphi Application.MessageBox(<mensagem>,<título >,<ícone a ser exibido>); Ex:Application.MessageBox(‘Registro Encontrado.’,’Informação’,MB_ICONINFORMATION);

• Em Java JOptionPane.showMessageDialog(null,<mensagem>,<título >,<ícone a ser exibido>);

Ex: JOptionPane.showMessageDialog (null,”Registro Encontrado”,”Informação”,JOptionPane.INFORMATION_MESSAGE);

obs: Atentar para sensitividade do Java

Delphi Java

Page 32: De 38 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Aula.

38 de 38

Entrada e Saída de Dados Recebendo Entrada de Dados

• Em Delphi inMsg:= InputBox(<título da janela>,<dado solicitado>,<conteúdo padão>); Ex: inMsg:= InputBox(‘Entrada de Dados’,’Digite Código:’,’-1’);

• Em Java inMsg = JOptionPane.showInputDialog(<mensagem>);Ex: inMsg:= JOptionPane.showInputDialog(“Digite Código”);

obs: Atentar para sensitividade do Java