A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Colaboração:

Apresentações semelhantes


Apresentação em tema: "De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Colaboração:"— Transcrição da apresentação:

1 de 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Colaboração: Prof. Ricardo Santos Aula 07 - Manipulação de Arrays Marco Fagundes

2 de 32 2 Roteiro l Revisão dos Objetos e Meta do Módulo de Fundamentos l 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 l Declarando e Construindo Arrays

3 de 32 3 Módulo de Fundamentos l 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: D esenvolver 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

4 de 32 4 Módulo de Fundamentos l 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 O que foi visto??

5 de 32 5 Módulo de Fundamentos l Duração: 13 Aulas Início: 01/04/2003 Término: 29/04/2003 l Datas Importantes Entrega do 1º Exercício: 23/04/2003 Exame Escrito:29/04/2003 Entrega da 1ª Etapa do Projeto Final: 06/05/2003

6 de 32 6 Destaques da Aula 1 l 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 l Paradigmas de Programação Imperativo Orientado a Objetos Funcional Lógico l Linguagens OO: Formalmente, para ser considerada uma linguagem OO, esta precisa implementar quatro conceitos importantes: abstração, encapsulamento, herança e polimorfismo

7 de 32 7 Destaques da Aula 2 - Estrutura de Programas l Java class { ; public static void main ( ) { ; }//fim main }// fim class l Unit Delphi interface uses | const | type | var implementation uses | const | type | var initialization ; finalization ; end. Somente se a classe for executável

8 de 32 8 Destaques da Aula 2 - Operações l Java class { ; Tipo_Retorno Nome_Método ( ) { ; }// fim Nome_Método...(main - caso deseje execução) }// fim class l Unit Delphi interface uses | const | type | var public procedure ( ); function ( ): tipo; implementation uses | const | type | var ;...(initialization, Finalization) end. 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 ; Shift+ Ctrl + C constroi o corpo do procedimento/função.

9 de 32 9 Destaques da Aula 2 - Operações l Java class { ; Tipo_Retorno Nome_Método ( ) { ; }// fim Nome_Método...(main - caso deseje execução) }// fim class l Unit Delphi interface uses | const | type | var public...; implementation uses | const | type | var procedure. ( ); var... begin ; end; function. ( ): tipo; var... begin ; result:= ; end;... end. Variáveis de Instância Variáveis de Locais Variáveis Globais Variáveis Locais

10 de Destaques da Aula 2 - Exemplo de Operações l Java class { ; 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 l Unit Delphi interface uses | const | type | var implementation uses | const | type | var procedure.exibeMsg; begin showMessage(Exemplo Msg); end; function somarVal(v1,v2:integer):integer; begin result:=v1+v2; end;...(initialization, Finalization) end.

11 de Destaque 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 l Compilando l Executando l Resultado l Crie um diretório para aplicação l Salve a aplicação para o diretório criado

12 de Destaques da Aula 2 - Testando Operações em Delphi l Crie um novo projeto no Delphi l Adicione um TButton ao Form l Altere as propriedades Name e Caption do Botão l Crie um diretório para a aplicação l Salve o projeto/units para o diretório criado

13 de Destaques da Aula 2 - Testando Operações em Delphi l Definindo Procedures/Functions interface... public procedure exibeMsg (pMsg:String); function somarVal (v1,v2: integer): integer; implementation... procedure TForm1.exibeMsg(pMsg:String); begin showMessage(Exemplo Msg); end; function TForm1.somarVal(v1,v2:integer): integer; begin result:=v1+v2; end; end.

14 de Destaques da Aula 2 - Testando Operações em Delphi l Programando o Manipulador de eventos do Botão l 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. l Resultado da Execução

15 de Destaques da Aula 2 - Declaração de Variáveis l Variáveis Java class { ; Tipo_Ret Nome_Método ( ) { ; } }// fim class l Variáveis Delphi interface uses | const | type | var implementation uses | const | type var : ;... end. l Exemplo Java class { String codTurma; public static void main ( ) { int contador; ; }//fim main }// fim class l Exemplo Delphi interface uses | const | type | var implementation uses | const | type var contador: integer;... end. Variável de Instância Variável Local Variável Global

16 de Destaques da Aula 2 - Tipos de Dados l Tipos Primitivos Java 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 int[10]; (definindo) Numéricos (Integer,Longint,Byte, Real, Double) Boolean (true e false) Char(.) e String (...) Operações: Length(String) Estrutura de Dados (Array) Type (declarando tipo) TintList = array[1..100] of integer; Var (declarando variável) arList: TintList; l Tipos Primitivos Delphi

17 de Destaques da Aula 2 - Estruturas de Controle l Estruturas de Decisão Java if(condição) ; else --->opcional ; Exemplo: if (i==5) System.out.println(i = 5); if (s.equals(Teste)) { i=3; a=OK; } else i=0; l Estruturas de Decisão Delphi if (condição) then else ; Exemplo: if (i=5) then showMessage(i = 5); if (s = Teste) begin i=3; a=OK; end else i=0; Instrução Composta ou em Bloco Diferente do Java, o ; fecha o comando if

18 de Destaques da Aula 2 - Estruturas de Controle l 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; default:System.out.println(pad); } l Estruturas de Decisão Delphi case of valores: ; else ; end; Exemplo: case (i) of case 0: showMessage(zero); case 1: showMessage(um); else showMessage(padrão); end;

19 de Destaques da Aula 2 - Estruturas de Controle l Estruturas de Repetição while (condição) ; Exemplo: int i=0, s=10; while (i<10) { s = s + i; i++; } System.out.println(i+s); l Estruturas de Decisão Delphi while (condição) do Exemplo: i=0; s=10; while (i<10) do begin s = s + i; i++; end; showMessage(IntToStr (i+s)); Instrução Composta ou em Bloco

20 de Arrays l Arrays são objetos que armazenam variáveis do mesmo tipo. l Pode armazenar tanto variáveis de tipos primitivos quanto referências a objetos. l Os arrays são sempre tratados como objetos, mesmo que eles sejam utilizados para armazenar tipos primitivos.

21 de Arrays l Todos os arrays Java são tecnicamente unimensionais. l Arrays bidimensionais são implementados como arrays de arrays. l 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.

22 de Declarando Arrays l Existem diversas formas de declaração: String[][]s; String []s[]; String[][] [] s; String [ ] [ ]s; String[] s[][]; String s[][]; String s [][][]; String[][] s [ ]; String[]s; String s[];

23 de Declarando Arrays l Existem diversas formas de declaração: String[]s; String [ ] s; // extra white space ignored 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

24 de Construindo Arrays l Não inclua o tamanho do array nas declarações: int[5] testArray; // Errado! l Todos os arrays são zero-based. l Arrays devem ser indexados por valores inteiros. l 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.

25 de Construindo Arrays l Uma vez que os arrays são Objetos, eles podem ser inicializados com a palavra reservada new. l Os arrays são automaticamente inicializados com o valor padrão do tipo em questão. String[] s = new String[100]; boolean[] b = new boolean[4]; int[] i = new int[10][10];

26 de Construindo Arrays int[] testScores; testScores = new int[4];

27 de Construindo Arrays l 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 String[arrSize];

28 de Construindo Arrays l No caso de Arrays de Objetos, o que temos na verdade é um array de Referências a Objetos.

29 de Inicializando Arrays l 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 int[5][]; l Inicializando por elemento. int[] arr = new int[2]; arr[0] = 2; arr[1] = 1;

30 de Inicializando Arrays l Inicializando por elemento. int[][] scores = new int[3][]; scores[0] = new int[4]; scores[1] = new int[6]; scores[2] = new int[1];

31 de Inicializando Arrays l Inicializando com loop. int [] myArray = new int[3] for(int i=0; i<(myArray.length); i++){ myArray[i] = i; }

32 de Inicializando Arrays No caso de Arrays Dimensionais temos: int [][] myArray = new int[3][]; myArray[0] = new int[2]; myArray[0][0] = 6; myArray[0][1] = 7; myArray[1] = new int[3]; myArray[1][0] = 9; myArray[1][1] = 8; myArray[1][2] = 5;.


Carregar ppt "De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Colaboração:"

Apresentações semelhantes


Anúncios Google