Title: Linguagens de Programa
1- Linguagens de Programação Orientadas a Objetos
- Pós-Gradução(Lato-Sensu) em Sistemas de Banco de
Dados - UFPa - Marco Fagundes
- mafm_at_cin.ufpe.br
- Colaboração Prof. Ricardo Santos
- Aula 07 - Manipulação de Arrays
- http//www.ufpa.br/sampaio/bd2003/lpoo
? Marco Fagundes
2Roteiro
- Revisão dos Objetos e Meta do Módulo de
Fundamentos - Revisão do Básico de Java e Delphi
- Estrutura de Programas
- Tratamento de Operações
- Declaração de Variáveis
- Tipos de Dados e Estruturas de Controle
- Declarando e Construindo Arrays
3Módulo de Fundamentos
- Módulo de Fundamentos
- Objetivo Apresentar conceitos básicos e
avançados da orientação a objetos, os ambientes
Java e Delphi e sua utilização no desenvolvimento
de GUIs - Meta Desenvolver uma aplicação (Java ou Delphi)
com uma GUI oferecendo as operações básicas de
cadastro (incluir, excluir, alterar e consultar)
utilizando uma estrutura de dados para armazenar
objetos
4Módulo de Fundamentos
O que foi visto??
- Conteúdo
- Conceitos da Orientação a Objetos
- Ambiente JDK e Delphi
- Construção de GUI em Java e Delphi
- Programação Orientada a Eventos
- Estrutura de Dados (Array) e Tipo String
- Classe, Objeto, Atributos e Métodos
- Compartilhamento de Recursos (Dados e Operações)
entre Classes - Recursos Avançados de GUI e Criação de Objetos
5Módulo de Fundamentos
- Duração 13 Aulas
- Início 01/04/2003
- Término 29/04/2003
- Datas Importantes
- Entrega do 1º Exercício 23/04/2003
- Exame Escrito29/04/2003
- Entrega da 1ª Etapa do Projeto Final 06/05/2003
6Destaques da Aula 1
- Qualidade de Software
- Atributos de qualidade Corretude, Eficiência,
Manutenibilidade Portabilidade, Reusabilidade,
Robustez, Extensibilidade, Integridade e
Usabilidade - Os fatores extensibilidade e reusabilidade estão
diretamente relacionados à manutenção de
sistemas. Estima-se que 70 do custo de software
corresponde à manutenção - Paradigmas de Programação
- Imperativo
- Orientado a Objetos
- Funcional
- Lógico
- Linguagens OO Formalmente, para ser considerada
uma linguagem OO, esta precisa implementar quatro
conceitos importantes abstração, encapsulamento,
herança e polimorfismo
7Destaques da Aula 2 - Estrutura de Programas
class ltnomegt
ltdeclaraçõesgt
public static void main (ltparametrogt)
ltdeclaraçõesgt ltinstruçõesgt
//fim main // fim class
Somente se a classe for executável
8Destaques da Aula 2 - Operações
class ltnomegt
ltdeclaraçõesgt Tipo_Re
torno Nome_Método (ltparamgt)
ltdeclaraçõesgt ltinstruçõesgt
//
fim Nome_Método ...(main - caso deseje
execução) // fim class
Se o Tipo_Retorno for void então o método é
similar a um procedimento. Caso contrário o
método se parece com uma função, necessitando do
valor de retorno. Assim uma instrução obrigatória
é return ltresultadogt
Shift Ctrl C constroi o corpo do
procedimento/função.
9Destaques da Aula 2 - Operações
Variáveis de Instância
class ltnomegt
ltdeclaraçõesgt Tipo_Re
torno Nome_Método (ltparamgt)
ltdeclaraçõesgt ltinstruçõesgt
//
fim Nome_Método ...(main - caso deseje
execução) // fim class
Variáveis Globais
Variáveis de Locais
Variáveis Locais
10Destaques da Aula 2 - Exemplo de Operações
class ltnomegt
ltdeclaraçõesgt void
exibeMsg ( ) System.out.println (Exemplo
Msg)
// fim int somarVal (int v1,
int v2) return v1 v2
//
fim ...(main - caso deseje execução)
// fim class
11Destaque da Aula 2 - Testando Operações em Java
class Teste
void exibeMsg (String
pMsg ) System.out.println (pMsg)
int somarVal (int v1, int v2)
return v1 v2
/ public static void
main(String args) Teste t new
Teste() t.exibeMsg(Exemplo Msg)
System.out.println (t.somarVal(50,70))
//fim main // fim class
- Crie um diretório para aplicação
- Salve a aplicação para o diretório criado
12Destaques da Aula 2 - Testando Operações em Delphi
- Crie um novo projeto no Delphi
- Adicione um TButton ao Form
- Altere as propriedades Name e Caption do Botão
- Crie um diretório para a aplicação
- Salve o projeto/units para o diretório criado
13Destaques da Aula 2 - Testando Operações em Delphi
- Definindo Procedures/Functions
interface ... public procedure
exibeMsg (pMsgString) function somarVal
(v1,v2 integer) integer implementation
... procedure TForm1.exibeMsg(pMsgString) begin
showMessage(Exemplo Msg) end function
TForm1.somarVal(v1,v2integer) integer begin
resultv1v2 end end.
14Destaques da Aula 2 - Testando Operações em Delphi
- Programando o Manipulador de eventos do Botão
- Dar um duplo clique em cima do componente Botão
... procedure TForm1.btnTesteMsgClick(Sender
TObject) begin exibeMsg(Exemplo Msg)
showMessage(intToStr(somarVal(1,2))) end end.
15Destaques da Aula 2 - Declaração de Variáveis
class ltnomegt
ltTipo_Variávelgt
ltNome_Variávelgt Tipo_Ret Nome_Método
(ltparamgt) ltTipo_Variávelgt
ltNome_Variávelgt ltinstruçõesgt
// fim class
16Destaques da Aula 2 - Tipos de Dados
- Numéricos (byte, short, int, long,
- double e float)
- obs Não confundir com as Classes Integer,
Double, Long ... - boolean (true e false)
- Char ( ... )
- Caracteres sem representação
- visual
- Ex \n \t \ \ \\
- Estrutura de Dados (Array)
-
- int a (declarando)
- a new int10 (definindo)
17Destaques da Aula 2 - Estruturas de Controle
- Estruturas de Decisão Java
- if(condição)
- ltinstruçãogt
- else ---gtopcional
- ltinstruçãogt
- Exemplo
- if (i5)
- System.out.println(i 5)
-
- if (s.equals(Teste))
-
- i3
- aOK
-
- else
- i0
Diferente do Java, o fecha o comando if
18Destaques da Aula 2 - Estruturas de Controle
- Estruturas de Decisão Java
- switch(variável)...case(valor)
- Exemplo
- switch(i)
- case 0 System.out.println(zero)
- break
- case 1 System.out.println(um)
- break
- defaultSystem.out.println(pad)
-
19Destaques da Aula 2 - Estruturas de Controle
- while (condição)
- ltinstruçãogt
-
- Exemplo
- int i0, s10
- while (ilt10)
-
- s s i
- i
-
- System.out.println(is)
20Arrays
- Arrays são objetos que armazenam variáveis do
mesmo tipo. - Pode armazenar tanto variáveis de tipos
primitivos quanto referências a objetos. - Os arrays são sempre tratados como objetos, mesmo
que eles sejam utilizados para armazenar tipos
primitivos.
21Arrays
- Todos os arrays Java são tecnicamente
unimensionais. - Arrays bidimensionais são implementados como
arrays de arrays. - A declaração de um array não cria um objeto array
ou aloca espaço em memória. Na verdade, ela cria
uma variável de referência a um array.
22Declarando Arrays
- Existem diversas formas de declaração
Strings String s String
s String s String s String
s String s String s
String s
Strings String s String s String s
String s String s String
s String s String s
23Declarando Arrays
- Existem diversas formas de declaração
Strings String s String s String s
// extra white space ignored String
s String s // extra white space
ignored String s String s String s
// extra white space ignored String
s Strings String s // extra
white space ignored
24Construindo Arrays
- Não inclua o tamanho do array nas declarações
- int5 testArray // Errado!
- Todos os arrays são zero-based.
- Arrays devem ser indexados por valores inteiros.
- Ao acessarmos um array com um índice menor que 0
ou maior que o comprimento do array gera uma
exceção ArrayIndexOutOfBoundsException em tempo
de execução.
25Construindo Arrays
- Uma vez que os arrays são Objetos, eles podem ser
inicializados com a palavra reservada new. - Os arrays são automaticamente inicializados com o
valor padrão do tipo em questão. - String s new String100
- boolean b new boolean4
- int i new int1010
26Construindo Arrays
- int testScores
- testScores new int4
27Construindo Arrays
- Em Java, os arrays são alocados em tempo de
execução, de forma que podemos utilizar o
seguinte código - int arrSize 100
- String myArray new StringarrSize
28Construindo Arrays
- No caso de Arrays de Objetos, o que temos na
verdade é um array de Referências a Objetos.
29Inicializando Arrays
- Inicializando com chaves.
- String oneDimArray "abc","def","xyz"
- int arr new int 1,2,3
- int twoDimArray 1,2,3, 4,5,6, 7,8,9
- int myArray new int5
- Inicializando por elemento.
- int arr new int2
- arr0 2
- arr1 1
30Inicializando Arrays
- Inicializando por elemento.
- int scores new int3
- scores0 new int4
- scores1 new int6
- scores2 new int1
31Inicializando Arrays
- Inicializando com loop.
- int myArray new int3
- for(int i0 ilt(myArray.length) i)
- myArrayi i
-
32Inicializando Arrays
- No caso de Arrays Dimensionais temos
int myArray new int3 myArray0 new
int2 myArray00 6 myArray01
7 myArray1 new int3 myArray10
9 myArray11 8 myArray12 5.