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
1 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
2 de 38
Ambiente Java
9 de 38
Ambiente Java
Preparando 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
10 de 38
Ambiente Java
Preparando 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\”
11 de 38
Ambiente de Desenvolvimento Delphi
Terminologia
 Design vs Run time; Formulários; Propriedades; Métodos;
Componentes
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
Convençã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
14 de 38
Ambiente de Desenvolvimento Delphi
Manipulando Componentes
 Inserindo/Excluindo
 Movendo (ctrl+seta mov.cursor)
 Redimensionando (shift+seta mov.cursor)
15 de 38
Ambiente de Desenvolvimento Delphi



Projetos
Units (Arquivos .pas)
Forms (Arquivos .dfm)
obs: Convenção de nomes
16 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.
17 de 38
Básico da Linguagem Object Pascal

Arquivo de Unit
interface
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>;
<declaração de procedures e functions>
implementation
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>;
<declaração de procedures e functions>
initialization
<instruções>;
finalization
<instruções>;
end.
18 de 38
Básico da Linguagem Object Pascal

Relação Projeto/Unit
Program
Uses
...
Unit A
Unit D
Unit B
Unit E
Unit C
19 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;

Function
function <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;
20 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}
//texto
Instruções

Simples(;) e Compostas (begin...end;)
21 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;
22 de 38
Básico da Linguagem Object Pascal
Estruturas 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
23 de 38
Básico da Linguagem Object Pascal


Atribuição (‘:=’) versus Igualdade(‘=’)
Operadores Ariméticos
24 de 38
Básico da Linguagem Object Pascal

Operadores Relacionais
25 de 38
Básico da
Linguagem Java
26 de 38
Básico da Linguagem Java
Estrutura mínima de um Programa em Java
class <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
27 de 38
Básico da Linguagem Java
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 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 ({...})
28 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 \’ \”
\\
29 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()
30 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)
31 de 38
Básico da Linguagem Java
Estruturas 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
32 de 38
Básico da Linguagem Java



Atribuição (‘=’) versus Igualdade(‘==’)
Operadores Ariméticos
Operadores Relacionais
33 de 38
Básico da Linguagem Java

Operadores Lógicos
34 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
35 de 38
Java e Delphi
(Prática)
36 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
37 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
38 de 38
Download

Aula 02