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

Post on 07-Apr-2016

214 views 0 download

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

1 de 38

Linguagens de Programação Orientadas a Objetos

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

Marco Fagundesmafm@cin.ufpe.br

Aula 02 - Ambiente Java e Delphi

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

Prof. Marco Fagundes

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

9 de 38

Ambiente Java

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

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\”

12 de 38

Ambiente de Desenvolvimento Delphi

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

Componentes

13 de 38

Ambiente de Desenvolvimento Delphi

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

Componentes

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

15 de 38

Ambiente de Desenvolvimento Delphi

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

16 de 38

Ambiente de Desenvolvimento Delphi Projetos

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

obs: Convenção de nomes

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.

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.

19 de 38

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

ProgramUses

...

Unit A

Unit B

Unit C

Unit D

Unit E

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;

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;)

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;

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

24 de 38

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

25 de 38

Básico da Linguagem Object Pascal Operadores Relacionais

26 de 38

Básico da Linguagem Java

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

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 ({...})

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 \’ \” \\

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()

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)

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

33 de 38

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

Operadores Relacionais

34 de 38

Básico da Linguagem Java Operadores Lógicos

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

36 de 38

Java e Delphi(Prática)

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

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