Linguagens de Programação Orientadas a Objetos

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Programação orientada a objetos
Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Programação Orientada a Objetos*
Programação em Java Prof. Maurício Braga
Estruturas de Repetição
Métodos, Parâmetros, Argumentos e Contratos
Histórico do Java 1990 James Gosling (Sun Microsystems)
Orientação a Objetos: Encapsulamento e Classificação
Uma linguagem de programação para o ambiente Virtuosi
Orientação a Objetos: Encapsulamento e Classificação
Linguagem Java Renata Araujo
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Programação Básica em Java
Recursividade Inhaúma Neves Ferraz
Polimorfismo e Classes Abstratas Profa
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Wagner Santos C. de Jesus
Wagner Santos C. de Jesus
1 Professor Rogério B. de Andrade - Aula 001- Dez/2008 Técnicas e Linguagem de Programação.
Tipos de dados, valores literais e variáveis
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
7 Abstração Genérica Unidades genéricas e instanciação.
Paradigmas da Programação
Delphi Disciplina de Programação Visual 2/Linguagem de Banco de dados – QI – Aula1 Prof. Luciano Monteiro.
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Estrutura de decisão e repetição em JAVA
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
O Portal do Estudante de Computação
O Portal do Estudante de Computação
Linguagem técnica de programação I Java – REVISÃO
CRIANDO OBJETOS EM JAVA
Paradigmas de programação
JAVA: Conceitos Iniciais
Programação Orientada a Objetos com Java
JAVA Orientação a Objetos
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Interfaces.
O que é o Delphi ? Uma IDE (Integrated Development Enviroment)
Atributos, Encapsulamento e Interface em Java
Entendendo as definições de classe
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Tipos Abstratos de Dados
Introdução à Linguagem Java
Orientação a Objetos e Java Graduação em Ciência da Computação
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Wagner Santos C. de Jesus
Implementação Orientada a Objetos – Aula 03
Programação Orientada a Objetos - Java
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Estrutura de Controle em JAVA
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
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 Aula.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
ALGORITMIA. ALGORITMO Conjunto de instruções ou acções que ao serem executadas, permitirão realizar uma determinada tarefa.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
De 19 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes
Linguagem Java Programação II.
1. 2 Prof. Maurício Rodrigues de Morais Programação Orientada a Objetos II.
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
Transcrição da apresentação:

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 Colaboração: Prof. Ricardo Santos Aula 07 - Manipulação de Arrays http://www.ufpa.br/sampaio/bd2003/lpoo  Marco Fagundes

Roteiro 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

Mó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

Módulo de Fundamentos Conteúdo Conceitos da Orientação a Objetos 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

Mó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 Escrito:29/04/2003 Entrega da 1ª Etapa do Projeto Final: 06/05/2003

Destaques 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

Destaques da Aula 2 - Estrutura de Programas Java Unit Delphi interface uses | const | type | var implementation initialization <instruções>; finalization end. class <nome> { <declarações>; public static void main (<parametro>) { <instruções>; }//fim main }// fim class Somente se a classe for executável

Destaques da Aula 2 - Operações Java Unit Delphi interface uses | const | type | var public procedure <nome>(<param>); function <nome>(<param>): tipo; implementation <definição_procedure>; <definição_function>; ...(initialization, Finalization) end. class <nome> { <declarações>; Tipo_Retorno Nome_Método (<param>) { <instruções>; }// 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 <resultado>; Shift+ Ctrl + C constroi o corpo do procedimento/função.

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

Destaques da Aula 2 - Exemplo de Operações Java Unit Delphi interface uses | const | type | var implementation procedure <nome_classe>.exibeMsg; begin showMessage(‘Exemplo Msg’); end; function <nome-classe> somarVal(v1,v2:integer):integer; result:=v1+v2; ...(initialization, Finalization) end. class <nome> { <declarações>; void exibeMsg ( ) { System.out.println (‘Exemplo Msg’); }// fim int somarVal (int v1, int v2); return v1 + v2; ...(main - caso deseje execução) }// fim class

Destaque da Aula 2 - Testando Operações em Java Compilando 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 Executando Resultado Crie um diretório para aplicação Salve a aplicação para o diretório criado

Destaques 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

Destaques da Aula 2 - Testando Operações em Delphi 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; result:=v1+v2; end.

Destaques 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. Resultado da Execução

Destaques da Aula 2 - Declaração de Variáveis Variáveis Java Variáveis Delphi interface uses | const | type | var implementation uses | const | type var <Nome_Variável>:<Tipo_Variável>; ... end. class <nome> { <Tipo_Variável> <Nome_Variável>; Tipo_Ret Nome_Método (<param>) { <instruções>; } }// fim class Exemplo Java class <nome> { String codTurma; public static void main (<parametro>) { int contador; <instruções>; }//fim main }// fim class 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

Destaques da Aula 2 - Tipos de Dados Tipos Primitivos Java 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; Tipos Primitivos Delphi 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)

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

Destaques da Aula 2 - Estruturas de Controle Estruturas de Decisão Java Estruturas de Decisão Delphi case<variável> of valores:<instrução>; else <instrução>; end; Exemplo: case (i) of case 0: showMessage(“zero”); case 1: showMessage(“um”); showMessage(“padrão”); switch(variável)...case(valor) Exemplo: switch(i) { case 0: System.out.println(“zero”); break; case 1: System.out.println(“um”); default:System.out.println(“pad”); }

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

Arrays 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.

Arrays 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.

Existem diversas formas de declaração: Declarando Arrays 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; String []s; String [] s; String [ ] s; String[] s; String[ ] s; String s[]; String s []; String s [ ];

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

Todos os arrays são zero-based. Construindo Arrays Não inclua o tamanho do array nas declarações: int[5] 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.

Construindo 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 String[100]; boolean[] b = new boolean[4]; int[] i = new int[10][10];

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

Construindo 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 String[arrSize];

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

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

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

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

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